(a -> a -> IO ()) -> [a] -> [a] -> IO ()

zipWithM_ :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m ()
base Control.Monad
zipWithM_ is the extension of zipWithM which ignores the final result.
foldM :: Monad m => (a -> b -> m a) -> a -> [b] -> m a
base Control.Monad
The foldM function is analogous to foldl, except that its result is encapsulated in a monad. Note that foldM works from left-to-right over the list arguments. This could be an issue commutative. > foldM f a1 [x1, x2, ..., xm] == > do > a2 <- f a1 x1 > a3 <- f a2 x2 > ... > f am xm If right-to-left evaluation is required, the input list should be reversed.
foldM_ :: Monad m => (a -> b -> m a) -> a -> [b] -> m ()
base Control.Monad
Like foldM, but discards the result.
foldlM :: (Foldable t, Monad m) => (a -> b -> m a) -> a -> t b -> m a
base Data.Foldable
Monadic fold over the elements of a structure, associating to the left, i.e. from left to right.
foldrM :: (Foldable t, Monad m) => (a -> b -> m b) -> b -> t a -> m b
base Data.Foldable
Monadic fold over the elements of a structure, associating to the right, i.e. from right to left.