Changes between Version 17 and Version 18 of KindSystem
 Timestamp:
 Oct 17, 2008 2:24:14 PM (8 years ago)
Legend:
 Unmodified
 Added
 Removed
 Modified

KindSystem
v17 v18 46 46 47 47  48 48 49 == Basic proposal == 49 50 … … 133 134 GADT constructors must only accept arguments of kind {{{*}}} (as per the restrictions on (>) described above), but may also collect constraints for the kind inference system. 134 135 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 145 136 === Interaction with Type Classes === 146 137 … … 162 153 By 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 backwardcompatibility. 163 154 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 157 Follows as per type classes 158 159 === Kind inference === 160 161 Kind 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 166 These are resolved by Haskell 98 with `(a :: *>*)` and `(b :: *)`. We propose no change. 167 But see kind polymorphism below. 168 171 169 172 170 