Changes between Version 23 and Version 24 of TypeFunctionsTypeChecking


Ignore:
Timestamp:
Aug 18, 2006 9:33:39 PM (8 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 ====