(* end semReturnSize *)
Instance unsizedReturn {A} (x : A) : Unsized (returnGen x).

Lemma semBindSize_subset_compat {A B : Type} (g g' : G A) (f f' : A -> G B) :
(forall s, semGenSize g s \subset semGenSize g' s) ->
(forall x s, semGenSize (f x) s \subset semGenSize (f' x) s) ->
(forall s, semGenSize (bindGen g f) s \subset semGenSize (bindGen g' f') s).