Proposal: add `on` to the Prelude

Henning Thielemann lemming at
Fri Sep 13 11:53:55 UTC 2019

On Tue, 10 Sep 2019, David Feuer wrote:

> Every time I reach for Data.Function.on, I feel like a total dolt for having to import a module to get a function
> whose implementation is barely longer than the import. And it's a really good function too! Can we please add it
> to the Prelude?
>   on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
>   (.*.) `on` f = \x y -> f x .*. f y

Most of the time I would use this I can use the more specific 'equating' 
and 'comparing'.

I remember there was a lengthy discussion about the right name of 'on' and 
adding it to Data.Function. I had no need for that function because at 
this point I already had:

If I am right the short name 'on' was only adopted because it was not 
(automatically) exported by Prelude.

More information about the Libraries mailing list