Module Ltac2_plugin.Tac2quote

Syntactic quoting of expressions.

Contrarily to Tac2ffi, which lives on the semantic level, this module manipulates pure syntax of Ltac2. Its main purpose is to write notations.

val of_int : int CAst.t -> Tac2expr.raw_tacexpr
val of_pair : ('a -> Tac2expr.raw_tacexpr) -> ('b -> Tac2expr.raw_tacexpr) -> ('a * 'b) CAst.t -> Tac2expr.raw_tacexpr
val of_tuple : ?loc:Loc.t -> Tac2expr.raw_tacexpr list -> Tac2expr.raw_tacexpr
val of_constr : ?delimiters:Names.Id.t list -> Constrexpr.constr_expr -> Tac2expr.raw_tacexpr
val of_open_constr : ?delimiters:Names.Id.t list -> Constrexpr.constr_expr -> Tac2expr.raw_tacexpr
val of_preterm : ?delimiters:Names.Id.t list -> Constrexpr.constr_expr -> Tac2expr.raw_tacexpr
val of_list : ?loc:Loc.t -> ('a -> Tac2expr.raw_tacexpr) -> 'a list -> Tac2expr.raw_tacexpr
val array_literal : ?loc:Loc.t -> Tac2expr.raw_tacexpr list -> Tac2expr.raw_tacexpr
val of_intro_patterns : Tac2qexpr.intro_pattern list CAst.t -> Tac2expr.raw_tacexpr

id ↦ 'Control.hyp @id'

val of_exact_hyp : ?loc:Loc.t -> Names.Id.t CAst.t -> Tac2expr.raw_tacexpr

id ↦ 'Control.refine (fun () => Control.hyp @id')

val of_exact_var : ?loc:Loc.t -> Names.Id.t CAst.t -> Tac2expr.raw_tacexpr

id ↦ 'Control.refine (fun () => Control.hyp @id')

Generic arguments
val wit_pattern : (Constrexpr.constr_expr[ `uninstantiated ] Pattern.constr_pattern_r) Tac2dyn.Arg.tag
val wit_preterm : (Constrexpr.constr_exprNames.Id.Set.t * Glob_term.glob_constr) Tac2dyn.Arg.tag