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