concatMapM
:: Monad a => (b > a [c]) > [b] > a [c]
Same as concatMap , but for a monadic function.

mapAccumM
:: Monad a => (b > c > a (b,d)) > b > [c] > a (b,[d])
Same as mapM
but with an additional accumulator threaded through.

Same as 
Same as 