Changes between Version 121 and Version 122 of TypeFunctionsStatus
- Timestamp:
- 12/27/06 17:11:54 (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TypeFunctionsStatus
v121 v122 4 4 5 5 '''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) 10 8 11 9 == Parsing and Renaming == … … 14 12 15 13 Todo (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.) 18 15 19 16 Done: … … 24 21 * Allowing `type` tag in export lists to list associated types in the sub-binder list of an import/export item for a class. 25 22 * 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. 26 24 27 25 == Type Checking == … … 57 55 '''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. 58 56 '''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. 60 58 61 59 Done: … … 68 66 * Import and exporting. 69 67 * Generation and plumbing through of rough matches. 68 * Equational constraints in contexts. 70 69 71 70 == Testsuite ==
