<html><head></head><body><div class="ydp9aa3d926yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div></div>
        <div dir="ltr" data-setdir="false">Hello Georgi,</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">I'm confused about WrappedMonoid. How can something have a Monoid instance already without having a Semigroup instance in the first place? <br></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">But also what is the benefit of WrappedMonoid over the standard way of defining Semigroups and Monoids for your example<br></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><font face="courier new, courier, monaco, monospace, sans-serif">data List a = Nil | Cons a (List a)</font></div><div dir="ltr" data-setdir="false"><font face="courier new, courier, monaco, monospace, sans-serif"><br></font></div><div dir="ltr" data-setdir="false"><font face="courier new, courier, monaco, monospace, sans-serif">instance Semigroup (List a) where</font></div><div dir="ltr" data-setdir="false"><font face="courier new, courier, monaco, monospace, sans-serif">  Nil       <> ys = ys</font></div><div dir="ltr" data-setdir="false"><font face="courier new, courier, monaco, monospace, sans-serif">  Cons x xs <> ys = Cons x (xs <> ys)<br></font></div><div><font face="courier new, courier, monaco, monospace, sans-serif"><br></font></div><div dir="ltr" data-setdir="false"><font face="courier new, courier, monaco, monospace, sans-serif">instance Monoid (List a) where mempty = Nil</font></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><div><div dir="ltr" data-setdir="false">?</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">Cheers,</div><div dir="ltr" data-setdir="false">John<br></div><div dir="ltr" data-setdir="false"><br></div></div><div><br></div></div>
        
        </div><div id="yahoo_quoted_9208345914" class="yahoo_quoted">
            <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                
                <div>
                    On Saturday, 14 September 2019, 19:18:01 UTC, Georgi Lyubenov <godzbanebane@gmail.com> wrote:
                </div>
                <div><br></div>
                <div><br></div>
                <div><div id="yiv9943144451"><div dir="ltr">Hello!<br><br>Sorry if this is not the right place to ask!<br><br>As of right now (14.09.2019) Data.Semigroup.WrappedMonoid <a rel="nofollow" target="_blank" href="https://hackage.haskell.org/package/base-4.12.0.0/docs/Data-Semigroup.html#t:WrappedMonoid">is slated to be deprecated</a>.<br><br>I believe that this newtype is actually useful in tandem with DerivingVia, as it allows you to derive the Semigroup instance for something that has a Monoid instance already, <a rel="nofollow" target="_blank" href="https://twitter.com/googleson78/status/1172944490597945344">as discussed in this twitter thread</a>.<br><br>Would it be possible to *not* deprecate it in the future, and instead keep it around for exactly this purpose?<br><br>Cheers,<br>Georgi</div></div>_______________________________________________<br>Libraries mailing list<br><a ymailto="mailto:Libraries@haskell.org" 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>
        </div></body></html>