let list_to_string (f : 'a->string) (separator : string) : 'a list -> string = let rec list_to_string_rec = function [] -> "" | [h] -> f h | h::t -> (f h)^separator^(list_to_string_rec t) in list_to_string_rec