(***********************************************************************)
(*
- Time-stamp: <Last modified on 2013-01-30 19:07:53 CET by Kim Nguyen>
+ Time-stamp: <Last modified on 2013-03-05 01:49:52 CET by Kim Nguyen>
*)
(* Modified by Kim Nguyen *)
INCLUDE "utils.ml"
-include Sigs.PTSET
+include Ptset_sig
module type HConsBuilder =
- functor (H : Sigs.AUX.HashedType) -> Hcons.S with type data = H.t
+ functor (H : Common_sig.HashedType) -> Hcons.S with type data = H.t
module Builder (HCB : HConsBuilder) (H : Hcons.Abstract) :
S with type elt = H.t =
| Branch of int * int * 'a * 'a
module rec Node : Hcons.S with type data = Data.t = HCB(Data)
- and Data : Sigs.AUX.HashedType with type t = Node.t set =
+ and Data : Common_sig.HashedType with type t = Node.t set =
struct
type t = Node.t set
let equal x y =
| Branch(b1,i1,l1,r1), Branch(b2,i2,l2,r2) ->
b1 == b2 && i1 == i2 && (Node.equal l1 l2) && (Node.equal r1 r2)
- | _ -> false
+ | (Empty|Leaf _|Branch _), _ -> false
let hash = function
| Empty -> 0
let singleton k = leaf k
let is_singleton n =
- match Node.node n with Leaf _ -> true
- | _ -> false
+ match Node.node n with
+ | Leaf _ -> true
+ | Branch _ | Empty -> false
let mem (k:elt) n =
let kid = Uid.to_int (H.uid k) in