functor (M : S->
  sig
    type stringable = M.sexpable
    val of_string : string -> stringable
    val to_string : stringable -> string
  end