uri1 == uri2
;;
+
let string_of_uri uri =
match uri.(Array.length uri - 1) with
| "" ->
| _ ->
String.concat "#"
[ uri.(Array.length uri - 3); uri.(Array.length uri - 1) ]
+
+
let name_of_uri uri = uri.(Array.length uri - 2);;
let buri_of_uri uri = uri.(Array.length uri - 4);;
let depth_of_uri uri = Array.length uri - 3;;
| [t] -> str ^ xp t ^ ")"
| t :: c :: _ -> str ^ xp t ^ "/" ^ string_of_int c ^ ")"
+let compare u1 u2 =
+ let su1 = string_of_uri u1 in
+ let su2 = string_of_uri u2 in
+ Pervasives.compare su1 su2
+
+module OrderedUri =
+struct
+ type t = uri
+ let compare = compare (* the one above, not Pervasives.compare *)
+end
+
+module UriSet = Set.Make (OrderedUri)
+