def exchange
bend-collections@1.0.0.0 · src/containers/balanced_search_tree.bend:542
import bend-collections@1.0.0.0/src/containers/balanced_search_tree.bend as BalancedSearchTree
import Base
import bend-collections@1.0.0.0/src/containers/dynamic_array.bend as D
542def exchange(~K: Data, ~V: Data, ~cmp: K -> K -> Cmp, m: TreeMap<K, V, cmp>, +id: Nat, value: Maybe<&2, V>) -> TreeMap<K, V, cmp> & Maybe<&2, V>:
543 match m id:
544 case mm 0n:
545 (mm, None{})
546 case TM{n, root, lo, hi, free, nodes, payloads} 1n+i:
547 exchange_finish(~K, ~V, ~cmp, n, root, lo, hi, free, nodes, D.swap_at(~Maybe<&2, V>, payloads, i, value))