Module Notation_ops

Utilities about notation_constr
val eq_notation_constr : (Names.Id.t list * Names.Id.t list) -> Notation_term.notation_constr -> Notation_term.notation_constr -> bool
val subst_interpretation : Mod_subst.substitution -> Notation_term.interpretation -> Notation_term.interpretation
val ldots_var : Names.Id.t
Translation back and forth between glob_constr and notation_constr
val notation_constr_of_glob_constr : Notation_term.notation_interp_env -> Glob_term.glob_constr -> Notation_term.notation_constr * Notation_term.reversibility_status
type 'a binder_status_fun = {
no : 'a -> 'a;
restart_prod : 'a -> 'a;
restart_lambda : 'a -> 'a;
switch_prod : 'a -> 'a;
switch_lambda : 'a -> 'a;
slide : 'a -> 'a;
}
val apply_cases_pattern : ?⁠loc:Loc.t -> ((Names.Id.t list * Glob_term.cases_pattern_disjunction) * Names.Id.t) -> Glob_term.glob_constr -> Glob_term.glob_constr
val glob_constr_of_notation_constr_with_binders : ?⁠loc:Loc.t -> ('a -> Names.Name.t -> 'a * ((Names.Id.t list * Glob_term.cases_pattern_disjunction) * Names.Id.t) option * Names.Name.t) -> ('a -> Notation_term.notation_constr -> Glob_term.glob_constr) -> ?⁠h:'a binder_status_fun -> 'a -> Notation_term.notation_constr -> Glob_term.glob_constr
val glob_constr_of_notation_constr : ?⁠loc:Loc.t -> Notation_term.notation_constr -> Glob_term.glob_constr
Matching a notation pattern against a glob_constr
exception No_match
val print_parentheses : bool Stdlib.ref
val match_notation_constr : bool -> 'a Glob_term.glob_constr_g -> Notation_term.interpretation -> ('a Glob_term.glob_constr_g * Notation_term.extended_subscopes) list * ('a Glob_term.glob_constr_g list * Notation_term.extended_subscopes) list * ('a Glob_term.cases_pattern_disjunction_g * Notation_term.extended_subscopes) list * ('a Glob_term.extended_glob_local_binder_g list * Notation_term.extended_subscopes) list
val match_notation_constr_cases_pattern : 'a Glob_term.cases_pattern_g -> Notation_term.interpretation -> (('a Glob_term.cases_pattern_g * Notation_term.extended_subscopes) list * ('a Glob_term.cases_pattern_g list * Notation_term.extended_subscopes) list) * (bool * int * 'a Glob_term.cases_pattern_g list)
val match_notation_constr_ind_pattern : Names.inductive -> 'a Glob_term.cases_pattern_g list -> Notation_term.interpretation -> (('a Glob_term.cases_pattern_g * Notation_term.extended_subscopes) list * ('a Glob_term.cases_pattern_g list * Notation_term.extended_subscopes) list) * (bool * int * 'a Glob_term.cases_pattern_g list)
Matching a notation pattern against a glob_constr