Module PatriciaTree.MakeHeterogeneousSet

Parameters

Signature

module BaseMap : BaseMap_S with type (_, _) value = unit with type 'a key = 'a Key.t

Underlying basemap, for cross map/set operations

type t = unit BaseMap.t
type 'a key = 'a BaseMap.key
type any_key =
  1. | Any : 'a key -> any_key
val empty : t
val is_empty : t -> bool
val mem : 'a key -> t -> bool
val add : 'a key -> t -> t
val singleton : 'a key -> t
val cardinal : t -> int
val is_singleton : t -> any_key option
val remove : 'a key -> t -> t
val union : t -> t -> t
val inter : t -> t -> t
val disjoint : t -> t -> bool
val equal : t -> t -> bool
val subset : t -> t -> bool
val split : 'a key -> t -> t * bool * t
val iter : ('a key -> unit) -> t -> unit
type polypredicate = {
  1. f : 'a. 'a key -> bool;
}
val filter : polypredicate -> t -> t
val for_all : polypredicate -> t -> bool
type 'acc polyfold = {
  1. f : 'a. 'a key -> 'acc -> 'acc;
}
val fold : 'acc polyfold -> t -> 'acc -> 'acc
val min_elt : t -> any_key
val max_elt : t -> any_key
val pop_minimum : t -> (any_key * t) option
val pop_maximum : t -> (any_key * t) option
type polypretty = {
  1. f : 'a. Stdlib.Format.formatter -> 'a key -> unit;
}
val pretty : ?pp_sep:(Stdlib.Format.formatter -> unit -> unit) -> polypretty -> Stdlib.Format.formatter -> t -> unit

pp_sep defaults to Format.pp_print_cut