Unit
is a type (unlike void
) and has a value (unlike Void
). This enable uniform treatment of Unit
when it comes to generic classes. I.e. we don’t need another two types: a function that returns something and a function that returns void
. It’s all one type: a function that returns something tat may be Unit.
Introducing void
would pose many problems in areas like type inference, compositionality of any sort of functions, etc