Control.Foldl.impurely foldM :: Monad m => FoldM a b -> Producer a m () -> m b
Control.Foldl.impurely foldM' :: Monad m => FoldM a b -> Producer a m r -> m (b, r)