aboutsummaryrefslogtreecommitdiff
path: root/user-contrib/Ltac2/tac2dyn.mli
diff options
context:
space:
mode:
authorMaxime Dénès2019-04-25 14:09:42 +0200
committerMaxime Dénès2019-05-07 10:02:56 +0200
commit9779c0bf4945693bfd37b141e2c9f0fea200ba4d (patch)
tree26f563e3ad9562bdeb67efe8ff55be5de7fc55e2 /user-contrib/Ltac2/tac2dyn.mli
parent392d40134c9cd7dee882e31da96369dd09fbbb45 (diff)
Integrate build and documentation of Ltac2
Since Ltac2 cannot be put under the stdlib logical root (some file names would clash), we move it to the `user-contrib` directory, to avoid adding another hardcoded path in `coqinit.ml`, following a suggestion by @ejgallego. Thanks to @Zimmi48 for the thorough documentation review and the numerous suggestions.
Diffstat (limited to 'user-contrib/Ltac2/tac2dyn.mli')
-rw-r--r--user-contrib/Ltac2/tac2dyn.mli34
1 files changed, 34 insertions, 0 deletions
diff --git a/user-contrib/Ltac2/tac2dyn.mli b/user-contrib/Ltac2/tac2dyn.mli
new file mode 100644
index 0000000000..e995296840
--- /dev/null
+++ b/user-contrib/Ltac2/tac2dyn.mli
@@ -0,0 +1,34 @@
+(************************************************************************)
+(* v * The Coq Proof Assistant / The Coq Development Team *)
+(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2016 *)
+(* \VV/ **************************************************************)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(************************************************************************)
+
+(** Dynamic arguments for Ltac2. *)
+
+module Arg :
+sig
+ type ('a, 'b) tag
+ val create : string -> ('a, 'b) tag
+ val eq : ('a1, 'b1) tag -> ('a2, 'b2) tag -> ('a1 * 'b1, 'a2 * 'b2) CSig.eq option
+ val repr : ('a, 'b) tag -> string
+end
+(** Arguments that are part of an AST. *)
+
+module type Param = sig type ('raw, 'glb) t end
+
+module ArgMap (M : Param) :
+sig
+ type _ pack = Pack : ('raw, 'glb) M.t -> ('raw * 'glb) pack
+ type t
+ val empty : t
+ val add : ('a, 'b) Arg.tag -> ('a * 'b) pack -> t -> t
+ val remove : ('a, 'b) Arg.tag -> t -> t
+ val find : ('a, 'b) Arg.tag -> t -> ('a * 'b) pack
+ val mem : ('a, 'b) Arg.tag -> t -> bool
+end
+
+module Val : Dyn.S
+(** Toplevel values *)