Panic "lookupVarEnv_NF" when using a functional dependency with a kind variable
The following code causes a panic:
{-# LANGUAGE PolyKinds, DataKinds, MultiParamTypeClasses,
FunctionalDependencies
#-}
class Foo a (b :: k) | a -> k
instance Foo Bool False
The error is
ghc-stage2: panic! (the 'impossible' happened)
(GHC version 7.7.20120807 for x86_64-apple-darwin):
lookupVarEnv_NF: Nothing
In previous versions of GHC 7.5.x, a functional dependency of this nature worked just fine and had the expected behavior of fixing the value of k
once a
was known. It's unclear to me whether this should compile or not, but it shouldn't cause a panic. I believe that my code that used the functional dependency could use a -> b
in place of a -> k
with no ill effect, so turning this into an error is not a problem.
Trac metadata
Trac field | Value |
---|---|
Version | 7.5 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |