Skip to content
  • Ryan Scott's avatar
    Remove the instantiation check when deriving Generic(1) · 7443e5c8
    Ryan Scott authored
    Previously, deriving `Generic(1)` bailed out when attempting to
    instantiate visible type parameters (#5939), but this instantiation
    check was quite fragile and doesn't interact well with `-XTypeInType`.
    It has been decided that `Generic(1)` shouldn't be subjected to this
    check anyway, so it has been removed, and `gen_Generic_binds`'s
    machinery has been updated to substitute the type variables in a
    generated `Rep`/`Rep1` instance with the user-supplied type arguments.
    
    In addition, this also refactors `Condition` in `TcDeriv` a bit. Namely,
    since we no longer need `tc_args` to check any conditions, the `[Type]`
    component of `Condition` has been removed.
    
    Fixes #11732.
    
    Test Plan: ./validate
    
    Reviewers: goldfire, kosmikus, simonpj, bgamari, austin
    
    Reviewed By: simonpj, bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D2061
    
    GHC Trac Issues: #5939, #11732
    7443e5c8