Ltac2_plugin.Tac2envSourceLtac2 global environment
type global_data = {gdata_expr : Tac2expr.glb_tacexpr;gdata_type : Tac2expr.type_scheme;gdata_mutable : bool;gdata_deprecation : Deprecation.t option;}type constructor_data = {cdata_prms : int;Type parameters
*)cdata_type : Tac2expr.type_constant;Inductive definition to which the constructor pertains
*)cdata_args : int Tac2expr.glb_typexpr list;Types of the constructor arguments
*)cdata_indx : int option;Index of the constructor in the ADT. Numbering is duplicated between argumentless and argument-using constructors, e.g. in type 'a option None and Some have both index 0. This field is empty whenever the constructor is a member of an open type.
}type projection_data = {pdata_prms : int;Type parameters
*)pdata_type : Tac2expr.type_constant;Record definition to which the projection pertains
*)pdata_ptyp : int Tac2expr.glb_typexpr;Type of the projection
*)pdata_mutb : bool;Whether the field is mutable
*)pdata_indx : int;Index of the projection
*)}val define_alias :
?deprecation:Deprecation.t ->
Tac2expr.ltac_constant ->
Tac2expr.raw_tacexpr ->
unitval push_constructor :
Nametab.visibility ->
Libnames.full_path ->
Tac2expr.ltac_constructor ->
unitval push_projection :
Nametab.visibility ->
Libnames.full_path ->
Tac2expr.ltac_projection ->
unitThis state is not part of the summary, contrarily to the ones above. It is intended to be used from ML plugins to register ML-side functions.
type ('a, 'b) ml_object = {ml_intern : 'r. (Tac2expr.raw_tacexpr, Tac2expr.glb_tacexpr, 'r) intern_fun ->
('a, 'b or_glb_tacexpr, 'r) intern_fun;ml_subst : Mod_subst.substitution -> 'b -> 'b;ml_interp : environment -> 'b -> Tac2ffi.valexpr Proofview.tactic;ml_print : Environ.env -> Evd.evar_map -> 'b -> Pp.t;}Path where primitive datatypes are defined in Ltac2 plugin.
Path where Ltac-specific datatypes are defined in Ltac2 plugin.
Path where the Ltac1 legacy FFI is defined.
val wit_ltac2 :
(Names.Id.t CAst.t list * Tac2expr.raw_tacexpr,
Names.Id.t list * Tac2expr.glb_tacexpr,
Util.Empty.t)
Genarg.genarg_typeLtac2 quotations in Ltac1 code
Embedding Ltac2 closures of type Ltac1.t -> Ltac1.t inside Ltac1. There is no relevant data because arguments are passed by conventional names.
val wit_ltac2_constr :
(Tac2expr.raw_tacexpr, Names.Id.Set.t * Tac2expr.glb_tacexpr, Util.Empty.t)
Genarg.genarg_typeLtac2 quotations in Gallina terms
val wit_ltac2_quotation :
(Names.Id.t Loc.located, Names.Id.t, Util.Empty.t) Genarg.genarg_typeLtac2 quotations for variables "$x" in Gallina terms