Geninterntype ntnvar_status = {mutable ntnvar_used : bool list;mutable ntnvar_used_as_binder : bool;mutable ntnvar_scopes : Notation_term.subscopes option;mutable ntnvar_binding_ids : Notation_term.notation_var_binders option;ntnvar_typ : Notation_term.notation_var_internalization_type;}type intern_variable_status = {intern_ids : Names.Id.Set.t;intern_univs : UnivNames.universe_binders;notation_variable_status : ntnvar_status Names.Id.Map.t;}type glob_sign = {ltacvars : Names.Id.Set.t;genv : Environ.env;extra : Store.t;intern_sign : intern_variable_status;strict_check : bool;}val empty_glob_sign :
strict:bool ->
Environ.env ->
UnivNames.universe_binders ->
glob_signtype glob_constr_and_expr =
Glob_term.glob_constr * Constrexpr.constr_expr optionIn globalize tactics, we need to keep the initial constr_expr to recompute in the environment by the effective calls to Intro, Inversion, etc The constr_expr field is None in TacDef though
type glob_constr_pattern_and_expr =
Names.Id.Set.t * glob_constr_and_expr * Pattern.uninstantiated_patternThe type of functions used for internalizing generic arguments.
val intern : ('raw, 'glb, 'top) Genarg.genarg_type -> ('raw, 'glb) intern_funval generic_intern :
(Genarg.raw_generic_argument, Genarg.glob_generic_argument) intern_funval generic_intern_constr : (GenConstr.raw, GenConstr.glb) constr_intern_funval generic_intern_pat : (GenConstr.raw, GenConstr.glb) constr_intern_funtype 'glb ntn_subst_fun =
ntnvar_status Names.Id.Map.t ->
(Names.Id.t -> Glob_term.glob_constr option) ->
'glb ->
'glbval substitute_notation : (_, 'glb) GenConstr.tag -> 'glb ntn_subst_funval generic_substitute_notation : GenConstr.glb ntn_subst_funRegistering functions
val register_intern0 :
('raw, 'glb, 'top) Genarg.genarg_type ->
('raw, 'glb) intern_fun ->
unitval register_intern_constr :
('raw, 'glb) GenConstr.tag ->
('raw, 'glb) constr_intern_fun ->
unitval register_intern_pat :
('raw, 'glb) GenConstr.tag ->
('raw, 'glb) constr_intern_fun ->
unitval register_ntn_subst0 : (_, 'glb) GenConstr.tag -> 'glb ntn_subst_fun -> unitval with_used_ntnvars :
ntnvar_status Names.Id.Map.t ->
(unit -> 'a) ->
Names.Id.Set.t * 'aUsed to compute the set of used notation variables during internalization.
val create_uniform_genconstr : string -> ('a, 'a) GenConstr.tagRegisters trivial intern and subst functions. Other registers should be done by the caller.