GHC&#39;s (maybe Haskell98&#39;s?) Complex type is defined with a RealFloat constraint on type type itself, rather than on some of the instances and functions:<br><br>&nbsp;&nbsp;&nbsp; data (RealFloat a) =&gt; Complex a&nbsp; = !a :+ !a <br>
<br>I think the practice of constraint in type definitions is generally discouraged, and I&#39;m wondering if there are reasons other than history for having the constraint here.&nbsp; Is removing it on the table for Haskell&#39;?<br>
<br>I just got bit by what I think is a typical problem.&nbsp; I added a VectorSpace instance for &#39;Complex a&#39; and discovered that my &#39;a&#39; must be in RealFloat, even though I use only zero, addition, subtraction, and scaling.<br>
<br>I suspect this gripe has been raised before ...<br><br>Thanks,&nbsp; - Conal<br><br>