Adopt Step 7 language features across SX codebase
112 conversions across 19 .sx files using match, let-match, and pipe operators:
match (17): type/value dispatch replacing cond/if chains
- lib/vm.sx: HO form dispatch (for-each/map/filter/reduce/some/every?)
- lib/tree-tools.sx: node-display, node-matches?, rename, count, replace, free-symbols
- lib/types.sx: narrow-type, substitute-in-type, infer-type, resolve-type
- web/engine.sx: default-trigger, resolve-target, classify-trigger
- web/deps.sx: scan-refs-walk, scan-io-refs-walk
let-match (89): dict destructuring replacing (get d "key") patterns
- shared/page-functions.sx (20), blog/admin.sx (17), pub-api.sx (13)
- events/ layouts/page/tickets/entries/forms (27 total)
- specs-explorer.sx (7), federation/social.sx (3), lib/ small files (3)
-> pipes (6): replacing triple-chained gets in lib/vm.sx
- frame-closure → closure-code → code-bytecode chains
Also: lib/vm.sx accessor upgrades (get vm "sp" → vm-sp vm throughout)
2650/2650 tests pass, zero regressions.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>