<div dir="ltr"><div><div>There is another possible instance: <br></div></div><div><br></div><div><div>instance Semigroup a => Monoid (ZipList a) where</div><div>  mempty = ZipList []</div><div>  mappend (ZipList xs0) (ZipList ys0) = ZipList (mappend xs0 ys0) where</div><div>    go (x:xs) (y:ys) = x <> y : go xs ys</div><div>    go xs [] = xs</div><div>    go [] ys = ys</div></div><div><br></div><div>But +1 to the original one.</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-07-26 5:50 GMT+09:00 Christopher Allen <span dir="ltr"><<a href="mailto:cma@bitemyapp.com" target="_blank">cma@bitemyapp.com</a>></span>:<br><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><br></div>