That was my initial idea however I figured I would be replied with:
We are fairly conservative about adding new functions to core libraries. If you want to augment the List or Array library, we recommend creating small packages called list-extras or array-extras that have all the features you want. There are already several such packages maintained at the Elm Community organization that welcome contributions in the form of pull requests.
Long term, we will set up a process to review *-extras packages to move stuff into core. By going through packages, it will be much easier to assess whether a function is pleasant and useful in practice before committing to it in the core libraries.
Evan decides on what goes in the core libraries based on his understanding of the future of Elm and his taste on APIs (which is amazing btw). Much of the delightfulness of Elm is due to his careful consideration of the long term consequences of various decisions. This careful consideration is why Elm is also a lot more conservative than some people like it to be.
In the case of including some function into the core library, once it is there it cannot be taken out without breaking people’s code. One of the arguments against its inclusion is the fact that using it might mask improper data modeling. Consider the fact that the last commit to the Maybe module is a note to warn about overuse of withDefault:
Note: This can be overused! Many cases are better handled by a case
expression. And if you end up using withDefault a lot, it can be a good sign
that a [custom type][ct] will clean your code up quite a bit!
It is this kind of hints that guide people to better code.