let eq (s1 : 'e hashset) (s2 : 'e hashset) : bool = if size s1 == size s2 then (try iter (fun x -> if not (mem s2 x) then raise Exists) s1; true with Exists -> false) else false