extra "ambiguous type variable" errors after a "couldn't match" error?
Evan Laforge
qdunkan at gmail.com
Thu Jul 17 01:32:22 UTC 2014
7.8.3 has a new behaviour where a "plain" type error will cause
"ambiguous type variable" errors, e.g.:
module M where
broken :: [Int]
broken = ()
ambiguous :: a -> [String]
ambiguous _ = map show [1..]
When imported in ghci, I get:
M.hs:4:10:
Couldn't match expected type ‘[Int]’ with actual type ‘()’
In the expression: ()
In an equation for ‘broken’: broken = ()
M.hs:7:19:
No instance for (Show a0) arising from a use of ‘show’
The type variable ‘a0’ is ambiguous
[ ... and then more for Enum and Num ]
It seems like the 'a' type variable causes this to happen. But I
don't see why a type error in another place should cause 'ambiguous'
to become ambiguous.
More information about the Glasgow-haskell-users
mailing list