Fixpoint lm_to_ml {A:Type} (lm:list (monad A)) : monad (list A):=
match lm with
| [] => Mreturn []
| m::ms => m >>::(lm_to_ml ms)
end.

Lemma lm_to_ml_ind {A:Type} (P:A→Prop) (lm:list (monad A)):
(∀ ma, ma ∈ lm → ∀ st, P (snd (ma st))) →
∀ st, Forall P (snd ((lm_to_ml lm) st)).