<div dir="auto"><span style="font-family:sans-serif;font-size:12.8px">> It's not only about top-level functions named 'on'. If I use 'on' as a local</span><span style="font-family:sans-serif;font-size:12.8px"> variable, then I get warnings about local redefinitions of the global</span><span style="font-family:sans-serif;font-size:12.8px"> Prelude.on.</span><div dir="auto"><span style="font-family:sans-serif;font-size:12.8px"><br></span></div><div dir="auto"><span style="font-family:sans-serif;font-size:12.8px">Oh heavens how did we not think of this point immediately? This frankly has me terrified of this proposal. This is such a cute name it's hard to imagine that it's not a local binding in numerous, invisible places.</span></div><div dir="auto"><span style="font-family:sans-serif;font-size:12.8px"><br></span></div><div dir="auto"><span style="font-family:sans-serif;font-size:12.8px">(Just last week I had to fix a package not on Hackage because it locally defined (<>)...)</span></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Sep 13, 2019, 7:54 AM Henning Thielemann <<a href="mailto:lemming@henning-thielemann.de">lemming@henning-thielemann.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;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>
<br>
I remember there was a lengthy discussion about the right name of 'on' and <br>
adding it to Data.Function. I had no need for that function because at <br>
this point I already had:<br>
<a href="https://hackage.haskell.org/package/utility-ht-0.0.14/docs/Data-Function-HT.html#v:compose2" rel="noreferrer noreferrer" target="_blank">https://hackage.haskell.org/package/utility-ht-0.0.14/docs/Data-Function-HT.html#v:compose2</a><br>
<br>
If I am right the short name 'on' was only adopted because it was not <br>
(automatically) exported by Prelude._______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank" rel="noreferrer">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</blockquote></div>