Definition GOpt A := G (option A).
Global Instance Monad_GOpt : Monad GOpt := {
ret A x := returnGen (Some x);
bind A B := bindGenOpt;
}.

Lemma semSizeOpt_retry {A} (n : nat) (g : G (option A)) (s : nat) :
semGenSizeOpt (retry n g) s <--> semGenSizeOpt g s.