title: Access constructor name and arguments
body: <p>I'm going to override the equal class for Dynamic data type in this way:</p>
  
  <pre><code>instance Eq Dynamic where 
      x==y = dynamicEq x y
  dynamicEq :: Dynamic -&gt; Dynamic -&gt; Bool
  dynamicEq x y = ConstrName x == ConstrName y &amp;&amp; sameSlots(slots x)(slots y)
      where 
      sameSlots [] [] = True
      sameSlots ((x::Eq a =&gt; a):xs)(y:ys) = x == fromDynamic y &amp;&amp; sameSlots xs ys
  </code></pre>
  
  <p>can you name or declare any function that can return the values of <em>ConstrName</em> and <em>slots</em> for me? Maybe using Tycon or something similar?</p>