Skip to content
  • Ryan Scott's avatar
    Make Generic1 poly-kinded · b8e25651
    Ryan Scott authored
    This generalizes the `Generic1` typeclass to be of kind `k -> *`, and
    this also makes the relevant datatypes and typeclasses in `GHC.Generics`
    poly-kinded. If `PolyKinds` is enabled, `DeriveGeneric` derives
    `Generic1` instances such that they use the most general kind possible.
    Otherwise, deriving `Generic1` defaults to make an instance where the
    argument is of kind `* -> *` (the current behavior).
    
    Fixes #10604. Depends on D2117.
    
    Test Plan: ./validate
    
    Reviewers: kosmikus, dreixel, goldfire, austin, hvr, simonpj, bgamari
    
    Reviewed By: simonpj, bgamari
    
    Subscribers: thomie, ekmett
    
    Differential Revision: https://phabricator.haskell.org/D2168
    
    GHC Trac Issues: #10604
    b8e25651