sig type ('a, 'b) t val create : init:'b -> f:('b -> 'a -> 'b) -> string -> ('b -> Std_internal.Sexp.t) -> ('a, 'b) Univ_map.With_fold.Key.t end