sig
  type ('a, 'b) t = { compare : '-> '-> int; map : ('a, 'b) Mappe.t; }
  val is_empty : ('a, 'b) PMappe.t -> bool
  val empty : ('-> '-> int) -> ('a, 'b) PMappe.t
  val add : '-> '-> ('a, 'b) PMappe.t -> ('a, 'b) PMappe.t
  val find : '-> ('a, 'b) PMappe.t -> 'b
  val remove : '-> ('a, 'b) PMappe.t -> ('a, 'b) PMappe.t
  val mem : '-> ('a, 'b) PMappe.t -> bool
  val addmap : ('a, 'b) PMappe.t -> ('a, 'b) PMappe.t -> ('a, 'b) PMappe.t
  val merge :
    ('-> '-> 'a) ->
    ('b, 'a) PMappe.t -> ('b, 'a) PMappe.t -> ('b, 'a) PMappe.t
  val mergei :
    ('-> '-> '-> 'b) ->
    ('a, 'b) PMappe.t -> ('a, 'b) PMappe.t -> ('a, 'b) PMappe.t
  val common :
    ('-> '-> 'c) ->
    ('d, 'a) PMappe.t -> ('d, 'b) PMappe.t -> ('d, 'c) PMappe.t
  val commoni :
    ('-> '-> '-> 'd) ->
    ('a, 'b) PMappe.t -> ('a, 'c) PMappe.t -> ('a, 'd) PMappe.t
  val combine :
    ('-> 'b option -> 'c option -> 'd option) ->
    ('a, 'b) PMappe.t -> ('a, 'c) PMappe.t -> ('a, 'd) PMappe.t
  val interset : ('a, 'b) PMappe.t -> 'PSette.t -> ('a, 'b) PMappe.t
  val diffset : ('a, 'b) PMappe.t -> 'PSette.t -> ('a, 'b) PMappe.t
  val iter : ('-> '-> unit) -> ('a, 'b) PMappe.t -> unit
  val map : ('-> 'b) -> ('c, 'a) PMappe.t -> ('c, 'b) PMappe.t
  val mapi : ('-> '-> 'c) -> ('a, 'b) PMappe.t -> ('a, 'c) PMappe.t
  val fold : ('-> '-> '-> 'c) -> ('a, 'b) PMappe.t -> '-> 'c
  val maptoset : ('a, 'b) PMappe.t -> 'PSette.t
  val mapofset : ('-> 'b) -> 'PSette.t -> ('a, 'b) PMappe.t
  val compare :
    ('-> '-> int) -> ('c, 'a) PMappe.t -> ('c, 'b) PMappe.t -> int
  val comparei :
    ('-> '-> '-> int) -> ('a, 'b) PMappe.t -> ('a, 'c) PMappe.t -> int
  val equal :
    ('-> '-> bool) -> ('c, 'a) PMappe.t -> ('c, 'b) PMappe.t -> bool
  val equali :
    ('-> '-> '-> bool) ->
    ('a, 'b) PMappe.t -> ('a, 'c) PMappe.t -> bool
  val subset :
    ('-> '-> bool) -> ('c, 'a) PMappe.t -> ('c, 'b) PMappe.t -> bool
  val subseti :
    ('-> '-> '-> bool) ->
    ('a, 'b) PMappe.t -> ('a, 'c) PMappe.t -> bool
  val filter : ('-> '-> bool) -> ('a, 'b) PMappe.t -> ('a, 'b) PMappe.t
  val partition :
    ('-> '-> bool) ->
    ('a, 'b) PMappe.t -> ('a, 'b) PMappe.t * ('a, 'b) PMappe.t
  val cardinal : ('a, 'b) PMappe.t -> int
  val bindings : ('a, 'b) PMappe.t -> ('a * 'b) list
  val min_key : ('a, 'b) PMappe.t -> 'a
  val max_key : ('a, 'b) PMappe.t -> 'a
  val choose : ('a, 'b) PMappe.t -> 'a * 'b
  val print :
    ?first:(unit, Format.formatter, unit) Pervasives.format ->
    ?sep:(unit, Format.formatter, unit) Pervasives.format ->
    ?last:(unit, Format.formatter, unit) Pervasives.format ->
    ?firstbind:(unit, Format.formatter, unit) Pervasives.format ->
    ?sepbind:(unit, Format.formatter, unit) Pervasives.format ->
    ?lastbind:(unit, Format.formatter, unit) Pervasives.format ->
    (Format.formatter -> '-> unit) ->
    (Format.formatter -> '-> unit) ->
    Format.formatter -> ('a, 'b) PMappe.t -> unit
end