Module Notation_term
type notation_constr=
type scope_name= stringtype tmp_scope_name= scope_nametype subscopes= tmp_scope_name option * scope_name listtype extended_subscopes= Constrexpr.notation_entry_level * subscopes
type constr_as_binder_kind=|AsIdent|AsName|AsNameOrPattern|AsStrictPatterntype notation_binder_source=|NtnParsedAsPattern of bool|NtnParsedAsIdent|NtnParsedAsName|NtnBinderParsedAsConstr of constr_as_binder_kind|NtnParsedAsBindertype notation_var_instance_type=|NtnTypeConstr|NtnTypeBinder of notation_binder_source|NtnTypeConstrList|NtnTypeBinderListtype notation_var_internalization_type=|NtnInternTypeAny of scope_name option|NtnInternTypeOnlyBinderType of variables when interpreting a constr_expr as a notation_constr: in a recursive pattern x..y, both x and y carry the individual type of each element of the list x..y
type interpretation= (Names.Id.t * (extended_subscopes * notation_var_instance_type)) list * notation_constrThis characterizes to what a notation is interpreted to
type reversibility_status=|APrioriReversible|HasLtac|NonInjective of Names.Id.t listtype notation_interp_env={ninterp_var_type : notation_var_internalization_type Names.Id.Map.t;ninterp_rec_vars : Names.Id.t Names.Id.Map.t;}