| 1 |
module type T =
|
| 2 |
sig
|
| 3 |
type t
|
| 4 |
(* Hashtbl.hash'able and Pervasives.compare'able type;
|
| 5 |
typically, t is an integer *)
|
| 6 |
type value
|
| 7 |
|
| 8 |
val clear: unit -> unit
|
| 9 |
(* Previously allocated symbols are no longer valid; no check
|
| 10 |
is provided. Registered values can be released by the GC only after
|
| 11 |
a call to clear. *)
|
| 12 |
|
| 13 |
val mk: value -> t
|
| 14 |
val dummy_min: t
|
| 15 |
val dummy_max: t
|
| 16 |
(* Two dummy symbols, not associated with any registered value;
|
| 17 |
resp. smallest and largest than any other symbol *)
|
| 18 |
|
| 19 |
val value: t -> value
|
| 20 |
|
| 21 |
val compare: t -> t -> int
|
| 22 |
val hash: t -> int
|
| 23 |
val equal: t -> t -> bool
|
| 24 |
end
|
| 25 |
|
| 26 |
module Make(H : Hashtbl.HashedType) : T with type value = H.t
|
| 27 |
|