proposition: Lemma bind_uncurry (f : A -> M B) (g : A -> B -> M C) x : (f x >>= fun y => Ret (x, y)) >>= (fun xy => g xy.1 xy.2) = (f x >>= g x).
proof: Proof. by rewrite bindA; under eq_bind do rewrite bindretf. Qed.
imports: ssrmatching mathcomp(all_ssreflect) monae_lib HB(structures) hierarchy