fact: Definition foldrM `{Monad m} {A B : Type} (f : B -> A -> m A) (s : A) (l : list B) : m A := let fix go xs z := match xs with | nil => pure z | cons y ys => go ys z >>= f y end in go l s.
imports: Hask.Control.Applicative