keen/col/mut-sorted-map

Source
mut-sorted-map[k, v] record (has private fields)
Mutable sorted map. This works like mut v[k], but iterates in sorted order.
list-new[k, v] (k, v) mut-sorted-map(a (k, v)[]) k sorted-key
Later pairs overwrite earlier pairs with the same key.
to[k, v] (k, v) mut-sorted-map(a (k, v)[]) k sorted-key
is-empty[k, v] bool(a (k, v) mut-sorted-map)
true if a.size == 0.
clear[k, v] void(a (k, v) mut-sorted-map)
Removes every pair.
min-key[k, v] k option(a (k, v) mut-sorted-map) k sorted-key
remove-min-key[k, v] (k, v) option(a (k, v) mut-sorted-map) k sorted-key
max-key[k, v] k option(a (k, v) mut-sorted-map) k sorted-key
remove-max-key[k, v] (k, v) option(a (k, v) mut-sorted-map) k sorted-key
size[k, v] nat64(a (k, v) mut-sorted-map)
Number of pairs in the map. This is O(a size).
subscript[k, v] v option(a (k, v) mut-sorted-map, key k) k sorted-key
Find the value associated with the key. Returns an empty option iff the key is not in the map. This is O(a.size log).
set-subscript[k, v] void(a (k, v) mut-sorted-map, key k, value v) k sorted-key
Adds a key-value pair, replacing any existing one with that key.
~~=[k, v] void(a (k, v) mut-sorted-map, b (k, v)[]) k sorted-key
Adds many key-value pairs, replacing existing ones with the same keys. Equivalent to adding each element of b separately.
move-to[k, v] (k, v)[](a (k, v) mut-sorted-map) k sorted-key
remove-key[k, v] v option(a (k, v) mut-sorted-map, key k) k sorted-key
If the key is in the map, removes it and returns the value that was associated with it. Else, returns an empty option.
filter=[k, v] void(a (k, v) mut-sorted-map, f bool mut((k, v))) k sorted-key
map=[k, v] void(a (k, v) mut-sorted-map, f (k, v) mut((k, v))) k sorted-key
map-values=[k, v] void(a (k, v) mut-sorted-map, f v mut((k, v))) k sorted-key
some[k, v] bool(a (k, v) mut-sorted-map, f bool mut((k, v))) k sorted-key
some-reverse[k, v] bool(a (k, v) mut-sorted-map, f bool mut((k, v))) k sorted-key