Proposal: add `on` to the Prelude

David Feuer david.feuer at gmail.com
Thu Sep 12 15:15:13 UTC 2019


No, there's certainly no need to remove the existing function.

On Thu, Sep 12, 2019, 10:57 AM Elliot Cameron <eacameron at gmail.com> wrote:

> You might be on2 something.
>
> But then you rename it in Data.Function too and break backward compat??
>
> On Thu, Sep 12, 2019 at 10:55 AM David Feuer <david.feuer at gmail.com>
> wrote:
>
>> For whatever it's worth, the unidiomatic but arguably more logical name
>> `on2` has no hits on Hoogle.
>>
>> On Tue, Sep 10, 2019, 6:59 PM David Feuer <david.feuer at gmail.com> wrote:
>>
>>> 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
>>>>>
>>>> _______________________________________________
>> 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/20190912/7b146a42/attachment.html>


More information about the Libraries mailing list