Desugaring foldM in Haskell
The function foldM from Control.Monad (or equivalently foldlM from Data.Foldable) desugars to
foldlm _ z [] = pure zfoldlm f z (x : xs) = f z x >>= \z' -> foldlm f z' xsThe function foldM from Control.Monad (or equivalently foldlM from Data.Foldable) desugars to
foldlm _ z [] = pure zfoldlm f z (x : xs) = f z x >>= \z' -> foldlm f z' xs