- type t = node
- let equal a b =
- match a,b with
- (Finite(s1),Finite(s2))
- | (CoFinite(s1),CoFinite(s2)) -> E.equal s1 s2
- | _ -> false
- let hash = function
- Finite (s) -> HASHINT2(PRIME2,E.hash s)
- | CoFinite(s) -> HASHINT2(PRIME7,E.hash s)
+ type t = node
+ let equal a b =
+ match a,b with
+ (Finite(s1),Finite(s2))
+ | (CoFinite(s1),CoFinite(s2)) -> E.equal s1 s2
+ | _ -> false
+ let hash = function
+ Finite (s) -> (E.hash s) lsl 1
+ | CoFinite(s) -> ((E.hash s) lsl 1 ) lor 1