def OMap.rot_hi
import bend-kit-collections@0.1.4.1/omap.bend as Omapimport Base
96# The lo side is too heavy: move weight toward hi.
97def OMap.rot_hi(
98 -K: Data, -V: Data, k: K, v: V, lo: OMap<K, V>, hi: OMap<K, V>
99) -> OMap<K, V>:
100 match lo:
101 case OTip{}:
102 OMap.bin(K, V, k, v, OTip{}, hi)
103 case OBin{s, lk, lv, +ll, +lh}:
104 OMap.rot_hi.pick(K, V,
105 U32.is_lt((OMap.size(K, V, lh) + 1 : U32),
106 (2 * (OMap.size(K, V, ll) + 1) : U32)),
107 k, v, lk, lv, ll, lh, hi)