This is what designations are for.
bind2 :: (Monad m) => m a -> m b -> (a -> b -> m c) -> m c
bind2 ma mb f = do
a <- ma
b <- mb
f a b
It is so simple that I probably would not even define an additional operator for it, rather I would just use the notation directly.
source
share