Changes between Version 23 and Version 24 of TypeFunctionsTypeChecking


Ignore:
Timestamp:
Aug 18, 2006 9:33:39 PM (9 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TypeFunctionsTypeChecking

    v23 v24  
    6464==== The `DataCon`s of the variants of an instance ====
    6565
    66 `DataCon`s of data instances differ from ordinary `DataCon`s by a value of the form `Just typats :: Maybe [Type]` in the new field `dcInstPats`.  It gives the instance patterns at which the data constructor has been declared; e.g., given the declaration
     66`DataCon`s of data instances differ from ordinary `DataCon`s by a value of the form `Just typats :: Maybe [Type]` in the new field `dcInstTys`.  It gives the instance patterns at which the data constructor has been declared; e.g., given the declaration
    6767{{{
    6868data instance Map (a, b) v = MapPair (Map a (Map b v))
    6969}}}
    70 the instance patterns are `[(a, b), v]`.  Whenever the field `dcInstPats` of a `DataCon` is not `Nothing`, the field `algTcParent` of its `TyCon` must be of the form `FamilyTyCon famTyCon`, where `famTyCon` is the `TyCon` of the data family to which the instance belongs.  The exact same information goes into the interface representation `IfaceSyn.IfaceConDecl` with the new field `ifInstPats`.
     70the instance types are `[(a, b), v]`.  Whenever the field `dcInstPats` of a `DataCon` is not `Nothing`, the field `algTcParent` of its `TyCon` must be of the form `FamilyTyCon famTyCon`, where `famTyCon` is the `TyCon` of the data family to which the instance belongs.  The exact same information goes into the interface representation `IfaceSyn.IfaceConDecl` with the new field `ifConInstTys`.
    7171
    7272==== The equality axiom identifying family instance and representation type ====