Changes between Version 121 and Version 122 of TypeFunctionsStatus


Ignore:
Timestamp:
Dec 28, 2006 1:11:54 AM (7 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TypeFunctionsStatus

    v121 v122  
    44 
    55'''Current:'''  
    6  1. Parsing/renaming for equational constraints 
    7    * Equational constraints require `-findexed-types`. 
    8  2. Well-formedness checks for equational constraints 
    9  3. Add type synonym instances to ifaces 
     6 1. Add type synonym instances to ifaces 
     7 2. Well-formedness checks for equational constraints (i.e., anything beyond the type arguments being boxed, rank 0 types) 
    108 
    119== Parsing and Renaming == 
     
    1412 
    1513Todo (high-level): 
    16  1. Parse and rename equality constraints in signatures. 
    17  2. Defaults for associated type synonyms.  (Having both a kind signature and vanilla synonym is problematic as in `RnNames.getLocalDeclBinders` its hard to see that not both of them are defining declarations, which leads to a multiple declarations error.  Defaults are quite different from vanilla synonyms anyway, as they usually have tyvars on their rhs that do not occur on the lhs.) 
     14 1. Defaults for associated type synonyms.  (Having both a kind signature and vanilla synonym is problematic as in `RnNames.getLocalDeclBinders` its hard to see that not both of them are defining declarations, which leads to a multiple declarations error.  Defaults are quite different from vanilla synonyms anyway, as they usually have tyvars on their rhs that do not occur on the lhs.) 
    1815 
    1916Done: 
     
    2421 * Allowing `type` tag in export lists to list associated types in the sub-binder list of an import/export item for a class. 
    2522 * Import/export lists: ATs can be listed as subnames of classes and the data constructors of instances of a data family are subnames of that family. 
     23 * Parsing and renaming of equational constraints in contexts. 
    2624 
    2725== Type Checking == 
     
    5755    '''Answer:''' We don't put anything extra into interface files.  Instead, we derive the information corresponding to`IfaceInst` list in `ModIface` and the `Instance` list in `ModDetails` from the interface declarations and type environment, respectively.  I.e., it is the type instances that carry the whole payload. 
    5856    '''Update:''' We may actually want to put a rough match signature in the iface seperate from the full instance declaration, so we can delay type checking the full instance declaration until we get a rough match.  (This makes only sense for `type instance`s, not for `data instance`s, as the latter are loaded when their constructors are mentioned.  Well actually, it does make sense for `data instance`s as far as loading them for overlap checking is concerned.) 
    59  3. Desugar type functions and equality constraints. 
     57 2. Emit type function instances to ifaces. 
    6058 
    6159Done: 
     
    6866 * Import and exporting. 
    6967 * Generation and plumbing through of rough matches. 
     68 * Equational constraints in contexts. 
    7069 
    7170== Testsuite ==