Hilariously, I'm mild -1 on this. Haskell is an extremely import-heavy language. Anyone who isn't willing to just write their own mini-Prelude should be ready to import things like `on`. Why isn't `for` exported in Prelude? What about `&`? Both of these are extremely useful and common, even moreso than *on*! And their implementation is *even shorter*. It's a slippery slope._______________________________________________On Tue, Sep 10, 2019 at 6:59 PM David Feuer <david.feuer@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 SignalHandlerIdbrick:on :: Color -> Color -> Attresqueletto: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 actionwild-bind:on :: i -> v -> Binder i v ()massiv-io:on :: Pixel X Bitselda-postgresql:on :: Text -> Text -> PGConnectInfoOn Tue, Sep 10, 2019, 6:42 PM Ryan Trinkle <ryan.trinkle@gmail.com> wrote:One note: this does conflict with some other libraries, for instance GTK2HSOn Tue, Sep 10, 2019 at 6:26 PM chessai . <chessai1996@gmail.com> wrote:+1_______________________________________________On Tue, Sep 10, 2019, 5:53 PM David Feuer <david.feuer@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@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries