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