GHC determine illegal kind for standalone deriving with Deriving via
Happy to release GHC 8.6.1-alpha1! I used it to test new extensions, and then I met below errors:
$ ghci-8.6.0.20180627
GHCi, version 8.6.0.20180627: http://www.haskell.org/ghc/ :? for help
Prelude> :set -XDerivingVia -XStandaloneDeriving
Prelude> newtype FunctorWrapped f a = FunctorWrapped (f a)
Prelude> deriving via f instance Functor f => Functor (FunctorWrapped f)
<interactive>:3:33: error:
• Expected kind ‘* -> *’, but ‘f’ has kind ‘*’
• In the first argument of ‘Functor’, namely ‘f’
In the stand-alone deriving instance for
‘Functor f => Functor (FunctorWrapped f)’
<interactive>:3:62: error:
• Expected kind ‘* -> *’, but ‘f’ has kind ‘*’
• In the first argument of ‘FunctorWrapped’, namely ‘f’
In the first argument of ‘Functor’, namely ‘(FunctorWrapped f)’
In the stand-alone deriving instance for
‘Functor f => Functor (FunctorWrapped f)’
However,
newtype FunctorWrapped f a = FunctorWrapped (f a)
deriving Functor via f
is passed through on GHC 8.6.1-alpha1.
Is this a bug or my misunderstand?
Trac metadata
Trac field | Value |
---|---|
Version | |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |