core-and-more

Includes core, and some more useful extensions
IN THIS PACKAGE
type key = K.t
val compare_key : key -> key -> Ppx_deriving_runtime.int
val equal_key : key -> key -> Ppx_deriving_runtime.bool
val hash_fold_key : Base.Hash.state -> key -> Base.Hash.state
val hash_key : key -> Base.Hash.hash_value
type value = V.t
val compare_value : value -> value -> Ppx_deriving_runtime.int
val equal_value : value -> value -> Ppx_deriving_runtime.bool
val hash_fold_value : Base.Hash.state -> value -> Base.Hash.state
val hash_value : value -> Base.Hash.hash_value
type pair = key * value
val compare_pair : pair -> pair -> Ppx_deriving_runtime.int
val equal_pair : pair -> pair -> Ppx_deriving_runtime.bool
val hash_fold_pair : Base.Hash.state -> pair -> Base.Hash.state
val hash_pair : pair -> Base.Hash.hash_value
type t =
| Leaf
| Two of t * pair * t
| Three of t * pair * t * pair * t
val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
val hash : t -> Base.Hash.hash_value
type kvp_list = (K.t * V.t) list
val show_kvp_list : kvp_list -> Ppx_deriving_runtime.string
type kicked =
| Up of t * pair * t
| Done of t
type hole =
| Hole of pair option * t
| Absorbed of pair option * t
type direction2 =
| Left2
| Right2
type direction3 =
| Left3
| Mid3
| Right3
val empty : t
val fold : ( key -> value -> 'a -> 'a ) -> 'a -> t -> 'a
val map_values : f:( value -> value ) -> t -> t
val insert_upward_two : pair -> t -> t -> pair -> t -> kicked
val insert_upward_three : pair -> t -> t -> pair -> pair -> t -> t -> kicked
val insert_downward : ( value -> value -> value ) -> t -> key -> value -> kicked * bool
val insert_downward_two : ( value -> value -> value ) -> pair -> pair -> t -> t -> kicked * bool
val insert_downward_three : ( value -> value -> value ) -> pair -> pair -> pair -> t -> t -> t -> kicked * bool
val insert_or_combine : combiner:( value -> value -> value ) -> t -> key -> value -> t * bool
val insert : t -> key -> value -> t
val insert_and_new : t -> key -> value -> t * bool
val remove_upward_two : pair -> pair option -> t -> t -> direction2 -> hole
val remove_upward_three : pair -> pair -> pair option -> t -> t -> t -> direction3 -> hole
val remove_downward : ( value -> value option ) -> t -> key -> hole
val remove_downward_two : ( value -> value option ) -> key -> pair -> t -> t -> hole
val remove_downward_three : ( value -> value option ) -> key -> pair -> pair -> t -> t -> t -> hole
val remove_min : t -> hole
val remove_or_update_and_retrieve_old : updater:( value -> value option ) -> t -> key -> value option * t
val remove_or_update_and_retrieve_old_exn : updater:( value -> value option ) -> t -> key -> value * t
val remove_or_update : updater:( value -> value option ) -> t -> key -> t
val remove : t -> key -> t
val update : updater:( value -> value ) -> t -> key -> t
val lookup : t -> key -> value option
val lookup_default : default:value -> t -> key -> value
val lookup_exn : t -> key -> value
val member : t -> key -> bool
val choose : t -> (key * value * t) option
val from_kvp_list : (key * value) list -> t
val singleton : key -> value -> t
val is_empty : t -> bool
val as_kvp_list : t -> (key * value) list
val key_list : t -> key list
val value_list : t -> value list
val compare : t -> t -> int
val equal : t -> t -> bool
val merge : combiner:( value -> value -> 'a ) -> only_d1_fn:( value -> 'a ) -> only_d2_fn:( value -> 'a ) -> t -> t -> (key * 'a) list
val merge_to_dict : ?only_d1_fn:( value -> value ) -> ?only_d2_fn:( value -> value ) -> combiner:( value -> value -> value ) -> t -> t -> t
val max_key : t -> key option
val max_key_exn : t -> key
val size : t -> int
val first : f:( key -> value -> bool ) -> t -> (key * value) option
val first_exn : f:( key -> value -> bool ) -> t -> key * value
val exists : f:( key -> value -> bool ) -> t -> bool
val for_all : f:( key -> value -> bool ) -> t -> bool