extra "ambiguous type variable" errors after a "couldn't match" error?
Simon Peyton Jones
simonpj at microsoft.com
Thu Jul 17 09:02:12 UTC 2014
Good point! See
https://ghc.haskell.org/trac/ghc/ticket/9323
Simon
| -----Original Message-----
| From: Glasgow-haskell-users [mailto:glasgow-haskell-users-
| bounces at haskell.org] On Behalf Of Evan Laforge
| Sent: 17 July 2014 02:32
| To: GHC users
| Subject: extra "ambiguous type variable" errors after a "couldn't
| match" error?
|
| 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.
| _______________________________________________
| Glasgow-haskell-users mailing list
| Glasgow-haskell-users at haskell.org
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
More information about the Glasgow-haskell-users
mailing list