Module Bonsai.Map

val mapi : here:lexing_position -> ('k, 'v1, 'cmp) Core.Map.t Value.t -> f:(key:'k -> data:'v1 -> 'v2) -> ('k, 'v2, 'cmp) Core.Map.t Computation.t
val map : here:lexing_position -> ('k, 'v1, 'cmp) Core.Map.t Value.t -> f:('v1 -> 'v2) -> ('k, 'v2, 'cmp) Core.Map.t Computation.t
val of_set : here:lexing_position -> ('k, 'cmp) Core.Set.t Value.t -> ('k, unit, 'cmp) Core.Map.t Computation.t
val filter_mapi : here:lexing_position -> ('k, 'v1, 'cmp) Core.Map.t Value.t -> f:(key:'k -> data:'v1 -> 'v2 option) -> ('k, 'v2, 'cmp) Core.Map.t Computation.t
val filter_map : here:lexing_position -> ('k, 'v1, 'cmp) Core.Map.t Value.t -> f:('v1 -> 'v2 option) -> ('k, 'v2, 'cmp) Core.Map.t Computation.t
val partition_mapi : here:lexing_position -> ('k, 'v1, 'cmp) Core.Map.t Value.t -> f:(key:'k -> data:'v1 -> ('v2, 'v3) Core.Either.t) -> (('k, 'v2, 'cmp) Core.Map.t * ('k, 'v3, 'cmp) Core.Map.t) Computation.t
val unordered_fold : here:lexing_position -> ?update:(key:'k -> old_data:'v -> new_data:'v -> 'acc -> 'acc) -> ?finalize:('acc -> 'acc) -> ('k, 'v, 'cmp) Core.Map.t Value.t -> init:'acc -> add:(key:'k -> data:'v -> 'acc -> 'acc) -> remove:(key:'k -> data:'v -> 'acc -> 'acc) -> 'acc Computation.t
val unordered_fold_with_extra : here:lexing_position -> ?update:(key:'k -> old_data:'v -> new_data:'v -> 'acc -> 'extra -> 'acc) -> ('k, 'v, 'e) Core.Map.t Value.t -> 'extra Value.t -> init:'acc -> add:(key:'k -> data:'v -> 'acc -> 'extra -> 'acc) -> remove:(key:'k -> data:'v -> 'acc -> 'extra -> 'acc) -> extra_changed: (old_extra:'extra -> new_extra:'extra -> input:('k, 'v, 'e) Core.Map.t -> 'acc -> 'acc) -> 'acc Computation.t
val cutoff : here:lexing_position -> ('k, 'v, 'cmp) Core.Map.t Value.t -> equal:('v -> 'v -> bool) -> ('k, 'v, 'cmp) Core.Map.t Computation.t
val mapi_count : here:lexing_position -> ('k1, 'v, 'cmp1) Core.Map.t Value.t -> comparator:('k2, 'cmp2) Core.Comparator.Module.t -> f:(key:'k1 -> data:'v -> 'k2) -> ('k2, int, 'cmp2) Core.Map.t Computation.t
val map_count : here:lexing_position -> ('k1, 'v, 'cmp1) Core.Map.t Value.t -> comparator:('k2, 'cmp2) Core.Comparator.Module.t -> f:('v -> 'k2) -> ('k2, int, 'cmp2) Core.Map.t Computation.t
val mapi_min : here:lexing_position -> ('k, 'v, 'a) Core.Map.t Value.t -> comparator:('r, 'b) Core.Comparator.Module.t -> f:(key:'k -> data:'v -> 'r) -> 'r option Computation.t
val mapi_max : here:lexing_position -> ('k, 'v, 'a) Core.Map.t Value.t -> comparator:('r, 'b) Core.Comparator.Module.t -> f:(key:'k -> data:'v -> 'r) -> 'r option Computation.t
val map_min : here:lexing_position -> ('k, 'v, 'a) Core.Map.t Value.t -> comparator:('r, 'b) Core.Comparator.Module.t -> f:('v -> 'r) -> 'r option Computation.t
val map_max : here:lexing_position -> ('k, 'v, 'a) Core.Map.t Value.t -> comparator:('r, 'b) Core.Comparator.Module.t -> f:('v -> 'r) -> 'r option Computation.t
val min_value : here:lexing_position -> ('k, 'v, 'a) Core.Map.t Value.t -> comparator:('v, 'b) Core.Comparator.Module.t -> 'v option Computation.t
val max_value : here:lexing_position -> ('k, 'v, 'a) Core.Map.t Value.t -> comparator:('v, 'b) Core.Comparator.Module.t -> 'v option Computation.t
val mapi_bounds : here:lexing_position -> ('k, 'v, 'a) Core.Map.t Value.t -> comparator:('r, 'b) Core.Comparator.Module.t -> f:(key:'k -> data:'v -> 'r) -> ('r * 'r) option Computation.t
val map_bounds : here:lexing_position -> ('k, 'v, 'a) Core.Map.t Value.t -> comparator:('r, 'b) Core.Comparator.Module.t -> f:('v -> 'r) -> ('r * 'r) option Computation.t
val value_bounds : here:lexing_position -> ('k, 'v, 'a) Core.Map.t Value.t -> comparator:('v, 'b) Core.Comparator.Module.t -> ('v * 'v) option Computation.t
val merge : here:lexing_position -> ('k, 'v1, 'cmp) Core.Map.t Value.t -> ('k, 'v2, 'cmp) Core.Map.t Value.t -> f:(key:'k -> ('v1, 'v2) Core.Map.Merge_element.t -> 'v3 option) -> ('k, 'v3, 'cmp) Core.Map.t Computation.t
val merge_both_some : here:lexing_position -> ('k, 'v1, 'cmp) Core.Map.t Value.t -> ('k, 'v2, 'cmp) Core.Map.t Value.t -> f:(key:'k -> 'v1 -> 'v2 -> 'v3) -> ('k, 'v3, 'cmp) Core.Map.t Computation.t
val unzip : here:lexing_position -> ('k, 'a * 'b, 'cmp) Core.Map.t Value.t -> (('k, 'a, 'cmp) Core.Map.t * ('k, 'b, 'cmp) Core.Map.t) Computation.t
val unzip_mapi : here:lexing_position -> ('k, 'v, 'cmp) Core.Map.t Value.t -> f:(key:'k -> data:'v -> 'v1 * 'v2) -> (('k, 'v1, 'cmp) Core.Map.t * ('k, 'v2, 'cmp) Core.Map.t) Computation.t
val keys : here:lexing_position -> ('k, 'v, 'c) Core.Map.t Value.t -> ('k, 'c) Core.Set.t Computation.t
val rank : here:lexing_position -> ('k, 'v, 'cmp) Core.Map.t Value.t -> 'k Value.t -> int option Computation.t
val subrange : here:lexing_position -> ('k, 'v, 'cmp) Core.Map.t Value.t -> ('k Core.Maybe_bound.As_lower_bound.t * 'k Core.Maybe_bound.As_upper_bound.t) option Value.t -> ('k, 'v, 'cmp) Core.Map.t Computation.t
val subrange_by_rank : here:lexing_position -> ('k, 'v, 'cmp) Core.Map.t Value.t -> (int Core.Maybe_bound.As_lower_bound.t * int Core.Maybe_bound.As_upper_bound.t) Value.t -> ('k, 'v, 'cmp) Core.Map.t Computation.t
val rekey : here:lexing_position -> ('k1, 'v, 'cmp1) Core.Map.t Value.t -> comparator:('k2, 'cmp2) Core.Comparator.Module.t -> f:(key:'k1 -> data:'v -> 'k2) -> ('k2, 'v, 'cmp2) Core.Map.t Computation.t
val index_byi : here:lexing_position -> ('inner_key, 'v, 'inner_cmp) Core.Map.t Value.t -> comparator:('outer_key, 'outer_cmp) Core.Comparator.Module.t -> index:(key:'inner_key -> data:'v -> 'outer_key option) -> ('outer_key, ('inner_key, 'v, 'inner_cmp) Core.Map.t, 'outer_cmp) Core.Map.t Computation.t
val index_by : here:lexing_position -> ('inner_key, 'v, 'inner_cmp) Core.Map.t Value.t -> comparator:('outer_key, 'outer_cmp) Core.Comparator.Module.t -> index:('v -> 'outer_key option) -> ('outer_key, ('inner_key, 'v, 'inner_cmp) Core.Map.t, 'outer_cmp) Core.Map.t Computation.t
val unordered_fold_nested_maps : here:lexing_position -> ?update: (outer_key:'outer_key -> inner_key:'inner_key -> old_data:'v -> new_data:'v -> 'acc -> 'acc) -> ('outer_key, ('inner_key, 'v, 'inner_cmp) Core.Map.t, 'outer_cmp) Core.Map.t Value.t -> init:'acc -> add:(outer_key:'outer_key -> inner_key:'inner_key -> data:'v -> 'acc -> 'acc) -> remove: (outer_key:'outer_key -> inner_key:'inner_key -> data:'v -> 'acc -> 'acc) -> 'acc Computation.t
val transpose : here:lexing_position -> ('k2, 'k2_cmp) Core.Comparator.Module.t -> ('k1, ('k2, 'v, 'k2_cmp) Core.Map.t, 'k1_cmp) Core.Map.t Value.t -> ('k2, ('k1, 'v, 'k1_cmp) Core.Map.t, 'k2_cmp) Core.Map.t Computation.t
val collapse : here:lexing_position -> ('outer_key, ('inner_key, 'v, 'inner_cmp) Core.Map.t, 'outer_cmp) Core.Map.t Value.t -> comparator:('inner_key, 'inner_cmp) Core.Comparator.Module.t -> ('outer_key * 'inner_key, 'v, ('outer_cmp, 'inner_cmp) Core.Tuple2.comparator_witness) Core.Map.t Computation.t
val collapse_by : here:lexing_position -> ('outer_key, ('inner_key, 'v, 'inner_cmp) Core.Map.t, 'outer_cmp) Core.Map.t Value.t -> merge_keys:('outer_key -> 'inner_key -> 'combined_key) -> comparator:('combined_key, 'combined_cmp) Core.Comparator.Module.t -> ('combined_key, 'v, 'combined_cmp) Core.Map.t Computation.t
val expand : here:lexing_position -> ('outer_key * 'inner_key, 'v, 'tuple_cmp) Core.Map.t Value.t -> outer_comparator:('outer_key, 'outer_cmp) Core.Comparator.Module.t -> inner_comparator:('inner_key, 'inner_cmp) Core.Comparator.Module.t -> ('outer_key, ('inner_key, 'v, 'inner_cmp) Core.Map.t, 'outer_cmp) Core.Map.t Computation.t
val counti : here:lexing_position -> ('k, 'v, 'a) Core.Map.t Value.t -> f:(key:'k -> data:'v -> bool) -> int Computation.t
val count : here:lexing_position -> ('a, 'v, 'b) Core.Map.t Value.t -> f:('v -> bool) -> int Computation.t
val for_alli : here:lexing_position -> ('k, 'v, 'a) Core.Map.t Value.t -> f:(key:'k -> data:'v -> bool) -> bool Computation.t
val for_all : here:lexing_position -> ('a, 'v, 'b) Core.Map.t Value.t -> f:('v -> bool) -> bool Computation.t
val existsi : here:lexing_position -> ('k, 'v, 'a) Core.Map.t Value.t -> f:(key:'k -> data:'v -> bool) -> bool Computation.t
val exists : here:lexing_position -> ('a, 'v, 'b) Core.Map.t Value.t -> f:('v -> bool) -> bool Computation.t
val sum : here:lexing_position -> ('a, 'v, 'b) Core.Map.t Value.t -> (module Abstract_algebra.Commutative_group.Without_sexp with type t = 'u) -> f:('v -> 'u) -> 'u Computation.t