Proposal: new function for lifting

Everybody is claiming that using lift is a bad thing. So, I come to remedy this problem. Stop lifting, start using shinny operators like this one: (^$) :: Monad m => m a -> (a -> b -> c) -> m b -> m c (^$) = flip liftM2 Then you can do wonderful stuff and you will never read the four-letter word in your code again: \> Just 42 ^$(+)$ Nothing Nothing \> Just 10 ^$(+)$ Just 20 Just 30 \> let add = (+) \> Just 30 ^$ add $ Just 12 Just 42

Which "lift"? This one? class MonadTrans t where lift :: Monad m => m a -> t m a -- View this message in context: http://haskell.1045720.n5.nabble.com/Proposal-new-function-for-lifting-tp573... Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.

this is a funny trick, and it looks saner than the more general <$> <*> combinators.
i see many situations where i could use that to lift my own combinators,
or to replace the backticks (``) to lift the infix function.
thx
- marc
Gesendet: Freitag, 27. September 2013 um 21:51 Uhr
Von: "Thiago Negri"

On 27 September 2013 21:51, Thiago Negri
Stop lifting, start using shinny operators like this one:
(^$) :: Monad m => m a -> (a -> b -> c) -> m b -> m c (^$) = flip liftM2
Note that something like this is already provided by the InfixApplicative library: http://hackage.haskell.org/package/InfixApplicative
participants (4)
-
Bas van Dijk
-
Marc Ziegert
-
Thiago Negri
-
Wvv