<div class="gmail_extra">Why not be explicit about the replacement strategy by injecting your values into First/Last? My point is that in terms of functionality, using mappend on the values is strictly more general than the current instance. It seems unfortunate to be stuck with the current instance for historical reasons, but I guess that&#39;s how a lot of this stuff works :/<br>
<br><div class="gmail_quote">On Fri, Apr 27, 2012 at 9:52 PM, Evan Laforge <span dir="ltr">&lt;<a href="mailto:qdunkan@gmail.com" target="_blank">qdunkan@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">&gt; I realize that changing instances could break code, but I&#39;d be curious to<br>
&gt; see how many people even use the current monoid instance. Does anyone have<br>
&gt; any system for testing hypotheses like this (by typechecking a large<br>
&gt; randomized chunk of hackage or something)?<br>
<br>
</div>I use both definitions.  I have some data types where new values<br>
should replace old ones, and some where the values themselves should<br>
be joined.  I do the latter with a utility function &#39;Map.mappend =<br>
Map.unionWith Monoid.mappend&#39;.<br>
<br>
I think both definitions are useful and switching one for the other<br>
would just break a lot of code without a lot of benefit.<br>
</blockquote></div><br></div>