def g_put

bend-kit-collections@0.1.4.1 · LAWS.bend:319

import bend-kit-collections@0.1.4.1/LAWS.bend as LAWS
import Base
import bend-kit-collections@0.1.4.1/omap.bend as O

319def g_put(
320  ~K: Data, ~V: Data, ~cmp: K -> K -> Cmp, m: O.OMap<K, V>, +k: K, +v: V
321) -> O.OMap<K, V>:
322  match m:
323    case O.OTip{}:
324      O.OBin{1, k, v, O.OTip{}, O.OTip{}}
325    case O.OBin{+s, +key, +val, +lo, +hi}:
326      O.Cmp.case(O.OMap<K, V>, cmp(k, key),
327        u => g_balance(K, V, key, val, g_put(~K, ~V, ~cmp, lo, k, v), hi),
328        u => O.OBin{s, key, v, lo, hi},
329        u => g_balance(K, V, key, val, lo, g_put(~K, ~V, ~cmp, hi, k, v)))

Uses (4)

Used by (3)