:: Monad m => (b -> a -> m b) -> b -> t a -> m b package:ghc