Skip to content

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information