It has been discussed previously on why removing it is very dangerous and confusing to Elixir variable and function namespaces. Hopefully someone can find a link to some of those discussions.
There are case insensitive file systems, which means that, if we remove the Elixir.
prefix, then a User
module will conflict with the user
module in Erlang. The same for IO
and io
, etc.
Great idea! No need to wait for 2.0 though, should be done now. I think there is even an open issue.
Unfortunately very hard to do efficiently without currying and without static type checking to eliminate intermediate lambdas.
With tuples and atoms, you do have sum types and product types, which are the foundation of algebraic data types. We don’t have type checked algebraic data types though.