open Format type t = int let make = 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 let dump fmt x = print fmt x let check x = if x < 0 then failwith (Printf.sprintf "State: Assertion %i < 0 failed" x) let dummy = max_int