Kind variables not allowed in data declaration kind annotation
GHC won't accept kind variables stated directly in a data declaration. For example, the following does not compile:
data SMaybe :: (k -> *) -> Maybe k -> * where
SNothing :: SMaybe s 'Nothing
SJust :: s a -> SMaybe s ('Just a)
However, the following does compile:
data SMaybe' (s :: k -> *) (m :: Maybe k) where
SNothing' :: SMaybe' s 'Nothing
SJust' :: s a -> SMaybe' s ('Just a)
Trac metadata
Trac field | Value |
---|---|
Version | 7.5 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler (Type checker) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |