fact: Definition mmatch''@{a p+} {A:Type@{a}} {P: A -> Type@{p}} (E : Exception) (y : A) (failure : t (P y)) := Eval lazy beta zeta iota delta [open_branch] in fix mmatch'' (ps : mlist@{Set} (Mbranch A P)) : t (P y) := match ps with | [m:] => failure | p :m: ps' => mtry' (open_branch E p y) (fun e => is_head (B:=fun e => P y) (m := mBase) UniMatchNoRed E e (mmatch'' ps') (raise e)) end.
imports: Strings.String NArith.BinNat Mtac2(Logic Datatypes Logic List Utils MTele Pattern Specif)