fact: Fixpoint pickDrop {A : Type} (xs : list (E (option A))) n : E (option A) * list (E (option A)) := match xs with | nil => (ret None, nil) | x :: xs => match n with | O => (x, xs) | S n' => let '(x', xs') := pickDrop xs n' in (x', x::xs') end end.
imports: ZArith List mathcomp.ssreflect.ssreflect mathcomp(ssrfun ssrbool ssrnat) Numbers.BinNums Classes.RelationClasses ExtLib.Structures(Functor Applicative) QuickChick(Sets Tactics Producer LazyList RandomQC)