
Also SPECIALIZE is turned into SPECIALIZE NOINLINE -- which has an effect on error messages too (which might be considered a bug). And instances look very weird.... source: instance Class.Eq Integer where CInteger a == CInteger b = a == b ghc-6.6.1 -ddump-parsed: instance {Class.Eq Integer} where [] { == CInteger a CInteger b = a == b } most recent HEAD -ddump-parsed: instance Class.Eq Integer where [] [] { == CInteger a CInteger b = a == b } Except for the two extra "[]" and the three necessary missing pairs of parentheses (or else using "==" in an infix position), this looks like valid Haskell And then my Num instance becomes (in HEAD) instance Class.Num Integer where [] [] { + CInteger a CInteger b = mkInteger (addInteger a b) * CInteger a CInteger b = mkInteger (multiplyInteger a b) negate (CInteger a) = mkInteger (negateInteger a) abs (CInteger a) = mkInteger (absInteger a) signum (CInteger a) = mkInteger (signumInteger a) fromInteger unboundedIntegral = mkInteger (uncheckedFromIntegral unboundedIntegral) } , which uses curly braces but not semicolons, so the layout wouldn't work in Haskell, for multiple functions defined in the instance, too. Isaac