<p dir="ltr">We could add a newtype for this in Data.Monoid.</p>
<p dir="ltr">newtype Appl f a = Appl (f a)<br>
instance (Applicative f, Monoid a) => Monoid (Appl f a) where<br>
  mempty = Appl $ pure mempty<br>
  mplus (Appl x) (Appl y) = Appl $ liftA2 mplus x y</p>
<div class="gmail_quote">On Jul 25, 2015 4:50 PM, "Christopher Allen" <<a href="mailto:cma@bitemyapp.com">cma@bitemyapp.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><a href="http://hackage.haskell.org/package/base-4.8.1.0/docs/Control-Applicative.html#t:ZipList" target="_blank">http://hackage.haskell.org/package/base-4.8.1.0/docs/Control-Applicative.html#t:ZipList</a><br></div><div><br></div><div>There's a Monoid that matches what the Applicative for ZipList does that seems to be missing.</div><div><br></div><div><div>instance Monoid a => Monoid (ZipList a) where</div><div>  mempty  = pure mempty</div><div>  mappend = liftA2 mappend</div></div><div><br></div><div>It's been brought up before:</div><div><br></div><div><a href="https://mail.haskell.org/pipermail/haskell-cafe/2009-October/067861.html" target="_blank">https://mail.haskell.org/pipermail/haskell-cafe/2009-October/067861.html</a><br></div><div><br></div><div>Not only is it useful when it's the Monoid you want, but it serves an educational purpose for highlighting the relationship between Monoid and Applicative as well.</div><div><br></div><div>Are there any good reasons not to have it?</div><div><br></div><div>I'd like to limit discussion to two weeks.</div><div><br></div><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"></div></div></div></div></div>
</div>
<br>_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
<br></blockquote></div>