Remove the timestamp header in source files. This information is
[tatoo.git] / src / hcons.mli
index af5618e..3e80a03 100644 (file)
 
 (** Implementation of generic hashconsing. *)
 
-module type Abstract =
-  sig
-    type data
-      (** The type of the data to be hashconsed *)
-
-    type t
-      (** The type of hashconsed data *)
-
-    val make : data -> t
-      (** [make v] internalizes the value [v], making it an hashconsed
-          value.
-      *)
-
-    val node : t -> data
-      (** [node h] extract the original data from its hashconsed value
-      *)
-
-    val hash : t -> int
-      (** [hash h] returns a hash of [h], such that for every [h1] and
-          [h2], [equal h1 h2] implies [hash h1 = hash h2].
-      *)
-
-    val uid : t -> Uid.t
-      (** [uid h] returns a unique identifier *)
-    val equal : t -> t -> bool
-      (** Equality between hashconsed values. Equivalent to [==] *)
-
-    val init : unit -> unit
-      (** Initializes the internal storage. Any previously hashconsed
-          element is discarded. *)
-
-  end
-(** Abstract signature of a module implementing an hashconsed datatype *)
-
-module type S =
-sig
-  type data
-  type t = private { id   : Uid.t;
-                     key  : int;
-                     node : data }
-  include Abstract with type data := data and type t := t
-end
+include module type of Hcons_sig
 
 (** Output signature of the functor {!Hcons.Make} *)
 
-module Make (H : Sigs.HashedType) : S with type data = H.t
+module Make (H : Common_sig.HashedType) : S with type data = H.t
 (** Functor building an implementation of hashconsed values for a given
-    implementation of {!Sigs.HashedType}. Hashconsed values are
+    implementation of {!Common_sig.HashedType}. Hashconsed values are
     persistent: the are kept in memory even if no external reference
     remain. Calling [init()] explicitely will reclaim the space.
 *)
 
-module Weak (H : Sigs.HashedType) : S with type data = H.t
+module Weak (H : Common_sig.HashedType) : S with type data = H.t
 (** Functor building an implementation of hashconsed values for a given
-    implementation of {!Sigs.HashedType}. Hashconsed values have a
+    implementation of {!Common_sig.HashedType}. Hashconsed values have a
     weak semantics: they may be reclaimed as soon as no external
     reference to them exists. The space may still be reclaimed
     explicitely by calling [init].