X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;ds=sidebyside;f=hcons.mli;h=888531e692dc16bf404cbc20d8a7f5bd7c556c81;hb=0c2338bfcdae0df1c68112a10247dc4e68a483ff;hp=ceb33c2b1ab6294a53bb6518c639324b672b4243;hpb=f1da22caf34bc3367984228ace9e7e7aa0760f0a;p=SXSI%2Fxpathcomp.git diff --git a/hcons.mli b/hcons.mli index ceb33c2..888531e 100644 --- a/hcons.mli +++ b/hcons.mli @@ -1,21 +1,31 @@ +module type SA = + sig + type data + type t + val make : data -> t + val node : t -> data + val hash : t -> int + val uid : t -> Uid.t + val equal : t -> t -> bool + + + val with_id : Uid.t -> t + end + module type S = sig type data - type t + type t = private { id : Uid.t; + key : int; + node : data } val make : data -> t val node : t -> data val hash : t -> int - val uid : t -> int + val uid : t -> Uid.t val equal : t -> t -> bool + + + val with_id : Uid.t -> t end -module Make : - functor (H : Hashtbl.HashedType) -> -sig - type data = H.t - type t - val make : data -> t - val node : t -> data - val hash : t -> int - val uid : t -> int - val equal : t -> t -> bool -end + +module Make (H : Hashtbl.HashedType) : S with type data = H.t