| 53 | | * Allow `*` on `data kind`s? Or maybe `Type`, or `Star`. |
| 54 | | |
| 55 | | * Perhaps also `data type D ...` |
| 56 | | |
| 57 | | * Promote type synonyms by default |
| 58 | | |
| 59 | | * What about `type kind K1 = K2`? |
| 60 | | |
| 61 | | * Even worse: `type type T1 = T2`... |
| | 54 | = Kind synonyms (from type synonym promotion) = |
| | 55 | |
| | 56 | Currently GHC does not promote type synonyms. We propose to change this, and make GHC promote |
| | 57 | type synonyms to kind synonyms by default with `-XDataKinds`. For instance, `type String = [Char]` |
| | 58 | should give rise to a kind `String`. |
| | 59 | |
| | 60 | '''Question:''' are there dangerous interactions with `-XLiberalTypeSynonyms`? E.g. what's the kind |
| | 61 | of ''type K a = forall b. b -> a`? |
| | 62 | |
| | 63 | By extension, we might want to have kind synonyms that do not arise from promotion: `type kind K ...`. |
| | 64 | And perhaps even type synonyms that never give rise to a promoted kind: `type type T ...`. |