Module type PrettyPrintable.PPUniqRankSet

set where at most one element of a given rank can be present

type t
include Ppx_compare_lib.Comparable.S with type t := t
val compare : t Base__Ppx_compare_lib.compare
include Ppx_compare_lib.Equal.S with type t := t
val equal : t Base__Ppx_compare_lib.equal
type rank
type elt
val add : t -> elt -> t
val empty : t
val find_rank : t -> rank -> elt option
val fold : t -> init:'accum -> f:('accum -> elt -> 'accum) -> 'accum
val fold_map : t -> init:'accum -> f:('accum -> elt -> 'accum * elt) -> 'accum * t
val for_all : f:(elt -> bool) -> t -> bool
val exists : f:(elt -> bool) -> t -> bool
val is_empty : t -> bool
val is_singleton : t -> bool
val is_subset : t -> of_:t -> bool
val map : t -> f:(elt -> elt) -> t
val singleton : elt -> t
val elements : t -> elt list
val remove : elt -> t -> t
val remove_by_rank : rank -> t -> t
val mem : elt -> t -> bool
val update : elt -> t -> t
val union_prefer_left : t -> t -> t

in case an element with the same rank is present both in lhs and rhs, keep the one from lhs in union_prefer_left lhs rhs

val merge : t -> t -> f:(elt option -> elt option -> elt option) -> t
val filter : t -> f:(elt -> bool) -> t
val filter_map : t -> f:(elt -> elt option) -> t
val pp : ?print_rank:bool -> F.formatter -> t -> unit