def Map.put.go
Base · base.bend:2732
import Base
2732
2733
2734
2735def Map.put.go(-a: Quant, -V: Kind(a), node: Map<a, V>, x: V, kb: String & Bool) -> Map<a, V>:
2736 match node kb:
2737 case MNode{p, MTip{}, hi} Tuple{key, False{}}:
2738 MNode{p, MLeaf{key, x}, hi}
2739 case MNode{p, MLeaf{k, v}, hi} Tuple{key, False{}}:
2740 MNode{p, MLeaf{k, x}, hi}
2741 case MNode{p, MNode{+q, c, d}, hi} Tuple{key, False{}}:
2742 MNode{p, Map.put.go(a, V, MNode{q, c, d}, x, Map.bit(key, q)), hi}
2743 case MNode{p, lo, MTip{}} Tuple{key, True{}}:
2744 MNode{p, lo, MLeaf{key, x}}
2745 case MNode{p, lo, MLeaf{k, v}} Tuple{key, True{}}:
2746 MNode{p, lo, MLeaf{k, x}}
2747 case MNode{p, lo, MNode{+q, c, d}} Tuple{key, True{}}:
2748 MNode{p, lo, Map.put.go(a, V, MNode{q, c, d}, x, Map.bit(key, q))}
2749 case m _:
2750 m