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 in_lm_to_ml {A:Type} (a:A) mal st:
a ∈ snd ((lm_to_ml mal) st) → ∃ ma st', ma ∈ mal ∧ a = snd (ma st').