[Haskell-cafe] Applicative Monoid instance

Jack Henahan jhenahan at me.com
Mon Sep 5 19:32:42 UTC 2016

Instance overlap would break a lot of Monad instances (notably [a]),
IIRC. This instance comes up on the mailing list every two or three
years, it looks like.

2007: https://mail.haskell.org/pipermail/libraries/2007-March/006997.html

2011: https://mail.haskell.org/pipermail/libraries/2011-December/017369.html

2013: http://haskell.1045720.n5.nabble.com/MonadPlus-instance-for-ContT-tp5732028p5732039.html

There's a newtype-wrapped version of this in Control.Compose [1]

[1]: https://hackage.haskell.org/package/TypeCompose-0.9.11/docs/Control-Compose.html#g:10

Brian Hurt <bhurt at spnz.org> writes:

> This may be a stupid question, but I'm wondering why the following instance
> isn't in prelude:
> instance (Applicative m, Monoid a) => Monoid (m a) where
>     mempty = pure mempty
>     mappend a b = mappend <$> a <*> b
> ?
> I ask, because being able to use a WriterT (IO ()) STM a to debug complex
> STM expressions would be really nice.  But it depends upon IO () being a
> monoid.
> Brian
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 800 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160905/2d27987a/attachment.sig>

More information about the Haskell-Cafe mailing list