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{})

Uses (10)

Used by (3)