Module Sized.MakeSizedSet

This module implements a sized-set data-structure.

This module has the same interface as Stdlib.Set but with a different performance trade-off:

The cardinal function is much more efficient, but all other functions are a little bit slower. You should use this module if you need to call the cardinal function often. You should stick to Stdlib.Set otherwise.

Parameters

Signature

All the types and functions from the underlying Sets are supported.

The functions union and inter are less efficient than TzLwtreslib.Set.S.union and TzLwtreslib.Set.S.inter which should be considered instead, especially in case there are called several times. to_set and of_set can be used for this purpose.

include Mavryk_error_monad.TzLwtreslib.Set.S with type elt = Set.elt
type elt = Set.elt
type t
val empty : t
val is_empty : t -> bool
val mem : elt -> t -> bool
val add : elt -> t -> t
val singleton : elt -> t
val remove : elt -> t -> t
val union : t -> t -> t
val inter : t -> t -> t
val disjoint : t -> t -> bool
val diff : t -> t -> t
val compare : t -> t -> int
val equal : t -> t -> bool
val subset : t -> t -> bool
val iter : (elt -> unit) -> t -> unit
val iter_e : (elt -> (unit, 'trace) Stdlib.result) -> t -> (unit, 'trace) Stdlib.result
val iter_s : (elt -> unit Lwt.t) -> t -> unit Lwt.t
val iter_p : (elt -> unit Lwt.t) -> t -> unit Lwt.t
val iter_es : (elt -> (unit, 'trace) Stdlib.result Lwt.t) -> t -> (unit, 'trace) Stdlib.result Lwt.t
val map : (elt -> elt) -> t -> t
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
val fold_e : (elt -> 'a -> ('a, 'trace) Stdlib.result) -> t -> 'a -> ('a, 'trace) Stdlib.result
val fold_s : (elt -> 'a -> 'a Lwt.t) -> t -> 'a -> 'a Lwt.t
val fold_es : (elt -> 'a -> ('a, 'trace) Stdlib.result Lwt.t) -> t -> 'a -> ('a, 'trace) Stdlib.result Lwt.t
val for_all : (elt -> bool) -> t -> bool
val exists : (elt -> bool) -> t -> bool
val filter : (elt -> bool) -> t -> t
val filter_map : (elt -> elt option) -> t -> t
val partition : (elt -> bool) -> t -> t * t
val cardinal : t -> int
val elements : t -> elt list
val min_elt : t -> elt option
val min_elt_opt : t -> elt option
val max_elt : t -> elt option
val max_elt_opt : t -> elt option
val choose : t -> elt option
val choose_opt : t -> elt option
val split : elt -> t -> t * bool * t
val find : elt -> t -> elt option
val find_opt : elt -> t -> elt option
val find_first : (elt -> bool) -> t -> elt option
val find_first_opt : (elt -> bool) -> t -> elt option
val find_last : (elt -> bool) -> t -> elt option
val find_last_opt : (elt -> bool) -> t -> elt option
val of_list : elt list -> t
val to_seq_from : elt -> t -> elt Stdlib.Seq.t
val to_seq : t -> elt Stdlib.Seq.t
val to_rev_seq : t -> elt Stdlib.Seq.t
val add_seq : elt Stdlib.Seq.t -> t -> t
val of_seq : elt Stdlib.Seq.t -> t
val iter_ep : (elt -> (unit, 'error Mavryk_error_monad.TzTrace.trace) Stdlib.result Lwt.t) -> t -> (unit, 'error Mavryk_error_monad.TzTrace.trace) Stdlib.result Lwt.t
val to_set : t -> Set.t

to_set t returns the set of the sizedset t

val of_set : Set.t -> t

of_set s returns the sizedset of the set s