Match exhaustiveness analysis:
- check-match-exhaustiveness function in evaluator.sx
- lint-node in tree-tools.sx checks match forms during format-check
- Warns on: no wildcard/catch-all, boolean missing true/false case
- (match x (true "yes")) → "match may be non-exhaustive"
Evaluator cleanup:
- Added missing step-sf-callcc definition (was in old transpiled output)
- Added missing step-sf-case definition (was in old transpiled output)
- Removed protocol functions from bootstrap skip set (they transpile fine)
- Retranspiled VM (bootstrap_vm.py) for compatibility
2650 tests pass (+5 from new features).
All Step 7 features complete:
7a: ->> |> as-> pipe operators
7b: Dict patterns, &rest, let-match destructuring
7c: define-protocol, implement, satisfies?
7d: Exhaustive match checking
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>