let set_sorts ss i =
List.fold_left set_sort i ss
-let get_sort err f h =
+let string_of_sort err f h =
try f (H.find sort h) with Not_found -> err ()
+let sort_of_string err f s =
+ let map h n = function
+ | None when n = s -> Some h
+ | xh -> xh
+ in
+ match H.fold map sort None with
+ | None -> err ()
+ | Some h -> f h
+
let string_of_graph (s, _) = s
let apply (_, g) h = (g h)