(* type t val of_string : string -> t val cat : t -> t -> t val to_string : t -> string *)