Map.pop.go: def of Base
Import: import Base
Lines 2975-2991 of Base/base.bend: https://jend.leeeet.dev/read.txt?path=Base/base.bend&start_line=2975&end_line=2991
import Base
def Map.pop.go(-a: Quant, -V: Kind(a), node: Map, kb: String & Bool) ->
Map & Maybe:
match node kb:
case MNode{p, MTip{}, hi} Tuple{key, False{}}:
(hi, None{})
case MNode{p, MLeaf{k, v}, hi} Tuple{key, False{}}:
Map.pop.lo(a, V, p, hi, Map.pop.leaf(a, V, v, String.cmp(key, k)))
case MNode{p, MNode{+q, c, d}, hi} Tuple{key, False{}}:
Map.pop.lo(a, V, p, hi, Map.pop.go(a, V, MNode{q, c, d}, Map.bit(key, q)))
case MNode{p, lo, MTip{}} Tuple{key, True{}}:
(lo, None{})
case MNode{p, lo, MLeaf{k, v}} Tuple{key, True{}}:
Map.pop.hi(a, V, p, lo, Map.pop.leaf(a, V, v, String.cmp(key, k)))
case MNode{p, lo, MNode{+q, c, d}} Tuple{key, True{}}:
Map.pop.hi(a, V, p, lo, Map.pop.go(a, V, MNode{q, c, d}, Map.bit(key, q)))
case m _:
(m, None{})
Uses (11):
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Map
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Map.bit
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Map.pop.hi
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Map.pop.leaf
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Map.pop.lo
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Maybe
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Pair
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Sigma
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String
https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String.cmp