ScopedTypeVariables and PolyKinds
The following code panics:
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE PolyKinds #-}
module Bug2 where
data TypeRep = TypeRep
data Proxy t = Proxy
typeRep :: Proxy a -> TypeRep
typeRep Proxy = TypeRep
-- This one works fine:
typeOf :: forall a. a -> TypeRep
typeOf _ = typeRep (Proxy :: Proxy a)
-- But this one panics!
typeOf1 :: forall t a. t a -> TypeRep
typeOf1 _ = typeRep (Proxy :: Proxy t)
{-
panic! (the 'impossible' happened)
(GHC version 7.5.20111216 for x86_64-unknown-linux):
tyConKind ghc-prim:GHC.Prim.BOX{(w) tc 347}
-}
I believe the problem is an interaction between !ScopedTypeVariables and !PolyKinds.
Trac metadata
Trac field | Value |
---|---|
Version | 7.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | jpm@cs.uu.nl |
Operating system | |
Architecture |