Changes between Version 40 and Version 41 of TypeFunctions


Ignore:
Timestamp:
Aug 8, 2006 11:34:43 PM (8 years ago)
Author:
chak
Comment:

Kinds of indexed types are determined by the kind signature alone

Legend:

Unmodified
Added
Removed
Modified
  • TypeFunctions

    v40 v41  
    3030 * Applications of indexed types need to supply all indexes; i.e., partial application to indexes is not admitted.  (Arguments beyond the indexes can be partially supplied as usual.) 
    3131 * Instances of indexed data types/newtypes and equations of type functions have the same form as vanilla data types/newtypes and type synonyms, respectively, but can have non-variable type indexes in index positions.  Type indexes can include applications of indexed data types and newtypes, but no type functions. 
    32  * Instances of indexed data types and new types as well as type equations are only valid if a matching kind signature is in scope. 
     32 * Instances of indexed types are only valid if a kind signature for the type constructor is in scope.  The kind of an indexed type is solely determined from the kind signature.  Instances must conform to this kind; in particular, they must have the same number of type indexes. 
    3333 * The degenerate case of a data type/newtype declaration or type equation where all type parameters are variables is valid without a kind signature and coincides with the data types and type synonyms of vanilla Haskell.  In fact, for the moment, we do not allow the degenerate case to have a kind signature.  The latter constraint could be dropped if it proves to be inconvenient.  (Rationale: Multiple type equations are useless when one is degenerate - as the whole system needs to be confluent and we don't have sequential matching on type equations.  So, we get backwards compatibility for free.) 
    3434 * All type indexes of an associated indexed type or type function need to be class parameters.