def Map.has.go
Base · base.bend:2884
import Base
2884def Map.has.go(-a: Quant, -V: Kind(a), node: Map<a, V>, kb: String & Bool) ->
2885 Map<a, V> & Bool:
2886 match node kb:
2887 case MNode{p, MTip{}, hi} Tuple{key, False{}}:
2888 (MNode{p, MTip{}, hi}, False{})
2889 case MNode{p, MLeaf{k, v}, hi} Tuple{key, False{}}:
2890 Map.lo(a, V, Bool, p, hi, Map.has.leaf(a, V, v, String.cmp(key, k)))
2891 case MNode{p, MNode{+q, c, d}, hi} Tuple{key, False{}}:
2892 Map.lo(a, V, Bool, p, hi, Map.has.go(a, V, MNode{q, c, d}, Map.bit(key, q)))
2893 case MNode{p, lo, MTip{}} Tuple{key, True{}}:
2894 (MNode{p, lo, MTip{}}, False{})
2895 case MNode{p, lo, MLeaf{k, v}} Tuple{key, True{}}:
2896 Map.hi(a, V, Bool, p, lo, Map.has.leaf(a, V, v, String.cmp(key, k)))
2897 case MNode{p, lo, MNode{+q, c, d}} Tuple{key, True{}}:
2898 Map.hi(a, V, Bool, p, lo, Map.has.go(a, V, MNode{q, c, d}, Map.bit(key, q)))
2899 case m _:
2900 (m, False{})