Investigate making types first-class citizens. This would involve
- adding a
Type primitive type
- removing the
type keyword (or using it solely for defining datatypes with constructors)
- perhaps removing all separation between terms, patterns, and types
Ensure
- distinct features are still available, like:
- default arguments for patterns
- rest patterns
- (type annotations within patterns)
- certain type operators like conditional types, access types, keyof, typeof, optional types