Ltac2_plugin.Tac2quoteSyntactic 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 constructor : ?loc:Loc.t -> Tac2expr.ltac_constructor -> Tac2expr.raw_tacexpr list -> Tac2expr.raw_tacexprval thunk : Tac2expr.raw_tacexpr -> Tac2expr.raw_tacexprval of_anti : ('a -> Tac2expr.raw_tacexpr) -> 'a Tac2qexpr.or_anti -> Tac2expr.raw_tacexprval of_int : int CAst.t -> Tac2expr.raw_tacexprval of_pair : ('a -> Tac2expr.raw_tacexpr) -> ('b -> Tac2expr.raw_tacexpr) -> ('a * 'b) CAst.t -> Tac2expr.raw_tacexprval of_tuple : ?loc:Loc.t -> Tac2expr.raw_tacexpr list -> Tac2expr.raw_tacexprval of_variable : Names.Id.t CAst.t -> Tac2expr.raw_tacexprval of_ident : Names.Id.t CAst.t -> Tac2expr.raw_tacexprval of_constr : ?delimiters:Names.Id.t list -> Constrexpr.constr_expr -> Tac2expr.raw_tacexprval of_open_constr : ?delimiters:Names.Id.t list -> Constrexpr.constr_expr -> Tac2expr.raw_tacexprval of_preterm : ?delimiters:Names.Id.t list -> Constrexpr.constr_expr -> Tac2expr.raw_tacexprval of_list : ?loc:Loc.t -> ('a -> Tac2expr.raw_tacexpr) -> 'a list -> Tac2expr.raw_tacexprval array_literal : ?loc:Loc.t -> Tac2expr.raw_tacexpr list -> Tac2expr.raw_tacexprval of_bindings : Tac2qexpr.bindings -> Tac2expr.raw_tacexprval of_intro_pattern : Tac2qexpr.intro_pattern -> Tac2expr.raw_tacexprval of_intro_patterns : Tac2qexpr.intro_pattern list CAst.t -> Tac2expr.raw_tacexprval of_clause : Tac2qexpr.clause -> Tac2expr.raw_tacexprval of_destruction_arg : Tac2qexpr.destruction_arg -> Tac2expr.raw_tacexprval of_induction_clause : Tac2qexpr.induction_clause -> Tac2expr.raw_tacexprval of_conversion : Tac2qexpr.conversion -> Tac2expr.raw_tacexprval of_orient : Tac2qexpr.orientation -> Tac2expr.raw_tacexprval of_rewriting : Tac2qexpr.rewriting -> Tac2expr.raw_tacexprval of_occurrences : Tac2qexpr.occurrences -> Tac2expr.raw_tacexprval of_hintdb : Tac2qexpr.hintdb -> Tac2expr.raw_tacexprval of_move_location : Tac2qexpr.move_location -> Tac2expr.raw_tacexprval of_reference : Tac2qexpr.reference Tac2qexpr.or_anti -> Tac2expr.raw_tacexprval of_hyp : ?loc:Loc.t -> Names.Id.t CAst.t -> Tac2expr.raw_tacexprid ↦ 'Control.hyp @id'
val of_exact_hyp : ?loc:Loc.t -> Names.Id.t CAst.t -> Tac2expr.raw_tacexprid ↦ 'Control.refine (fun () => Control.hyp @id')
val of_exact_var : ?loc:Loc.t -> Names.Id.t CAst.t -> Tac2expr.raw_tacexprid ↦ 'Control.refine (fun () => Control.hyp @id')
val of_dispatch : Tac2qexpr.dispatch -> Tac2expr.raw_tacexprval of_strategy_flag : Tac2qexpr.strategy_flag -> Tac2expr.raw_tacexprval of_pose : Tac2qexpr.pose -> Tac2expr.raw_tacexprval of_assertion : Tac2qexpr.assertion -> Tac2expr.raw_tacexprval of_constr_matching : Tac2qexpr.constr_matching -> Tac2expr.raw_tacexprval of_goal_matching : Tac2qexpr.goal_matching -> Tac2expr.raw_tacexprval of_format : Names.lstring -> Tac2expr.raw_tacexprval wit_pattern : (Constrexpr.constr_expr, [ `uninstantiated ] Pattern.constr_pattern_r) Tac2dyn.Arg.tagval wit_ident : (Names.Id.t, Names.Id.t) Tac2dyn.Arg.tagval wit_reference : (Tac2qexpr.reference, Names.GlobRef.t) Tac2dyn.Arg.tagval wit_constr : (Constrexpr.constr_expr, Glob_term.glob_constr) Tac2dyn.Arg.tagval wit_open_constr : (Constrexpr.constr_expr, Glob_term.glob_constr) Tac2dyn.Arg.tagval wit_preterm : (Constrexpr.constr_expr, Names.Id.Set.t * Glob_term.glob_constr) Tac2dyn.Arg.tag