package lsp
Source file id.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47module type S = sig type t module Set : Set.S with type elt = t module Map : Map_intf.S with type key = t val gen : unit -> t val peek : unit -> t val to_int : t -> int val compare : t -> t -> Ordering.t val equal : t -> t -> bool val hash : t -> int val to_dyn : t -> Dyn.t end module Make () : S = struct module Set = Int.Set module Map = Int.Map type t = int let next = ref 0 let gen () = let v = !next in next := v + 1; v let peek () = !next let to_int x = x let compare = Int.compare let equal = Int.equal let hash (t : t) = t let to_dyn t = Dyn.Int t end