[Haskell-cafe] Re: Fun with multi-parameter type classes

Sam Mason mason at f2s.com
Thu Aug 19 18:39:52 EDT 2004


karczma wrote:
>Don't forget that this is the toplevel business, not a universal
>"disease". GHCi says 
>
>Prelude> :t (show . read)
>(show . read) :: String -> String 
>
>and doesn't complain. But if you define 
>
>bz = show . read 
>
>the attempt to load this definition (file: ctest.hs) results in: 
>
>ctest.hs:3:
>  Ambiguous type variable `a' in these top-level constraints:
>    `Read a' arising from use of `read' at ctest.hs:5
>    `Show a' arising from use of `show' at ctest.hs:5
>Failed, modules loaded: none.
>Prelude> 

OK, you've got me interested!  Why doesn't GHCi complain about the
ambiguity?

>So, as one of my friends used to say: it should be obvious for
>everybody that what is obvious for one, need not be obvious for
>the others... 

Suitably abstruse!


More information about the Haskell-Cafe mailing list