<div dir="ltr">my one concern is that we'd be force to give all the various map data structures out there a left biased "First" style semigroup instance if we keep the current default monoid instances that containers and list-tries provide for historical reasons. and at least in the applications i write, i want the semigroup that merges those keys.</div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Mar 29, 2015 at 3:14 PM, Evan Laforge <span dir="ltr"><<a href="mailto:qdunkan@gmail.com" target="_blank">qdunkan@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="">On Sun, Mar 29, 2015 at 5:20 AM, Jeremy <<a href="mailto:voldermort@hotmail.com">voldermort@hotmail.com</a>> wrote:<br>
> Now that 7.10 is out, I would like to re-propose. The proposed plan is<br>
> similar to AMP, but less invasive, as (in my subjective experience)<br>
> user-defined Monoids are much less common than user-defined Monads.<br>
<br>
</span>I think I'm generally in favor, but in my experience is the reverse of<br>
this.  I have tons of Monoids and only a few Monads.  All of my Monads<br>
also had Applicative defined because I wanted to use (<$>) and (<*>),<br>
however none of my Monoids have Semigroup, because they all have a<br>
natural mempty, and there's nothing "extra" in Semigroup that would<br>
tempt me to add an instance.  So while AMP meant no changes for me,<br>
"Semi MP" would definitely force code changes in many places (every<br>
'instance .*Monoid', which is 31 in one project).<br>
<br>
That said I don't have to worry about backward compatibility so I<br>
don't mind.  For someone who maintains libraries, they would have to<br>
add a dependency on 'semigroup', which is going to pull in a number of<br>
other dependencies, but it mostly seems to be stuff people are<br>
probably already depending on.  Except unordered-containers maybe.<br>
<div class="HOEnZb"><div class="h5">_______________________________________________<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>
</div></div></blockquote></div><br></div>