sig
  type ('a, 'b) t
  val empty : ('a, 'b) Package.Map.t
  val is_empty : ('a, 'b) Package.Map.t -> bool
  val add :
    'Package.Name.t ->
    '-> ('a, 'b) Package.Map.t -> ('a, 'b) Package.Map.t
  val find : 'Package.Name.t -> ('a, 'b) Package.Map.t -> 'b
  val iter :
    ('Package.Name.t -> '-> unit) -> ('a, 'b) Package.Map.t -> unit
  val mapi :
    ('Package.Name.t -> '-> 'c) ->
    ('a, 'b) Package.Map.t -> ('a, 'c) Package.Map.t
  val fold :
    ('Package.Name.t -> '-> '-> 'c) ->
    ('a, 'b) Package.Map.t -> '-> 'c
  val bindings : ('a, 'b) Package.Map.t -> ('Package.Name.t * 'b) list
  val update_default :
    '->
    ('-> 'b) ->
    'Package.Name.t -> ('a, 'b) Package.Map.t -> ('a, 'b) Package.Map.t
  val mem : 'Package.Name.t -> ('a, 'b) Package.Map.t -> bool
end