functor (T : Core.Std.Sexpable->
  sig
    type t = T.sexpable list
    type data = T.sexpable
    val init : t
    val f : t -> data -> t
    type sexpable = t
    val sexp_of_t : sexpable -> Sexplib.Sexp.t
    val t_of_sexp : Sexplib.Sexp.t -> sexpable
  end