End SepReturn.
Section SepBind.
Variables (A B : Type) (s1 : spec A) (s2 : A -> spec B).
Variables (e1 : STsep s1) (e2 : forall x, STsep (s2 x)).
Definition bind_s : spec B :=
(Model.bind_pre [s1] (fr \o s2), Model.bind_post [s1] (fr \o s2)).

Lemma bindP : Model.conseq (Model.bind_s [s1] (fr \o s2)) [bind_s].
Definition bind : STsep bind_s := Model.Do (Model.bind e1 e2) bindP.