Changes between Version 4 and Version 5 of TypeFunctionsCore


Ignore:
Timestamp:
Aug 17, 2006 10:08:55 PM (8 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TypeFunctionsCore

    v4 v5  
    2222where the `ci` are the free variables of the `tj`.  Moreover, we morally replace all occurences of `T` in the rest of the program by `T_n`.  No such replacement is required in the actual implementation as the arity index at F,,C,, type functions is just a formal device used in the formal development.  In the implementation, it is perfectly fine to retain the original name and maintain the arity information separately. 
    2323 
    24 Neverthless, we need to generate a new name for the vanilla data types representing family members (i.e., `Tinst` above).  We use a similar mechanism as for the generation of the dictionary type constructors of type classes.  In particular, we generalise the field `algTcClass` of the internal representation for datatypes, `TyCon.AlgTyCon`, to be three valued: none, `Class` for data types representing dictionaries, and <which structure?> for data types representing members of a family. 
     24Neverthless, we need to generate a new name for the vanilla data types representing family members (i.e., `Tinst` above).  We use a similar mechanism as for the generation of the dictionary type constructors of type classes.  In particular, we generalise the field `algTcClass` of the internal representation for datatypes, `TyCon.AlgTyCon` and rename it to `algTcParent` with type 
     25{{{ 
     26data AlgTyConParent = OrdinaryTyCon 
     27                    | ClassTyCon    Class 
     28                    | FamInstTyCon  TyCon 
     29}}} 
    2530 
    2631== Inserting coercions ==