Hal Daume <[EMAIL PROTECTED]> writes: > I know this has been written about way too much, but I was wondering > what people thought about using 'liftM f' as opposed to '>>= return . f'. > I would probably have written Andrew's code using liftM, but > I don't know if one is necessarily better than the other. Does > anyone have strong thoughts on this?
I tend to use liftM only as part of a pattern of lifting a family of non-monadic functions up to the monadic level in code like this: instance (Monad m, Num a) => Num (m a) where (+) = liftM2 (+) (-) = liftM2 (-) negate = liftM1 negate ... instance (Monad m, Integral a) => Integral (m a) where ... If it doesn't feel like lifting and/or it isn't part of a pattern like the above, I tend not to use it. A _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe