(*Definition Mmake {A B:Type} (f:A→B) x:= Mreturn (f x).*)
Definition Mupdate (f:nat→nat) := (λ st, ((f st),tt)):monad unit.

(* Specifications: *)
Lemma lt_Mupdate_lt (f:nat→nat): (∀ n, n < f n) → Mlt (Mupdate f).
Lemma mono_Mupdate_mono f: (∀ x y, x ≤ y → f x ≤ f y) → Mmono (Mupdate f).