On Mon, Nov 16, 2009 at 7:17 PM, Brent Yorgey &lt;<a href="mailto:byorgey@seas.upenn.edu">byorgey@seas.upenn.edu</a>&gt; wrote:<br><br>&gt; On Mon, Nov 16, 2009 at 12:33:51AM -0500, Phillip Pirrip wrote:<br><br>&gt;&gt; The alternative I guess is to use 3 different type constructors,<br>
<br>&gt;&gt; data TypeConA a = ValConA a<br>&gt;&gt; data TypeConB a = ValConB [ValConA a]<br>&gt;&gt; data TypeConC a = ValConC [ValConB a]<br><br>&gt;&gt; but then I can&#39;t use one signal typeclass for (+) etc.  Am I correct?<br>
<br>&gt; Yes, this seems like the correct alternative to me.  What is so bad<br><br>With a minor correction : <br><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">data TypeConA a = ValConA a</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">data TypeConB a = ValConB [TypeConA a]</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">data TypeConC a = ValConC [TypeConB a]</span><br>
<br><br>