fact: Definition retryBody {A : Type} (retry : nat -> G (option A) -> G (option A)) (n : nat) (g : G (option A)) : G (option A) := bindGen g (fun x => match x, n with | Some a, _ => returnGen (Some a) | None, O => returnGen None | None, S n' => retry n' g end).
imports: Coq(String List ZArith Lia) mathcomp.ssreflect.ssreflect mathcomp(ssrfun ssrbool ssrnat eqtype seq) QuickChick(RandomQC RoseTrees Sets Tactics Producer)