Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,869
    • Issues 4,869
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 456
    • Merge requests 456
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #15376
Closed
Open
Created Jul 14, 2018 by mizunashi_mana@trac-mizunashi_mana

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking