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