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 strictly_finer_notation_constr : (Names.Id.t list * Names.Id.t list) -> Notation_term.notation_constr -> Notation_term.notation_constr -> bool

Tell if t1 is a strict refinement of t2 (this is a partial order and returning false does not mean that t2 is finer than t1)

val strictly_finer_interpretation_than : Notation_term.interpretation -> Notation_term.interpretation -> bool

Tell if a notation interpretation is strictly included in another one

val finer_interpretation_than : Notation_term.interpretation -> Notation_term.interpretation -> bool

Tell if a notation interpretation is included in another one

Substitution of kernel names in interpretation data

Name of the special identifier used to encode recursive notations

val ldots_var : Names.Id.t
Translation back and forth between glob_constr and notation_constr

Translate a glob_constr into a notation given the list of variables bound by the notation; also interpret recursive patterns

Re-interpret a notation as a glob_constr, taking care of binders

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 glob_constr_of_notation_constr : ?loc:Loc.t -> Notation_term.notation_constr -> Glob_term.glob_constr
Matching a notation pattern against a glob_constr

match_notation_constr matches a glob_constr against a notation interpretation; raise No_match if the matching fails

exception No_match
val print_parentheses : bool Stdlib.ref
val match_notation_constr : print_univ:bool -> 'a Glob_term.glob_constr_g -> vars:Names.Id.Set.t -> Notation_term.interpretation -> ((Names.Id.Set.t * 'a Glob_term.glob_constr_g) * Notation_term.extended_subscopes) list * ((Names.Id.Set.t * 'a Glob_term.glob_constr_g list) * Notation_term.extended_subscopes) list * ((Names.Id.Set.t * 'a Glob_term.cases_pattern_disjunction_g) * Notation_term.extended_subscopes) list * ((Names.Id.Set.t * 'a Glob_term.extended_glob_local_binder_g list) * Notation_term.extended_subscopes) list
Matching a notation pattern against a glob_constr