sig
  type ('a, 'b) t
  val mapx : ('a, 'b) PDMappe.t -> ('a, 'b) PMappe.t
  val mapy : ('a, 'b) PDMappe.t -> ('b, 'a) PMappe.t
  val is_empty : ('a, 'b) PDMappe.t -> bool
  val empty : ('a -> 'a -> int) -> ('b -> 'b -> int) -> ('a, 'b) PDMappe.t
  val add : 'a -> 'b -> ('a, 'b) PDMappe.t -> ('a, 'b) PDMappe.t
  val y_of_x : 'a -> ('a, 'b) PDMappe.t -> 'b
  val x_of_y : 'a -> ('b, 'a) PDMappe.t -> 'b
  val remove : 'a -> ('a, 'b) PDMappe.t -> ('a, 'b) PDMappe.t
  val removex : 'a -> ('a, 'b) PDMappe.t -> ('a, 'b) PDMappe.t
  val removey : 'a -> ('b, 'a) PDMappe.t -> ('b, 'a) PDMappe.t
  val memx : 'a -> ('a, 'b) PDMappe.t -> bool
  val memy : 'a -> ('b, 'a) PDMappe.t -> bool
  val merge : ('a, 'b) PDMappe.t -> ('a, 'b) PDMappe.t -> ('a, 'b) PDMappe.t
  val common : ('a, 'b) PDMappe.t -> ('a, 'b) PDMappe.t -> ('a, 'b) PDMappe.t
  val intersetx : ('a, 'b) PDMappe.t -> 'a PSette.t -> ('a, 'b) PDMappe.t
  val intersety : ('a, 'b) PDMappe.t -> 'b PSette.t -> ('a, 'b) PDMappe.t
  val diffsetx : ('a, 'b) PDMappe.t -> 'a PSette.t -> ('a, 'b) PDMappe.t
  val diffsety : ('a, 'b) PDMappe.t -> 'b PSette.t -> ('a, 'b) PDMappe.t
  val iter : ('a -> 'b -> unit) -> ('a, 'b) PDMappe.t -> unit
  val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) PDMappe.t -> 'c -> 'c
  val setx : ('a, 'b) PDMappe.t -> 'a PSette.t
  val sety : ('a, 'b) PDMappe.t -> 'b PSette.t
  val equalx : ('a, 'b) PDMappe.t -> ('a, 'b) PDMappe.t -> bool
  val equaly : ('a, 'b) PDMappe.t -> ('a, 'b) PDMappe.t -> bool
  val subsetx : ('a, 'b) PDMappe.t -> ('a, 'b) PDMappe.t -> bool
  val subsety : ('a, 'b) PDMappe.t -> ('a, 'b) PDMappe.t -> bool
  val cardinal : ('a, 'b) PDMappe.t -> int
  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 -> 'a -> unit) ->
    (Format.formatter -> 'b -> unit) ->
    Format.formatter -> ('a, 'b) PDMappe.t -> unit
end