<p dir="ltr">That bar will be particularly hard to exceed in the presence of toList.</p>
<div class="gmail_quote">On Aug 31, 2015 3:00 PM, "David Feuer" <<a href="mailto:david.feuer@gmail.com">david.feuer@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">The theory of mconcat is that it should handle monoids that need to be summed in some special way. I don't know if anyone actually uses it so, however. Still, Reid is right that the circular dependency sets a very high bar.</p>
<div class="gmail_quote">On Aug 31, 2015 2:47 PM, "Reid Barton" <<a href="mailto:rwbarton@gmail.com" target="_blank">rwbarton@gmail.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">On Mon, Aug 31, 2015 at 1:54 PM, Fermin Reig <span dir="ltr"><<a href="mailto:ferminreig@fastmail.fm" target="_blank">ferminreig@fastmail.fm</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">We could generalise:<br>
<br>
mconcat:: [a] -> a<br>
mconcat = foldr mappend memtpy<br>
<br>
to:<br>
<br>
mconcat:: Foldable t => t a -> a<br>
mconcat = foldr mappend memtpy<br>
-- even<br>
-- mconcat = fold<br></blockquote><div><br></div><div>I don't understand the appeal of generalizing the type of a function when the generalization already exists; but in this case it's not a viable option anyways because mconcat is a class method of Monoid, and the definition of the Foldable class already refers to Monoid. Creating a circular dependency of Monoid on Foldable would be a headache best avoided.<br><br></div><div>Regards,<br></div><div>Reid Barton<br></div></div></div></div>
<br>_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">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>
</blockquote></div>