pool.mli 837 Bytes
Newer Older
1 2
module type T = 
sig
3
  include Custom.T
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
    (* Hashtbl.hash'able and Pervasives.compare'able type;
       typically, t is an integer *)
  type value
    
  val clear: unit -> unit  
    (* Previously allocated symbols are no longer valid; no check
       is provided. Registered values can be released by the GC only after
       a call to clear. *)

  val mk: value -> t
  val dummy_min: t
  val dummy_max: t
    (* Two dummy symbols, not associated with any registered value;
       resp. smallest and largest than any other symbol *)

  val value: t -> value
end

22
module Make(H : Custom.T) : T with type value = H.t and type t = int
23

24
module NoHash(H : Custom.T) : T with type value = H.t and type t = int
25 26 27 28 29 30 31 32 33 34


module Weak(H : Custom.T) : sig
  include Custom.T
  type value = H.t
  val mk: value -> t
  val value: t -> value
end