It is clear, that current 'core' Haskell packages bear some weight
of legacy and back-compatibility, and accumulates garbage/problems
over time. Some of the garbage can be dropped and some was here for
so long, that it can't be dropped without major buzz.
For example, we have Monad type-class, that is hardwired
into Haskell syntax. However, it allows arbitrary fail by
definition, and not all monads should provide this option. Still, it
is almost impossible to move the method into separate interface, as
every Monad instance will have to be rewritten.
Lack of standard packed text/binary string type is also a problem.
It is not so problem on itself, as problem of support: different io
packages, parser tools and so on have to choose what string type to
use, which lead to fragmentation of library field.
Hierarchy of numeric classes is also often questioned.
More points of problems may be found if one will study Hackage long
enough.
So, the questions arise:
- When problems will ruin the language?
- When and which actions are needed to avoid this?
- If major rewrite will be initiated, what problems it should
target?
- And how to make the transition easier?
====