It might be useful to relax the type of the function to Monad m => (a -> b -> c) -> m a -> m b -> m c
/Jonas On 30 May 2010 10:35, Michael Vanier <[email protected]> wrote: > 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 > > > > > _______________________________________________ > Haskell-Cafe mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
