Type checker barfs on nonsensical expression
I got the infamous "impossible bug" by trying something nonsensical in my program. I reproduced the bug in the attached minimal program (18 lines). The precise error message is:
Impossible.hs:18:5:
Couldn't match kind `* -> *' with `*'
Expected type: [Char] -> ZT IO ()
Actual type: [Char] -> ZT IO ()
Kind incompatibility when matching types:
[Char] :: * -> *
[Char] :: *
The function `lift'ghc: panic! (the 'impossible' happened)
(GHC version 7.6.2 for i386-unknown-linux):
kindFunResult ghc-prim:GHC.Prim.*{(w) tc 34d}
Note that this error occurs whether on not the MonadTrans instance is there.
Trac metadata
Trac field | Value |
---|---|
Version | 7.6.2 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |