
12 Aug
2011
12 Aug
'11
6:58 p.m.
On Fri, 2011-08-12 at 23:52 +0100, Patrick Browne wrote:
-- Second in the case of a method of a type class. -- Inferred Num *Main> :t g 3 g 3 :: forall t. (A t, Num t) => t -- Did not print class A. *Main> :t g T g T :: T -- Did not print any class.
This is because you already know that T is T. The compiler has checked that T is, in fact, an instance of A, but it need not tell you so because it has information that's strictly more specific than that.
*Main> :t g (3::Integer) g (3::Integer) :: Integer
Same thing. Integer is an instance of A, so telling you it's an Integer is even better (more specific). -- Chris Smith