aboutsummaryrefslogtreecommitdiff
path: root/lib/stateid.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/stateid.ml')
-rw-r--r--lib/stateid.ml47
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/stateid.ml b/lib/stateid.ml
new file mode 100644
index 0000000000..8f45f3605d
--- /dev/null
+++ b/lib/stateid.ml
@@ -0,0 +1,47 @@
+(************************************************************************)
+(* * The Coq Proof Assistant / The Coq Development Team *)
+(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)
+(* <O___,, * (see CREDITS file for the list of authors) *)
+(* \VV/ **************************************************************)
+(* // * This file is distributed under the terms of the *)
+(* * GNU Lesser General Public License Version 2.1 *)
+(* * (see LICENSE file for the text of the license) *)
+(************************************************************************)
+
+type t = int
+let initial = 1
+let dummy = 0
+let fresh =
+ let cur = ref initial in
+ fun () -> incr cur; !cur
+let to_string = string_of_int
+let of_int id = id
+let to_int id = id
+let newer_than id1 id2 = id1 > id2
+
+let state_id_info : (t * t) Exninfo.t = Exninfo.make ()
+let add exn ~valid id =
+ Exninfo.add exn state_id_info (valid, id)
+let get exn = Exninfo.get exn state_id_info
+
+let equal = Int.equal
+let compare = Int.compare
+
+let print id = Pp.int id
+
+module Self = struct
+ type t = int
+ let compare = compare
+end
+
+module Set = Set.Make(Self)
+
+type ('a,'b) request = {
+ exn_info : t * t;
+ stop : t;
+ document : 'b;
+ loc : Loc.t option;
+ uuid : 'a;
+ name : string
+}
+