Ltac2_plugin.Tac2synmodule Tac2Scope : module type of Names.KerNamemodule ScopeTab : Nametab.NAMETAB with type elt = Tac2Scope.tCommon APIs on name tables.
val declare_scope : Names.Id.t -> unitval open_scope : Libobject.locality -> Libnames.qualid -> unitval close_scope : Libobject.locality -> Libnames.qualid -> unitval default_scope : unit -> Tac2Scope.tval current_scopes : unit -> Tac2Scope.t listmodule Tac2Custom : module type of Names.KerNamemodule CustomTab : Nametab.NAMETAB with type elt = Tac2Custom.tCommon APIs on name tables.
val find_custom_entry : Tac2Custom.t -> Tac2expr.raw_tacexpr Procq.Entry.tNB: Do not save the result of this function across summary resets, the Entry.t gets regenerated on (parsing) summary unfreeze.
module Syntax : sig ... endtype syntax_class_rule = | SyntaxRule : 'a Syntax.t * ('a -> Tac2expr.raw_tacexpr) -> syntax_class_ruleval no_used_levels : used_levelsval union_used_levels : used_levels -> used_levels -> used_levelstype 'glb syntax_class_decl = {intern_synclass : Tac2expr.sexpr list -> used_levels * 'glb;interp_synclass : 'glb -> syntax_class_rule;}val register_syntax_class : Names.Id.t -> _ syntax_class_decl -> unitCreate a new syntax class with the provided name
val intern_syntax_class : Tac2expr.sexpr -> used_levels * syntax_classUse this to internalize the syntax class arguments for interpretation functions
val interp_syntax_class : syntax_class -> syntax_class_ruleUse this to interpret the syntax class arguments for interpretation functions
type notation_data = | UntypedNota of Tac2expr.raw_tacexpr| TypedNota of {nota_prms : int;nota_argtys : int Tac2expr.glb_typexpr Names.Id.Map.t;nota_ty : int Tac2expr.glb_typexpr;nota_body : Tac2expr.glb_tacexpr;}val interp_notation :
?loc:Loc.t ->
Tac2Scope.t list ->
Tac2expr.tacsyn ->
notation_data * (Names.lname * Tac2expr.raw_tacexpr) listval ltac2_notation_cat : Libobject.categorytype notation_target = {target_entry : Libnames.qualid option;target_level : int option;target_scope : Libnames.qualid option;}val pr_register_notation :
Tac2expr.sexpr list ->
notation_target ->
Tac2expr.raw_tacexpr ->
Pp.tval register_notation :
Attributes.vernac_flags ->
Tac2expr.sexpr list ->
notation_target ->
'body ->
(Libnames.qualid option, 'body) notation_interpretationDoes not handle the deprecated abbreviation syntax
val intern_notation_interpretation :
(Names.Id.Set.t -> 'raw -> 'glb) ->
(Libnames.qualid option, 'raw) notation_interpretation ->
(Tac2Scope.t, 'glb) notation_interpretationval register_notation_interpretation :
(Tac2Scope.t, notation_data) notation_interpretation ->
unitval register_custom_entry : Names.lident -> unitmodule Internal : sig ... end