def OMap.put

bend-kit-collections@0.1.4.1 · omap.bend:130

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

130def OMap.put(
131  ~K: Data, ~V: Data, ~cmp: K -> K -> Cmp, m: OMap<K, V>, +k: K, +v: V
132) -> OMap<K, V>:
133  match m:
134    case OTip{}:
135      OBin{1, k, v, OTip{}, OTip{}}
136    case OBin{+s, +key, +val, +lo, +hi}:
137      Cmp.case(OMap<K, V>, cmp(k, key),
138        u => OMap.balance(K, V, key, val, OMap.put(~K, ~V, ~cmp, lo, k, v), hi),
139        u => OBin{s, key, v, lo, hi},
140        u => OMap.balance(K, V, key, val, lo, OMap.put(~K, ~V, ~cmp, hi, k, v)))

Uses (4)

Used by (20)