Skip to content
  • thomasw's avatar
    Support wild cards in data/type family instances · d9d2102e
    thomasw authored and Ben Gamari's avatar Ben Gamari committed
    Handle anonymous wild cards in type or data family instance
    declarations like
    unnamed type variables. For instance (pun intented):
    
        type family F (a :: *) (b :: *) :: *
        type instance F Int _ = Int
    
    Is now the same as:
    
        type family F (a :: *) (b :: *) :: *
        type instance F Int x = Int
    
    Note that unlike wild cards in partial type signatures, no errors (or
    warnings
    with -XPartialTypeSignatures) are generated for these wild cards, as
    there is
    nothing interesting to report to the user, i.e. the inferred kind.
    
    Only anonymous wild cards are supported here, named and
    extra-constraints wild
    card are not.
    
    Test Plan: pass new tests
    
    Reviewers: goldfire, austin, simonpj, bgamari
    
    Reviewed By: simonpj, bgamari
    
    Subscribers: goldfire, thomie
    
    Differential Revision: https://phabricator.haskell.org/D1092
    
    GHC Trac Issues: #3699, #10586
    d9d2102e