proposition: Lemma insert_Ret a s : exists m, insert a s = Ret (a :: s) [~] m :> M _.
proof: Proof. elim: s => [|h t [m ih]] /=; last by eexists; rewrite insertE; reflexivity. by rewrite insertE; exists fail; rewrite altmfail. Qed.
imports: mathcomp(all_ssreflect) imonae_lib HB(structures) ihierarchy imonad_lib Equations(Equations)