X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=hcons.ml;h=eb603855f7a8f32f5694735c1d6a6440d00c1383;hb=f0557f21878be17ddc75b1bc8f4f86da68c8e604;hp=293b90f2e032dc02ae128f6ff383d0f6f40fd00f;hpb=f1da22caf34bc3367984228ace9e7e7aa0760f0a;p=SXSI%2Fxpathcomp.git diff --git a/hcons.ml b/hcons.ml index 293b90f..eb60385 100644 --- a/hcons.ml +++ b/hcons.ml @@ -2,7 +2,7 @@ INCLUDE "utils.ml" module type S = sig type data - type t + type t val make : data -> t val node : t -> data val hash : t -> int @@ -13,7 +13,7 @@ module Make (H : Hashtbl.HashedType) : S with type data = H.t = struct type data = H.t type t = { id : int; - key : int; (* hash *) + key : int; node : data; } @@ -23,12 +23,12 @@ struct let gen_uid = let id = ref ~-1 in fun () -> incr id;!id - let equal t1 t2 = t1 == t2 || t1.id == t2.id + let equal = (==) module WH = Weak.Make( struct type _t = t type t = _t let hash = hash - let equal a b = H.equal a.node b.node + let equal a b = a==b || H.equal a.node b.node end) let pool = WH.create MED_H_SIZE let make x =