fact: Fixpoint conjAux (f : Result -> Result) l := match l with | nil => (MkRose (f succeeded) (lazy nil)) | cons res rs => let '(MkRose r _) := res in match ok r with | Some true => (conjAux (fun r' => addStamps' r (addCallbacks' r (f r')) ) rs) | Some false => res | None => let res' := conjAux (fun r' => (addCallbacks' r (f r'))) rs in let '(MkRose r' rs) := res' in match ok r' with | Some true => MkRose (updOk r' None) (lazy nil) | Some false => res' | None => res' end end end.
imports: String List RoseTrees Show State Producer Generators Classes DependentClasses