Proposal: add `on` to the Prelude

David Feuer david.feuer at gmail.com
Tue Sep 10 22:59:26 UTC 2019


Indeed, there are a lot more conflicts than I'd have expected. Ignoring
functions with the same type, Hoogle shows this name in the below packages.
I have no sense of the overall significance of the specific packages or
(equally importantly) of the `on` function within each.

haskell-gi-base:
on :: forall object info m . (GObject object, MonadIO m, SignalInfo info)
=> object -> SignalProxy object info -> HaskellCallbackType info -> m
SignalHandlerId

brick:
on :: Color -> Color -> Attr

esqueletto:
on :: SqlExpr (Value Bool) -> SqlQuery ()

relational-query (both):
on :: MonadQuery m => Predicate Flat -> m ()
on :: MonadQuery m => QueryA m (Predicate Flat) ()

threepenny-gui:
on :: (element -> Event a) -> element -> (a -> UI void) -> UI ()

miso:
on :: MisoString -> Decoder r -> (r -> action) -> Attribute action

wild-bind:
on :: i -> v -> Binder i v ()

massiv-io:
on :: Pixel X Bit

selda-postgresql:
on :: Text -> Text -> PGConnectInfo


On Tue, Sep 10, 2019, 6:42 PM Ryan Trinkle <ryan.trinkle at gmail.com> wrote:

> One note: this does conflict with some other libraries, for instance GTK2HS
>
> On Tue, Sep 10, 2019 at 6:26 PM chessai . <chessai1996 at gmail.com> wrote:
>
>> +1
>>
>> On Tue, Sep 10, 2019, 5:53 PM David Feuer <david.feuer at gmail.com> 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
>>> _______________________________________________
>>> Libraries mailing list
>>> Libraries at haskell.org
>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>>
>> _______________________________________________
>> Libraries mailing list
>> Libraries at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20190910/d2137a67/attachment.html>


More information about the Libraries mailing list