<div dir="ltr">I'd definitely be -1 on an mconcat-like operation for Semigroup. I think mconcat mostly fails to be useful for monoid, because all it has over fold is knowledge of right and left bias and the theoretical (but practically, I think, rather hard to exploit) ability to group and locally rearrange elements while summing. Kmett has a version of Foldable designed to use with semigroups, and I'd be okay with adding that.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 29, 2015 at 10:14 AM, Stephen Tetley <span dir="ltr"><<a href="mailto:stephen.tetley@gmail.com" target="_blank">stephen.tetley@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">> why do you need an mconcat-like operation?<br>
<br>
</span>Well, the more operations the better, especially derived ones rather<br>
than ones baked into the class.<br>
<br>
For me a class with only one operation wouldn't really meet the<br>
Fairburn threshold. In this case, I'd abstain from voting against as<br>
the consensus is high but I would like to see a proper proposal for<br>
what adding Semigroup includes (and what it leaves out) rather than a<br>
straw in the wind notion to just add it.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On 29 April 2015 at 14:57, David Feuer <<a href="mailto:david.feuer@gmail.com">david.feuer@gmail.com</a>> wrote:<br>
> Kmett's NonEmpty type (or similar) is the solution to this, but really, why<br>
> do you need an mconcat-like operation?<br>
><br>
> On Wed, Apr 29, 2015 at 9:51 AM, Stephen Tetley <<a href="mailto:stephen.tetley@gmail.com">stephen.tetley@gmail.com</a>><br>
> wrote:<br>
>><br>
>> Empty lists are problematic if you want a mconcat like operation.<br>
>><br>
>> Edward Kmett's semigroups package introduces an EmptyList type to<br>
>> avoid this (the downside being it introduces an EmptyList type).<br>
>><br>
>> If you don't want an mconcat like operation then Semigroup only has<br>
>> one useful operation (<>).<br>
>><br>
>><br>
>><br>
>> On 29 April 2015 at 14:13, David Feuer <<a href="mailto:david.feuer@gmail.com">david.feuer@gmail.com</a>> wrote:<br>
>> > What's problematic about empty lists for semigroups?<br>
>> ><br>
>> > On Wed, Apr 29, 2015 at 8:51 AM, Stephen Tetley<br>
>> > <<a href="mailto:stephen.tetley@gmail.com">stephen.tetley@gmail.com</a>><br>
>> > wrote:<br>
>> >><br>
>> >> The consensus seems largely to favour the high level proposal to add a<br>
>> >> Semigroup class, but there hasn't been much discussion of the<br>
>> >> implementation details i.e. what to do about mappend or a<br>
>> >> Semigroup-like candidate (problematic for empty lists, of course).<br>
>> >><br>
>> >><br>
>> >><br>
>> >> On 29 April 2015 at 12:24, Jeremy <<a href="mailto:voldermort@hotmail.com">voldermort@hotmail.com</a>> wrote:<br>
>> >> > So what's the conclusion on this? We seem to have a strong consensus<br>
>> >> > on<br>
>> >> > going<br>
>> >> > ahead with the proposal, and a weaker consensus for doing so via the<br>
>> >> > long<br>
>> >> > path.<br>
>> >> ><br>
>> >> ><br>
>> >> ><br>
>> >> > --<br>
>> >> > View this message in context:<br>
>> >> ><br>
>> >> > <a href="http://haskell.1045720.n5.nabble.com/Proposal-Make-Semigroup-as-a-superclass-of-Monoid-tp5767835p5808129.html" target="_blank">http://haskell.1045720.n5.nabble.com/Proposal-Make-Semigroup-as-a-superclass-of-Monoid-tp5767835p5808129.html</a><br>
>> >> > Sent from the Haskell - Libraries mailing list archive at Nabble.com.<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" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><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" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
>> ><br>
>> ><br>
><br>
><br>
</div></div></blockquote></div><br></div>