Where is the pairing-with-monoid monad instance?

Is the standard pair-with-monoid monad instance in some standard place? I see the Applicative instance in Control.Applicative, and the pair-with-monoid Functor instance in Control.Monad.Instances, and the (->) e and Either e monad instances also in Control.Monad.Instances. I'm looking for something like instance Monoid o => Monad ((,) o) where return a = (mempty,a) (o,a) >>= f = (o `mappend` o', b) where (o',b) = f a Where is it hiding from me? Thanks, - Conal

On Wed, Jan 11, 2012 at 03:23, Conal Elliott wrote:
Is the standard pair-with-monoid monad instance in some standard place? I see the Applicative instance in Control.Applicative, and the pair-with-monoid Functor instance in Control.Monad.Instances, and the (->) e and Either e monad instances also in Control.Monad.Instances.
I'm looking for something like
instance Monoid o => Monad ((,) o) where return a = (mempty,a) (o,a) >>= f = (o `mappend` o', b) where (o',b) = f a
Where is it hiding from me?
http://hackage.haskell.org/packages/archive/transformers/0.2.2.0/doc/html/Co... Regards, Sean
participants (2)
-
Conal Elliott
-
Sean Leather