On Mon, Aug 23, 2004 at 05:14:32PM +0100, Simon Peyton-Jones wrote: > The binding > let t = printQ > falls under the monomorphism restriction. The Haskell Report would not > default (Show a), so you might think you'd get an "ambiguous type > variable" error. But it's so annoying to get this error for > ghci> show [] > that GHCi is a bit more eager about defaulting ambiguous types: it'll > apply defaulting if all the constrained classes are standard, and at > least one of them is numeric *or* is Show, Eq or Ord. > The *or* part is the non-standard bit.
I feel that it must be somewhat related to this behaviour: Prelude> :t show . read show . read :: String -> String Prelude> (show . read) " 13213 " "13213" Prelude> (show . read) " 0x10000 " "65536" Prelude> (show . read) " 10000.0 " "*** Exception: Prelude.read: no parse For some reason GHC defaults to Integer, even when monomorphism restriction doesn't come into play. Hugs chooses this funny, but IMHO more correct, type: Prelude> :t show . read show . read :: (Read a, Show a) => [Char] -> [Char] Best regards, Tom -- .signature: Too many levels of symbolic links _______________________________________________ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users