Changes between Version 41 and Version 42 of TypeFunctions


Ignore:
Timestamp:
Aug 9, 2006 12:53:21 AM (8 years ago)
Author:
chak
Comment:

Initial info about kind checking

Legend:

Unmodified
Added
Removed
Modified
  • TypeFunctions

    v41 v42  
    125125---- 
    126126 
     127=== Kind checking indexed data types === 
     128 
     129The workhorse of kind checking type and class declarations is `TcTyClDecls.kcTyClDecls`, which is invoked by `TcTyClDecls.tcTyClDecls` once per binding group.  It handles type synonyms different from algebraic data type declarations and classes, as synonyms have a richer kind structure (making kind checking harder), but cannot be recursive (which makes kind checking easier).  Indexed types present yet a different set of trade offs as they are guaranteed to come with kind signatures, but have type patterns and not necessarily all definitions visible at once. 
     130 
     131Indexed types (including type functions!) are generally included in the processing of algebraic data types and classes.  However, we handle kind signatures slightly different from definitions of members of the indexed family.  More precisely, kind signatures participate in the construction of the initial kind environment (as performed by `getInitialKind`), whereas the definition of the members of an indexed type does not.  Otherwise, the two are treated the same. 
     132 
    127133=== Type checking indexed data types === 
    128134