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?

====