
#15376: GHC determine illegal kind for standalone deriving with Deriving via -------------------------------------+------------------------------------- Reporter: | Owner: (none) mizunashi_mana | Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Compiler | Version: Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- 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? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15376 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler