fact: Definition foldrM {A : Type} {B : Type} (f : B → A → m A) (s : A) (l : list B) : m A := let fix go xs z := match xs with | nil => ret z | cons y ys => go ys z >>= f y end in go l s.
imports: Category.Lib Category.Theory.Category Category.Theory.Functor Category.Theory.Monad Category.Instance.Coq