Specialise liftM, foldM, etc, and make them specialisable for new monads at their call sites by using INLINEABLE