X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2Fhcons.ml;h=cc7327aeec4e33c87020713481acbfd2a031dd7e;hp=a820e0845efa5c9c85889d9bb499d3b2b76aaf58;hb=974dacbf4f625bfd8ea83db69d6b346050141fea;hpb=f5d90fb688bc1a9b29815fc33c369856e6c51a67 diff --git a/src/hcons.ml b/src/hcons.ml index a820e08..cc7327a 100644 --- a/src/hcons.ml +++ b/src/hcons.ml @@ -13,14 +13,18 @@ (* *) (***********************************************************************) -include Sigs.HCONS +(* + Time-stamp: +*) + +include Hcons_sig module type TableBuilder = functor - (H : Sigs.AUX.HashedType) -> - Sigs.AUX.HashSet with type data = H.t + (H : Common_sig.HashedType) -> + Common_sig.HashSet with type data = H.t -module Builder (TB : TableBuilder) (H : Sigs.AUX.HashedType) = +module Builder (TB : TableBuilder) (H : Common_sig.HashedType) = struct type data = H.t type t = { id : Uid.t; @@ -44,9 +48,10 @@ struct let init () = T.clear pool; uid_make := Uid.make_maker () + let dummy x = { id = Uid.dummy; hash = H.hash x; node = x } let make x = - let cell = { id = Uid.dummy; hash = H.hash x; node = x } in + let cell = dummy x in try T.find pool cell with @@ -56,7 +61,7 @@ struct cell end -module Make = Builder (Utils.HashSet) +module Make = Builder (Misc.HashSet) module Weak = Builder (Weak.Make) module PosInt = @@ -72,7 +77,7 @@ struct let hash v = v let uid v = Uid.of_int v - + let dummy _ = ~-1 let equal x y = x == y let init () = ()