Reform of the Monad, and Disruptive Change

Howard B. Golden howard_b_golden at
Fri Feb 4 16:37:29 CET 2011

John Smith <voldermort at> asked:

> What is the best way out of  this deadlock?

My suggestions:

* If possible, make the change optional. As an example, create a second (third, 
etc.) Prelude with the new features without abandoning the current Prelude. Let 
the user choose the Prelude he/she wants via a pragma or compiler option. Then 
developers can vote with their feet (fingers?). If the new Prelude is buggy, it 
will be easy to try something else. You might call this "intellectual free 

* Do everything possible to create adapters to make upgrading existing code to 
the new Prelude. Thus, if a new Prelude is adopted widely, existing code will be 
easy to incorporate with minimal source changes.

* Avoid disruptive changes by letting the user decide. Once there is a clear 
consensus based on significant usage, then the new Prelude can be blessed by 
some committee (if desired). However, don't abandon the previous Prelude as an 
option, ever. Textbooks might teach only the newer Prelude, but old code would 
still work.

* Recognize that the Haskell user base at this time shouldn't be constrained by 
mandated changes, but should be encouraged to experiment and evolve the 



More information about the Haskell-prime mailing list