Changes between Version 56 and Version 57 of TypeFunctions
 Timestamp:
 Sep 6, 2006 1:35:50 AM (10 years ago)
Legend:
 Unmodified
 Added
 Removed
 Modified

TypeFunctions
v56 v57 22 22 data family T a1 .. an [:: <kind>] 23 23 }}} 24 and introduce a type family whose kind is determined by the kinds of the `ai` (which can have kind annotations) and the optional signature `<kind>` (which defaulys to `*`). Newtypes families have the same form, except for the initial keyword. '''We can now also admit the omission of the kind with * being the default.'''24 and introduce a type family whose kind is determined by the kinds of the `ai` (which can have kind annotations) and the optional signature `<kind>` (which defaulys to `*`). Newtypes families have the same form, except for the initial keyword. 25 25 * Kind signatures of type function have the form 26 26 {{{ … … 35 35 * All argument variables of an associated type family declaration need to be class parameters. There may not be any repetitions, but the order of the variables can differ from that in the class head and the type family can be defined over a subset of the class parameters. 36 36 * In instances, the type indexes of a type declaration must be identical to the corresponding class parameters (i.e., those that share the same variable name in the class declaration). And all arguments that where not connected to a class parameter in the family declaration must be variables; i.e., cannot be used as type indexes. 37 * In an export and import list we currently cannot explicitly list ATs in brackets after the class name (as all upper case names in such brackets are read as data constructors, not type constructors). 37 38 * Instances of indexed data and new types may not overlap (as such instances correspond to indeterminate type functions). Type equations may only overlap if the equations coincide at critical pairs. (Rational: We cannot be more lazy about checking overlap, as we otherwise cannot guarantee that we generate an F,,C,, program that fulfils the formal consistency criterion.) 38 39