Changes between Version 27 and Version 28 of TypeFunctionsTypeChecking
- Timestamp:
- 08/22/06 14:07:58 (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TypeFunctionsTypeChecking
v27 v28 59 59 | ClassTyCon Class 60 60 | FamilyTyCon TyCon -- family tycon 61 [Type] -- instance types 61 62 TyCon -- representation coercion 62 63 }}} 63 which is a generalisation of the old field `algTcClass` of the internal representation for datatypes, `TyCon.AlgTyCon`. In contrast to the old `algTcClass` field, the new field also appears in `IfaceSyn.IfaceDecl`. However, it does so as `Maybe IfaceTyCon` as we still do not want to represent class parent information in interfaces and we only record the family tyconin interfaces, not the coercion. (The latter is implicitly reconstructed upon loading an interface.)64 which is a generalisation of the old field `algTcClass` of the internal representation for datatypes, `TyCon.AlgTyCon`. In contrast to the old `algTcClass` field, the new field also appears in `IfaceSyn.IfaceDecl`. However, it does so as `Maybe (IfaceTyCon, [IfaceType])` as we still do not want to represent class parent information in interfaces and we only record the family tycon and instance types in interfaces, not the coercion. (The latter is implicitly reconstructed upon loading an interface.) 64 65 65 66 NB: The type argument variables of the representation tycon are the free variables of the instance types; i.e., the representation data type is an ordinary data type, it is neither indexed nor open. The only give away of its special purpose is the value in `algTcParent`.
