On Fri, Feb 11, 2011 at 20:00, Daniel Fischer <daniel.is.fisc...@googlemail.com> wrote: > ... > It's because there's no way to determine the type variable a (in either > wrong or right).
That's what I thought when I wrote the code at first but then I was surprised to see it working with the Show type-class. > In such cases, under some circumstances, the type variable gets defaulted > (the ambiguous contexts all must have the form (C a), at least one numeric > class [Num, Integral, Fractional, ...] is involved, all involved classes > come from the Prelude or the standard libraries) as specified in the report > (section 4.3, iirc). I'm reading it right now. > ... > These conditions are not met by your 'right' function, but ghci uses > extended default rules, a type variable a with a Show constraint [and no > other] gets defaulted to (). But ghci has no rule how to default your Dumb > class, so it reports the ambiguous type variable there. > [Without extended defaulting rules, ambiguous type variable errors would be > too frequent at the ghci prompt.] God! It seems like I'm reading the small-character lines of a contract :) Seriously, now it makes sense... Thank you. -- Cristiano GPG Key: 4096R/C17E53C6 2010-02-22 Fingerprint = 4575 4FB5 DC8E 7641 D3D8 8EBE DF59 B4E9 C17E 53C6 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe