functor (S : S->
  functor
    (M : sig
           type t
           val to_sexpable : Sexpable.t -> Sexpable.S.t
           val of_sexpable : Sexpable.S.t -> Sexpable.t
         end->
    sig
      val t_of_sexp : Sexplib.Sexp.t -> M.t
      val sexp_of_t : M.t -> Sexplib.Sexp.t
    end