Changes between Version 17 and Version 18 of KindSystem


Ignore:
Timestamp:
Oct 17, 2008 2:24:14 PM (7 years ago)
Author:
TristanAllwood
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • KindSystem

    v17 v18  
    4646
    4747-----------------------------
     48
    4849== Basic proposal ==
    4950
     
    133134GADT constructors must only accept arguments of kind {{{*}}} (as per the restrictions on (->) described above), but may also collect constraints for the kind inference system.
    134135
    135 === Kind inference ===
    136 
    137 Kind inference figures out the kind of each type variable.   There are often ambiguous cases:
    138 {{{
    139   data T a b = MkT (a b)
    140 }}}
    141 These are resolved by Haskell 98 with `(a :: *->*)` and `(b :: *)`.  We propose no change.
    142 But see kind polymorphism below.
    143 
    144 
    145136=== Interaction with Type Classes ===
    146137
     
    162153By default declaration arguments are inferred to be of kind {{{*}}} if there is nothing in the class declaration (member functions or explicit kind signature) to change this.  This seems sensible for backward-compatibility.
    163154
    164 === Interaction with Type Synonym Families ===
    165 
    166 TODO
    167 Also see: ClosedTypeFamilies
    168 
    169 
    170 === Interaction with Data Type Families ===
     155=== Interaction with Data/Type Synonym Families ===
     156
     157Follows as per type classes
     158
     159=== Kind inference ===
     160
     161Kind inference figures out the kind of each type variable.   There are often ambiguous cases:
     162{{{
     163  data T a b = MkT (a b)
     164}}}
     165
     166These are resolved by Haskell 98 with `(a :: *->*)` and `(b :: *)`.  We propose no change.
     167But see kind polymorphism below.
     168
    171169
    172170-----------------------------------