fact: Definition enumerate {A : Type} (gs : list (E (option A))) : E (option A) := MkEnum (fun s => join_list_lazy_list (map (fun g => run g s) gs)).
imports: ZArith List mathcomp.ssreflect.ssreflect mathcomp(ssrfun ssrbool ssrnat) Numbers.BinNums Classes.RelationClasses ExtLib.Structures(Functor Applicative) QuickChick(Sets Tactics Producer LazyList RandomQC)