sig
  type ('a, 'b) t
  val get : ('a, 'b) CCLinq.PMap.t -> '-> 'b option
  val size : ('a, 'b) CCLinq.PMap.t -> int
  val to_seq : ('a, 'b) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
  val map : ('-> 'c) -> ('a, 'b) CCLinq.PMap.t -> ('a, 'c) CCLinq.PMap.t
  val to_list : ('a, 'b) CCLinq.PMap.t -> ('a * 'b) list
  val reverse :
    ?cmp:'CCLinq.ord ->
    ?eq:'CCLinq.equal ->
    ?hash:'CCLinq.hash ->
    unit -> ('a, 'b) CCLinq.PMap.t -> ('b, 'a list) CCLinq.PMap.t
  val reverse_multimap :
    ?cmp:'CCLinq.ord ->
    ?eq:'CCLinq.equal ->
    ?hash:'CCLinq.hash ->
    unit -> ('a, 'b list) CCLinq.PMap.t -> ('b, 'a list) CCLinq.PMap.t
  val fold :
    ('acc -> '-> '-> 'acc) -> 'acc -> ('a, 'b) CCLinq.PMap.t -> 'acc
  val fold_multimap :
    ('acc -> '-> '-> 'acc) -> 'acc -> ('a, 'b list) CCLinq.PMap.t -> 'acc
  val get_seq : '-> ('a, 'b) CCLinq.PMap.t -> 'CCLinq.sequence
  val iter : ('a, 'b) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
  val flatten :
    ('a, 'CCLinq.sequence) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
  val flatten_l : ('a, 'b list) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
end