functor (M : Core.Std.Sexpable->
  sig
    type t = { value : M.t; extra_fields : string list; }
    val t_of_sexp : Sexplib.Sexp.t -> t
    val sexp_of_t : t -> Sexplib.Sexp.t
  end