
On Feb 21, 2018, at 10:59 AM, Simon Peyton Jones
wrote: 4. Define Type as a new keyword (with TypeInType). It does not need to be imported; it cannot be overridden or redefined. (Just like (->).)
A variant of this (which I quite like) is to use the existing keyword type (lowercase). Advantage: simple clear story Note: won’t break existing code; only code that says TypeInType
The overall proposal still would break existing code, because -XTypeOperators would now mean that * is not available. That code would have to switch to using the new syntax, whatever it may be. Note that we can't really accept this proposal without figuring out what to do about *. Right now, -XTypeInType forces you to import Data.Kind to mention *. This is so that -XTypeInType code can also use type-level multiplication. If we merge -XTypeInType with -XPolyKinds (as proposed), then we need to resolve what will happen to existing code with -XPolyKinds and -XTypeOperators. Richard