Is the `Monad ((,) w)` instance anywhere standard?
问题 I use the pair spelling of Writer all the time, but I always have to instantiate myself: instance (Monoid w) => Monad ((,) w) where return x = (mempty, x) ~(w,x) >>= f = let (w', y) = f x in (w `mappend` w', y) Does this live anywhere in the standard libraries? 回答1: As camccann mentioned in the comment, Control.Monad.Instances defines only the Functor instance. Control.Monad.Applicative defines the Applicative instance. The transformers package, and thus also version 2 and above of the mtl