If new intermediate classes crop up then there would be no point in fixing class (Applicative m) => Monad m where since it would have to be changed if new intermediate classes are found. I realize non-existence proofs are hard. -- -- Regards, KC