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