KaSim
  1. Overview
  2. Docs
type elt
type set
type +'a t
val empty : 'a t
val is_empty : 'a t -> bool
val size : 'a t -> int
val root : 'a t -> (elt * 'a) option
val max_key : 'a t -> elt option
val add : elt -> 'a -> 'a t -> 'a t
val remove : elt -> 'a t -> 'a t
val add_while_testing_freshness : ('parameters, 'error, elt -> 'a -> 'a t -> 'error * bool * 'a t) with_log_wrap
val remove_while_testing_existence : ('parameters, 'error, elt -> 'a t -> 'error * bool * 'a t) with_log_wrap
val pop : elt -> 'a t -> 'a option * 'a t
val merge : 'a t -> 'a t -> 'a t
val min_elt : 'a t -> (elt * 'a) option
val find_option : elt -> 'a t -> 'a option
val find_default : 'a -> elt -> 'a t -> 'a
val find_option_with_logs : ('parameters, 'error, elt -> 'a t -> 'error * 'a option) with_log_wrap
val find_default_with_logs : ('parameters, 'error, 'a -> elt -> 'a t -> 'error * 'a) with_log_wrap
val mem : elt -> 'a t -> bool
val diff : 'a t -> 'a t -> 'a t * 'a t
val union : 'a t -> 'a t -> 'a t
val update : 'a t -> 'a t -> 'a t
val diff_pred : ('a -> 'a -> bool) -> 'a t -> 'a t -> 'a t * 'a t
val add_with_logs : ('parameters, 'error, elt -> 'a -> 'a t -> 'error * 'a t) with_log_wrap
val remove_with_logs : ('parameters, 'error, elt -> 'a t -> 'error * 'a t) with_log_wrap
val join_with_logs : ('parameters, 'error, 'a t -> elt -> 'a -> 'a t -> 'error * 'a t) with_log_wrap
val split_with_logs : ('parameters, 'error, elt -> 'a t -> 'error * ('a t * 'a option * 'a t)) with_log_wrap
val update_with_logs : ('parameters, 'error, 'a t -> 'a t -> 'error * 'a t) with_log_wrap
val map2_with_logs : ('parameters, 'error, ('parameters -> 'error -> 'a -> 'error * 'c) -> ('parameters -> 'error -> 'b -> 'error * 'c) -> ('parameters -> 'error -> 'a -> 'b -> 'error * 'c) -> 'a t -> 'b t -> 'error * 'c t) with_log_wrap
val map2z_with_logs : ('parameters, 'error, ('parameters -> 'error -> 'a -> 'a -> 'error * 'a) -> 'a t -> 'a t -> 'error * 'a t) with_log_wrap
val fold2z_with_logs : ('parameters, 'error, ('parameters -> 'error -> elt -> 'a -> 'b -> 'c -> 'error * 'c) -> 'a t -> 'b t -> 'c -> 'error * 'c) with_log_wrap
val fold2_with_logs : ('parameters, 'error, ('parameters -> 'error -> elt -> 'a -> 'c -> 'error * 'c) -> ('parameters -> 'error -> elt -> 'b -> 'c -> 'error * 'c) -> ('parameters -> 'error -> elt -> 'a -> 'b -> 'c -> 'error * 'c) -> 'a t -> 'b t -> 'c -> 'error * 'c) with_log_wrap
val fold2_sparse_with_logs : ('parameters, 'error, ('parameters -> 'error -> elt -> 'a -> 'b -> 'c -> 'error * 'c) -> 'a t -> 'b t -> 'c -> 'error * 'c) with_log_wrap
val iter2_sparse_with_logs : ('parameters, 'error, ('parameters -> 'error -> elt -> 'a -> 'b -> 'error) -> 'a t -> 'b t -> 'error) with_log_wrap
val diff_with_logs : ('parameters, 'error, 'a t -> 'a t -> 'error * 'a t * 'a t) with_log_wrap
val diff_pred_with_logs : ('parameters, 'error, ('a -> 'a -> bool) -> 'a t -> 'a t -> 'error * 'a t * 'a t) with_log_wrap
val merge_with_logs : ('parameters, 'error, 'a t -> 'a t -> 'error * 'a t) with_log_wrap
val union_with_logs : ('parameters, 'error, 'a t -> 'a t -> 'error * 'a t) with_log_wrap
val fold_restriction_with_logs : ('parameters, 'error, (elt -> 'a -> ('error * 'b) -> 'error * 'b) -> set -> 'a t -> 'b -> 'error * 'b) with_log_wrap
val fold_restriction_with_missing_associations_with_logs : ('parameters, 'error, (elt -> 'a -> ('error * 'b) -> 'error * 'b) -> (elt -> ('error * 'b) -> 'error * 'b) -> set -> 'a t -> 'b -> 'error * 'b) with_log_wrap
val iter : (elt -> 'a -> unit) -> 'a t -> unit
val fold : (elt -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
val fold_with_interruption : (elt -> 'a -> 'b -> ('b, 'c) Stop.stop) -> 'a t -> 'b -> ('b, 'c) Stop.stop
val monadic_fold2 : 'parameters -> 'method_handler -> ('parameters -> 'method_handler -> elt -> 'a -> 'b -> 'c -> 'method_handler * 'c) -> ('parameters -> 'method_handler -> elt -> 'a -> 'c -> 'method_handler * 'c) -> ('parameters -> 'method_handler -> elt -> 'b -> 'c -> 'method_handler * 'c) -> 'a t -> 'b t -> 'c -> 'method_handler * 'c
val monadic_fold2_sparse : 'parameters -> 'method_handler -> ('parameters -> 'method_handler -> elt -> 'a -> 'b -> 'c -> 'method_handler * 'c) -> 'a t -> 'b t -> 'c -> 'method_handler * 'c
val monadic_iter2_sparse : 'parameters -> 'method_handler -> ('parameters -> 'method_handler -> elt -> 'a -> 'b -> 'method_handler) -> 'a t -> 'b t -> 'method_handler
val monadic_fold_restriction : 'parameters -> 'method_handler -> ('parameters -> 'method_handler -> elt -> 'a -> 'b -> 'method_handler * 'b) -> set -> 'a t -> 'b -> 'method_handler * 'b
val mapi : (elt -> 'a -> 'b) -> 'a t -> 'b t
val map : ('a -> 'b) -> 'a t -> 'b t
val map2 : ('a -> 'a -> 'a) -> 'a t -> 'a t -> 'a t
val for_all : (elt -> 'a -> bool) -> 'a t -> bool
val filter_one : (elt -> 'a -> bool) -> 'a t -> (elt * 'a) option
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
val bindings : 'a t -> (elt * 'a) list
val print : (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a t -> unit
val of_json : ?lab_key:string -> ?lab_value:string -> ?error_msg:string -> (Yojson.Basic.json -> elt) -> (Yojson.Basic.json -> 'value) -> Yojson.Basic.json -> 'value t
val to_json : ?lab_key:string -> ?lab_value:string -> (elt -> Yojson.Basic.json) -> ('value -> Yojson.Basic.json) -> 'value t -> Yojson.Basic.json