In my opinion a completely new standard library with a new API would break to many existing codebases. A lot of people have come to terms with the existing functions in base.
Yeah, and in language like Haskell which implements lots of functionality on library level, standard library built from scratch could have as much effect as a new language.
But honestly, I think that may be a good thing, as long as:
- community provides official, well written, authoritative resource about it’s usage (as mentioned above)
- developers provide some incremental approach for switching to new standard library (e.g. migration tools)
- developers give existing users enough time to do so
Incremental approach sounds appealing, but honestly, there are so many things that could be potentially changed that such transition could take years, frustrating users by regularly breaking stuff along the way.
Python 2 is a scary example of an old version of ecosystem staying alive for years, though it feels slightly different compared to Haskell - even though it is an old language, big part of it’s history consisted of mostly academic use, which while interesting and important in it’s own way, isn’t usually about long term support and probably won’t be strongly affected by such change. When it comes to learning materials, as long as we have official resources mentioned above, we can invest energy in pointing newcomers towards it - there are few strategic places where we can put links to new materials.
In this light of doing breaking changes, it may be good idea to pair release of new standard library with corresponding GHCXXXX
extension as a new default, so that newcomers hop straight into modern setup without need for collecting extensions they want/need manually.