(* *)
(***********************************************************************)
-(*
- Time-stamp: <Last modified on 2013-01-30 19:07:15 CET by Kim Nguyen>
-*)
-
open Format
+include Hcons.PosInt
-type t = int
-let make =
+let next =
let id = ref ~-1 in
- fun () -> incr id; !id
-
-let compare = (-)
-
-let equal = (==)
-
-external hash : t -> int = "%identity"
-
-let print fmt x = fprintf fmt "q%a" Pretty.pp_subscript x
+ fun () -> incr id; make !id
-let dump fmt x = print fmt x
+let compare (a : t) (b : t) = (a :> int) - (b :> int)
-let check x =
- if x < 0 then failwith (Printf.sprintf "State: Assertion %i < 0 failed" x)
+let print fmt (x : t) = fprintf fmt "q%a" Pretty.pp_subscript (x :> int)
-let dummy = max_int
+let dummy_state = make max_int