| | 167 | |
| | 168 | |
| | 169 | === Kind Namespace === |
| | 170 | |
| | 171 | Also see: TypeNaming |
| | 172 | |
| | 173 | Strictly, the new kinds that have been introduced using {{{data kind}}} syntax inhabit a new namespace. Mostly it is unambiguous when you refer to a type and when you refer to a kind. However there are some corner cases, particularly in module import/export lists. |
| | 174 | |
| | 175 | '''Option 1 : Collapse Type and Kind namespace''' |
| | 176 | |
| | 177 | ''Pros:'' |
| | 178 | * Simple |
| | 179 | * Follows behaviour of type classes, type functions and data type functions. |
| | 180 | |
| | 181 | ''Cons:'' |
| | 182 | * Inconsistent. It would allow the user to create {{{True}}} and {{{False}}} as types, but not to be able to put them under kind {{{Bool}}}. (You'd need to name your kind a {{{Bool'}}} or {{{Bool_k}}}) |
| | 183 | |
| | 184 | '''Option 2 : Fix ambiguities''' |
| | 185 | |
| | 186 | ''Pros:'' |
| | 187 | * As more extensions are put into the language, it'll have to happen sooner or later |
| | 188 | |
| | 189 | ''Cons:'' |
| | 190 | * Will involve creating a whole new namespace |
| | 191 | * Several corner cases |
| | 192 | |
| | 193 | |
| 321 | | |
| 322 | | == Kind Namespace == |
| 323 | | |
| 324 | | With reference to: TypeNaming |
| 325 | | |
| 326 | | Strictly, the new kinds that have been introduced using {{{data kind}}} syntax inhabit a new namespace. Mostly it is unambiguous when you refer to a type and when you refer to a kind. However there are some corner cases, particularly in module import/export lists. |
| 327 | | |
| 328 | | === Option 1 : Collapse Type and Kind namespace === |
| 329 | | |
| 330 | | '''Pros:''' |
| 331 | | * Simple |
| 332 | | * Follows behaviour of type classes, type functions and data type functions. |
| 333 | | |
| 334 | | '''Cons:''' |
| 335 | | * Inconsistent. It would allow the user to create {{{True}}} and {{{False}}} as types, but not to be able to put them under kind {{{Bool}}}. (You'd need to name your kind a {{{Bool'}}} or {{{Bool_k}}}) |
| 336 | | |
| 337 | | === Option 2 : Fix ambiguities === |
| 338 | | |
| 339 | | '''Pros:''' |
| 340 | | * As more extensions are put into the language, it'll have to happen sooner or later |
| 341 | | |
| 342 | | '''Cons:''' |
| 343 | | * Will involve creating a whole new namespace |
| 344 | | * Several corner cases |