Motivation: Memory overuse
Haskell computations produce a lot of memory garbage - much more than conventional imperative languages. It's because data are immutable so the only way to store every next operation's result is to create new values. In particular, every iteration of a recursive computation creates a new value. (Haskell Wiki: Memory management)
For this reason Haskell is required to have unsafe types and have problems to perform correctly with large datasets.
Proposal: Opportunistic mutability
Richard Feldman is his conference „Outperforming Imperative with Pure Functional Languages“ present Opportunistic mutability to solve this issue. This enables the runtime to no eat memory because instead of creating a new allocation of memory for every „change“ done to a variable, it just allocates new memory when presented with a value that will still be required by the program.