def Map.get.go
Base · base.bend:2920
import Base
2920def Map.get.go(-V: Data, node: Map<&2, V>, d: V, kb: String & Bool) -> Map<&2, V> & V:
2921 match node kb:
2922 case MNode{p, MTip{}, hi} Tuple{key2, False{}}:
2923 (MNode{p, MTip{}, hi}, d)
2924 case MNode{p, MLeaf{k, v}, hi} Tuple{key2, False{}}:
2925 Map.lo(&2, V, V, p, hi, Map.get.leaf(V, d, v, String.cmp(key2, k)))
2926 case MNode{p, MNode{+q, a, b}, hi} Tuple{key2, False{}}:
2927 Map.lo(&2, V, V, p, hi, Map.get.go(V, MNode{q, a, b}, d, Map.bit(key2, q)))
2928 case MNode{p, lo, MTip{}} Tuple{key2, True{}}:
2929 (MNode{p, lo, MTip{}}, d)
2930 case MNode{p, lo, MLeaf{k, v}} Tuple{key2, True{}}:
2931 Map.hi(&2, V, V, p, lo, Map.get.leaf(V, d, v, String.cmp(key2, k)))
2932 case MNode{p, lo, MNode{+q, a, b}} Tuple{key2, True{}}:
2933 Map.hi(&2, V, V, p, lo, Map.get.go(V, MNode{q, a, b}, d, Map.bit(key2, q)))
2934 case m _:
2935 (m, d)