[Haskell-cafe] name of this monadic combinator?

Michael Vanier mvanier42 at gmail.com
Sun May 30 04:35:25 EDT 2010


I stumbled across this monadic combinator:

mcombine :: Monad m => (a -> a -> a) -> m a -> m a -> m a
mcombine f mx my = do
     x <- mx
     y <- my
     return (f x y)

I used it to chain the outputs of two Parsec String parsers together 
using this operator:

(<++>) :: Monad m => m String -> m String -> m String
(<++>) = mcombine (++)

mcombine seems like such a basic operation that it should be a library 
function, but I couldn't find one matching it on hoogle.  Is there one?

- Mike






More information about the Haskell-Cafe mailing list