Proposal: add `on` to the Prelude

Andreas Abel andreas.abel at ifi.lmu.de
Thu Sep 12 14:48:50 UTC 2019


+1 for adding `on` to the Prelude.

On 2019-09-11 00:59, David Feuer 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 
> <mailto: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
>     <mailto:chessai1996 at gmail.com>> wrote:
> 
>         +1
> 
>         On Tue, Sep 10, 2019, 5:53 PM David Feuer <david.feuer at gmail.com
>         <mailto: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 <mailto:Libraries at haskell.org>
>             http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
> 
>         _______________________________________________
>         Libraries mailing list
>         Libraries at haskell.org <mailto: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
> 


More information about the Libraries mailing list