functor (M : S) ->
  sig val of_string : string -> M.t val to_string : M.t -> string end