Currently, None types in the code either mean:
- the internal
Void type: a type that cannot be used
None: an uninhabited type (i.e. a type without any values)
- the internal
NoneTyp type: the type that contains only the value None (this cannot currently be explicitly specified)
After doing proper Optional checking, I propose that we make None types always mean NoneTyp. Optional checking will prevent functions that return None from being used in places they shouldn't, and allowing users to specify something is the uninhabited type isn't currently useful at all.
Currently,
Nonetypes in the code either mean:Voidtype: a type that cannot be usedNone: an uninhabited type (i.e. a type without any values)NoneTyptype: the type that contains only the valueNone(this cannot currently be explicitly specified)After doing proper Optional checking, I propose that we make
Nonetypes always meanNoneTyp. Optional checking will prevent functions that returnNonefrom being used in places they shouldn't, and allowing users to specify something is the uninhabited type isn't currently useful at all.