let add_unique h k v = try let vh = Hashtbl.find h k in if not (Hashtbl.mem vh v) then Hashtbl.add vh v () with Not_found -> begin let vh = Hashtbl.create 17 in Hashtbl.add vh v (); Hashtbl.add h k vh end