<div dir="ltr">If you have to choose between the two use Ben's code, reducers is in hospice on life-support, and is unlikely to see anything more than a maintenance release in the foreseeable future.<div><br></div><div>-Edward</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 24, 2017 at 1:34 PM, Ben Gamari <span dir="ltr"><<a href="mailto:ben@smart-cactus.org" target="_blank">ben@smart-cactus.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Merijn Verstraaten <<a href="mailto:merijn@inconsistent.nl">merijn@inconsistent.nl</a>> writes:<br>
<br>
> I would like to propose adding a newtype wrapper (with all relevant<br>
> instances) for Map and IntMap (if I missed any other applicable type<br>
> in containers, let me know).<br>
><br>
> This newtype should differ in Monoid/Semigroup instance from Map/IntMap by switching:<br>
><br>
> Ord k => Semigroup (Map k v)<br>
> Ord k => Monoid (Map k v)<br>
><br>
> to:<br>
><br>
> (Ord k, Semigroup v) => Semigroup (Map k v)<br>
> (Ord k, Monoid v) => Monoid (Map k v) or (Ord k, Semigroup v) => Monoid (Map k v)<br>
><br>
> Any opinions on the overall idea? Opinions on which Monoid instance?<br>
> Bikeshed for the newtype names?<br>
><br>
</span>For what it's worth, I provide precisely this in my monoidal-containers<br>
package [1]. Also, Edward Kmett provides a similar idea in his reducers<br>
package [2].<br>
<br>
Cheers,<br>
<br>
- Ben<br>
<br>
<br>
[1] <a href="https://hackage.haskell.org/package/monoidal-containers" rel="noreferrer" target="_blank">https://hackage.haskell.org/<wbr>package/monoidal-containers</a><br>
[2] <a href="https://hackage.haskell.org/package/reducers-3.12.1/docs/Data-Semigroup-Union.html" rel="noreferrer" target="_blank">https://hackage.haskell.org/<wbr>package/reducers-3.12.1/docs/<wbr>Data-Semigroup-Union.html</a><br>
<br>______________________________<wbr>_________________<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-<wbr>bin/mailman/listinfo/libraries</a><br>
<br></blockquote></div><br></div>