Ltac2_plugin.Tac2synSourcemodule Tac2Scope : module type of Names.KerNamemodule ScopeTab : Nametab.NAMETAB with type elt = Tac2Scope.tCommon APIs on name tables.
module Tac2Custom : module type of Names.KerNamemodule CustomTab : Nametab.NAMETAB with type elt = Tac2Custom.tCommon APIs on name tables.
NB: Do not save the result of this function across summary resets, the Entry.t gets regenerated on (parsing) summary unfreeze.
type syntax_class_rule = | SyntaxRule : 'a Syntax.t * ('a -> Tac2expr.raw_tacexpr) -> syntax_class_ruletype 'glb syntax_class_decl = {intern_synclass : Tac2expr.sexpr list -> used_levels * 'glb;interp_synclass : 'glb -> syntax_class_rule;}Create a new syntax class with the provided name
Use this to internalize the syntax class arguments for interpretation functions
Use 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) listtype 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 ->
unit