Error message when deriving Typeable without PolyKinds
Module M:
{-# LANGUAGE PolyKinds #-}
module M where
data A a
Module N:
{-# LANGUAGE StandaloneDeriving, DeriveDataTypeable #-}
module N where
import M
import Data.Typeable
deriving instance Typeable A
We get a confusing error message:
N.hs:7:1:
Derived typeable instance must be of form (Typeable A)
In the stand-alone deriving instance for ‛Typeable A’
The error disappears when N is compiled with -XPolyKinds. The reason is: without -XPolyKinds, A defaults to A *. I think it's simplest to suggest the flag in the error message.
Trac metadata
Trac field | Value |
---|---|
Version | 7.7 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |