I am unclear why beginners can't be taught the same way as today, but only giving examples where the data types are normal lists, and then in a more advanced chapter saying "actually, mapM (or whatever) works on more data types...".
That said, if 100% backward compatibility is an issue (isn't it always? :-), perhaps having a *standard* "no training wheels" prelude would solve the problem? Assuming it was trivial to switch to it in the cabal package file and not in the sources themselves.
I know there is a whole bunch of prelude replacements, but that's the problem - there is a whole bunch of them. As SPJ pointed out, the "burning bridges" phrase was about switching to new libraries, not to a new language/compiler. Would it be a "flexible bridge" if there was an official community effort to create a standard prelude 2.0 file?
Oren.