+
+(* hash conses an uri *)
+let add_to_uriset ?suri uri =
+ let lookup_suri suri =
+ try
+ SetOfStrings.find suri !set_of_uri
+ with Not_found -> assert false
+ in
+ let suri =
+ match suri with
+ | None -> string_of_uri uri
+ | Some suri -> suri
+ in
+ if not(SetOfStrings.mem suri !set_of_uri) then
+ set_of_uri := SetOfStrings.add suri uri !set_of_uri;
+ lookup_suri suri
+
+