
I suspect there are few "modern" Monad instances that aren't already Functor and Applicative [*]. Where I see the change to the hierarchy being problematic is it out dates an awful lot of documentation especially text books which do cover the Monad type class (Monad is much more central to the teaching than say Data.Time or exceptions - old exceptions were in RWH but perhaps not featured elsewhere). You can't apply patches to books - the only mitigation you can perform is to make changes as the language standard changes. Then there's the second issue of renaming functions and eliminating duplicates - perhaps 2 proposals would have been better? [*] For some definition of modern - the only one I can think of that I use is Andy Gill's Dot Monad which is a State-Writer monad, monadic bind within the do-notation is the "trick" to make this Monad elegant and usable.