• Simon Peyton Jones's avatar
    Make a start towards eta-rules and injective families · 58470fb7
    Simon Peyton Jones authored
    * Make Any into a type family (which it should always have been)
      This is to support the future introduction of eta rules for
      product types (see email on ghc-users title "PolyKind issue"
      early Sept 2012)
    
    * Add the *internal* data type support for
        (a) closed type families [so that you can't give
            type instance for 'Any']
        (b) injective type families [because Any is really
            injective]
      This amounts to two boolean flags on the SynFamilyTyCon
      constructor of TyCon.SynTyConRhs.
    
    There is some knock-on effect, but all of a routine nature.
    
    It remains to offer source syntax for either closed or
    injective families.
    58470fb7
MkIface.lhs 78.1 KB