<div dir="auto">I consider equating (and comparing) a bit of an anti-pattern. They're extra names to express what `on` does more generally, and barely save any characters over it </div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Sep 14, 2019, 2:51 PM Erik Hesselink <<a href="mailto:hesselink@gmail.com">hesselink@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr">On Fri, 13 Sep 2019 at 13:54, Henning Thielemann <<a href="mailto:lemming@henning-thielemann.de" target="_blank" rel="noreferrer">lemming@henning-thielemann.de</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
On Tue, 10 Sep 2019, David Feuer wrote:<br>
<br>
> Every time I reach for Data.Function.on, I feel like a total dolt for having to import a module to get a function<br>
> whose implementation is barely longer than the import. And it's a really good function too! Can we please add it<br>
> to the Prelude?<br>
>   on :: (b -> b -> c) -> (a -> b) -> a -> a -> c<br>
>   (.*.) `on` f = \x y -> f x .*. f y<br>
<br>
Most of the time I would use this I can use the more specific 'equating' <br>
and 'comparing'.<br></blockquote><div><br></div><div>Does 'equating' exist in base now? I've always missed having that function in the past, and defined it myself many times.</div><div><br></div><div>Erik<br></div></div></div>
</blockquote></div>