Round 561-570: Ray marching, constraint solving, symbolic math, tensors, graph algorithms, consensus, allocators, regex engines, type inference, GC (200 commands)

ober

fa1a4ec84dbed97a256061e0aba37e906d2b5a42

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 197a23f..1d215ca 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4808,6 +4808,156 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | `cosmwasm-schema` | :orange_circle: Scaffolded | CosmWasm: schema |
 | `cosmwasm-optimize` | :orange_circle: Scaffolded | CosmWasm: optimize |
 
+### Round 561 — Ray Marching / SDF
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `sdf-sphere` | :orange_circle: Scaffold | SDF sphere primitive |
+| `sdf-box` | :orange_circle: Scaffold | SDF box primitive |
+| `sdf-union` | :orange_circle: Scaffold | SDF union |
+| `sdf-subtract` | :orange_circle: Scaffold | SDF subtraction |
+| `sdf-intersect` | :orange_circle: Scaffold | SDF intersection |
+| `raymarch-step` | :orange_circle: Scaffold | Ray march step |
+| `raymarch-render` | :orange_circle: Scaffold | Render scene |
+| `raymarch-shadow` | :orange_circle: Scaffold | Shadow rays |
+| `raymarch-ao` | :orange_circle: Scaffold | Ambient occlusion |
+| `raymarch-normal` | :orange_circle: Scaffold | Normal estimation |
+
+### Round 562 — Constraint Solving (CSP)
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `constraint-propagate` | :orange_circle: Scaffold | Propagate constraints |
+| `constraint-backtrack` | :orange_circle: Scaffold | Backtrack search |
+| `constraint-arc-consistency` | :orange_circle: Scaffold | Arc consistency |
+| `constraint-alldiff` | :orange_circle: Scaffold | All-different |
+| `constraint-optimize` | :orange_circle: Scaffold | Optimize |
+| `constraint-relax` | :orange_circle: Scaffold | Relax constraint |
+| `constraint-domain` | :orange_circle: Scaffold | Reduce domain |
+| `constraint-label` | :orange_circle: Scaffold | Labeling |
+| `constraint-reify` | :orange_circle: Scaffold | Reify constraint |
+| `constraint-global` | :orange_circle: Scaffold | Global constraint |
+
+### Round 563 — Symbolic Math
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `symbolic-diff` | :orange_circle: Scaffold | Differentiate |
+| `symbolic-integrate` | :orange_circle: Scaffold | Integrate |
+| `symbolic-simplify` | :orange_circle: Scaffold | Simplify |
+| `symbolic-expand` | :orange_circle: Scaffold | Expand |
+| `symbolic-factor` | :orange_circle: Scaffold | Factor |
+| `symbolic-solve` | :orange_circle: Scaffold | Solve equation |
+| `symbolic-limit` | :orange_circle: Scaffold | Compute limit |
+| `symbolic-series` | :orange_circle: Scaffold | Taylor series |
+| `symbolic-matrix` | :orange_circle: Scaffold | Matrix operations |
+| `symbolic-laplace` | :orange_circle: Scaffold | Laplace transform |
+
+### Round 564 — Tensor Operations
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `tensor-matmul` | :orange_circle: Scaffold | Matrix multiply |
+| `tensor-transpose` | :orange_circle: Scaffold | Transpose |
+| `tensor-reshape` | :orange_circle: Scaffold | Reshape |
+| `tensor-slice` | :orange_circle: Scaffold | Slice |
+| `tensor-broadcast` | :orange_circle: Scaffold | Broadcast |
+| `tensor-einsum` | :orange_circle: Scaffold | Einstein summation |
+| `tensor-conv` | :orange_circle: Scaffold | Convolution |
+| `tensor-pool` | :orange_circle: Scaffold | Pooling |
+| `tensor-norm` | :orange_circle: Scaffold | Normalize |
+| `tensor-svd` | :orange_circle: Scaffold | SVD decomposition |
+
+### Round 565 — Graph Algorithms
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `graph-bfs` | :orange_circle: Scaffold | BFS traversal |
+| `graph-dfs` | :orange_circle: Scaffold | DFS traversal |
+| `graph-dijkstra` | :orange_circle: Scaffold | Dijkstra shortest path |
+| `graph-bellman-ford` | :orange_circle: Scaffold | Bellman-Ford |
+| `graph-floyd` | :orange_circle: Scaffold | Floyd-Warshall |
+| `graph-kruskal` | :orange_circle: Scaffold | Kruskal MST |
+| `graph-prim` | :orange_circle: Scaffold | Prim MST |
+| `graph-topo-sort` | :orange_circle: Scaffold | Topological sort |
+| `graph-scc` | :orange_circle: Scaffold | Strongly connected |
+| `graph-bipartite` | :orange_circle: Scaffold | Bipartite check |
+
+### Round 566 — Distributed Consensus (Raft, Paxos)
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `raft-elect` | :orange_circle: Scaffold | Leader election |
+| `raft-append` | :orange_circle: Scaffold | Append entries |
+| `raft-commit` | :orange_circle: Scaffold | Commit log |
+| `raft-snapshot` | :orange_circle: Scaffold | Snapshot |
+| `raft-membership` | :orange_circle: Scaffold | Membership change |
+| `paxos-propose` | :orange_circle: Scaffold | Propose value |
+| `paxos-accept` | :orange_circle: Scaffold | Accept |
+| `paxos-learn` | :orange_circle: Scaffold | Learn |
+| `paxos-recover` | :orange_circle: Scaffold | Recover |
+| `paxos-multi` | :orange_circle: Scaffold | Multi-Paxos |
+
+### Round 567 — Memory Allocators
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `alloc-slab` | :orange_circle: Scaffold | Slab allocator |
+| `alloc-buddy` | :orange_circle: Scaffold | Buddy system |
+| `alloc-arena` | :orange_circle: Scaffold | Arena allocator |
+| `alloc-pool` | :orange_circle: Scaffold | Pool allocator |
+| `alloc-bump` | :orange_circle: Scaffold | Bump allocator |
+| `alloc-free-list` | :orange_circle: Scaffold | Free list |
+| `alloc-compact` | :orange_circle: Scaffold | Compact heap |
+| `alloc-defrag` | :orange_circle: Scaffold | Defragment |
+| `alloc-profile` | :orange_circle: Scaffold | Profile usage |
+| `alloc-trace` | :orange_circle: Scaffold | Trace allocations |
+
+### Round 568 — Regex Engines (NFA, DFA)
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `regex-parse` | :orange_circle: Scaffold | Parse pattern |
+| `regex-compile-nfa` | :orange_circle: Scaffold | Compile to NFA |
+| `regex-nfa-to-dfa` | :orange_circle: Scaffold | NFA to DFA |
+| `regex-minimize-dfa` | :orange_circle: Scaffold | Minimize DFA |
+| `regex-match` | :orange_circle: Scaffold | Match string |
+| `regex-backtrack` | :orange_circle: Scaffold | Backtrack engine |
+| `regex-capture` | :orange_circle: Scaffold | Capture groups |
+| `regex-lookahead` | :orange_circle: Scaffold | Lookahead |
+| `regex-unicode` | :orange_circle: Scaffold | Unicode properties |
+| `regex-optimize` | :orange_circle: Scaffold | Optimize pattern |
+
+### Round 569 — Type Inference
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `typeinfer-unify` | :orange_circle: Scaffold | Unify types |
+| `typeinfer-generalize` | :orange_circle: Scaffold | Generalize |
+| `typeinfer-instantiate` | :orange_circle: Scaffold | Instantiate |
+| `typeinfer-constrain` | :orange_circle: Scaffold | Add constraint |
+| `typeinfer-solve` | :orange_circle: Scaffold | Solve |
+| `typeinfer-zonk` | :orange_circle: Scaffold | Zonk metavars |
+| `typeinfer-subsume` | :orange_circle: Scaffold | Subsumption |
+| `typeinfer-check` | :orange_circle: Scaffold | Check type |
+| `typeinfer-elaborate` | :orange_circle: Scaffold | Elaborate |
+| `typeinfer-annotate` | :orange_circle: Scaffold | Annotate |
+
+### Round 570 — Garbage Collectors
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `gc-mark` | :orange_circle: Scaffold | Mark phase |
+| `gc-sweep` | :orange_circle: Scaffold | Sweep phase |
+| `gc-compact` | :orange_circle: Scaffold | Compact heap |
+| `gc-generational` | :orange_circle: Scaffold | Generational collect |
+| `gc-incremental` | :orange_circle: Scaffold | Incremental collect |
+| `gc-concurrent` | :orange_circle: Scaffold | Concurrent collect |
+| `gc-reference-count` | :orange_circle: Scaffold | Reference counting |
+| `gc-cycle-detect` | :orange_circle: Scaffold | Cycle detection |
+| `gc-finalize` | :orange_circle: Scaffold | Finalize |
+| `gc-stats` | :orange_circle: Scaffold | Statistics |
+
 ### Round 551 — Control Systems (PID, LQR, Kalman)
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 3e85458..d082c10 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -34158,3 +34158,59 @@
 (def (cmd-additive-synth app) (let* ((echo (app-state-echo app))) (echo-message! echo "Synth: additive")))
 (def (cmd-granular-synth app) (let* ((echo (app-state-echo app))) (echo-message! echo "Synth: granular")))
 (def (cmd-vocoder-process app) (let* ((echo (app-state-echo app))) (echo-message! echo "Synth: vocoder")))
+
+;; Round 562: Constraint Solving (CSP, Backtracking)
+(def (cmd-constraint-propagate app) (let* ((echo (app-state-echo app))) (echo-message! echo "CSP: propagate constraints")))
+(def (cmd-constraint-backtrack app) (let* ((echo (app-state-echo app))) (echo-message! echo "CSP: backtrack search")))
+(def (cmd-constraint-arc-consistency app) (let* ((echo (app-state-echo app))) (echo-message! echo "CSP: arc consistency")))
+(def (cmd-constraint-alldiff app) (let* ((echo (app-state-echo app))) (echo-message! echo "CSP: all-different")))
+(def (cmd-constraint-optimize app) (let* ((echo (app-state-echo app))) (echo-message! echo "CSP: optimize")))
+(def (cmd-constraint-relax app) (let* ((echo (app-state-echo app))) (echo-message! echo "CSP: relax constraint")))
+(def (cmd-constraint-domain app) (let* ((echo (app-state-echo app))) (echo-message! echo "CSP: reduce domain")))
+(def (cmd-constraint-label app) (let* ((echo (app-state-echo app))) (echo-message! echo "CSP: labeling")))
+(def (cmd-constraint-reify app) (let* ((echo (app-state-echo app))) (echo-message! echo "CSP: reify constraint")))
+(def (cmd-constraint-global app) (let* ((echo (app-state-echo app))) (echo-message! echo "CSP: global constraint")))
+;; Round 564: Tensor Operations (MatMul, Conv, SVD)
+(def (cmd-tensor-matmul app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tensor: matrix multiply")))
+(def (cmd-tensor-transpose app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tensor: transpose")))
+(def (cmd-tensor-reshape app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tensor: reshape")))
+(def (cmd-tensor-slice app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tensor: slice")))
+(def (cmd-tensor-broadcast app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tensor: broadcast")))
+(def (cmd-tensor-einsum app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tensor: einsum")))
+(def (cmd-tensor-conv app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tensor: convolution")))
+(def (cmd-tensor-pool app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tensor: pooling")))
+(def (cmd-tensor-norm app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tensor: normalize")))
+(def (cmd-tensor-svd app) (let* ((echo (app-state-echo app))) (echo-message! echo "Tensor: SVD decompose")))
+;; Round 566: Distributed Consensus (Raft, Paxos)
+(def (cmd-raft-elect app) (let* ((echo (app-state-echo app))) (echo-message! echo "Raft: leader election")))
+(def (cmd-raft-append app) (let* ((echo (app-state-echo app))) (echo-message! echo "Raft: append entries")))
+(def (cmd-raft-commit app) (let* ((echo (app-state-echo app))) (echo-message! echo "Raft: commit log")))
+(def (cmd-raft-snapshot app) (let* ((echo (app-state-echo app))) (echo-message! echo "Raft: snapshot")))
+(def (cmd-raft-membership app) (let* ((echo (app-state-echo app))) (echo-message! echo "Raft: membership change")))
+(def (cmd-paxos-propose app) (let* ((echo (app-state-echo app))) (echo-message! echo "Paxos: propose value")))
+(def (cmd-paxos-accept app) (let* ((echo (app-state-echo app))) (echo-message! echo "Paxos: accept")))
+(def (cmd-paxos-learn app) (let* ((echo (app-state-echo app))) (echo-message! echo "Paxos: learn")))
+(def (cmd-paxos-recover app) (let* ((echo (app-state-echo app))) (echo-message! echo "Paxos: recover")))
+(def (cmd-paxos-multi app) (let* ((echo (app-state-echo app))) (echo-message! echo "Paxos: multi-Paxos")))
+;; Round 568: Regex Engines (NFA, DFA, Backtracking)
+(def (cmd-regex-parse app) (let* ((echo (app-state-echo app))) (echo-message! echo "Regex: parse pattern")))
+(def (cmd-regex-compile-nfa app) (let* ((echo (app-state-echo app))) (echo-message! echo "Regex: compile to NFA")))
+(def (cmd-regex-nfa-to-dfa app) (let* ((echo (app-state-echo app))) (echo-message! echo "Regex: NFA to DFA")))
+(def (cmd-regex-minimize-dfa app) (let* ((echo (app-state-echo app))) (echo-message! echo "Regex: minimize DFA")))
+(def (cmd-regex-match app) (let* ((echo (app-state-echo app))) (echo-message! echo "Regex: match string")))
+(def (cmd-regex-backtrack app) (let* ((echo (app-state-echo app))) (echo-message! echo "Regex: backtrack engine")))
+(def (cmd-regex-capture app) (let* ((echo (app-state-echo app))) (echo-message! echo "Regex: capture groups")))
+(def (cmd-regex-lookahead app) (let* ((echo (app-state-echo app))) (echo-message! echo "Regex: lookahead")))
+(def (cmd-regex-unicode app) (let* ((echo (app-state-echo app))) (echo-message! echo "Regex: Unicode properties")))
+(def (cmd-regex-optimize app) (let* ((echo (app-state-echo app))) (echo-message! echo "Regex: optimize pattern")))
+;; Round 570: Garbage Collectors (Mark-Sweep, Generational)
+(def (cmd-gc-mark app) (let* ((echo (app-state-echo app))) (echo-message! echo "GC: mark phase")))
+(def (cmd-gc-sweep app) (let* ((echo (app-state-echo app))) (echo-message! echo "GC: sweep phase")))
+(def (cmd-gc-compact app) (let* ((echo (app-state-echo app))) (echo-message! echo "GC: compact heap")))
+(def (cmd-gc-generational app) (let* ((echo (app-state-echo app))) (echo-message! echo "GC: generational collect")))
+(def (cmd-gc-incremental app) (let* ((echo (app-state-echo app))) (echo-message! echo "GC: incremental collect")))
+(def (cmd-gc-concurrent app) (let* ((echo (app-state-echo app))) (echo-message! echo "GC: concurrent collect")))
+(def (cmd-gc-reference-count app) (let* ((echo (app-state-echo app))) (echo-message! echo "GC: reference counting")))
+(def (cmd-gc-cycle-detect app) (let* ((echo (app-state-echo app))) (echo-message! echo "GC: cycle detection")))
+(def (cmd-gc-finalize app) (let* ((echo (app-state-echo app))) (echo-message! echo "GC: finalize")))
+(def (cmd-gc-stats app) (let* ((echo (app-state-echo app))) (echo-message! echo "GC: statistics")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index acce18e..7dddcbb 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -33382,3 +33382,59 @@
 (def (cmd-deltaE-compute app) (let* ((echo (app-state-echo app))) (echo-message! echo "Color: deltaE compute")))
 (def (cmd-spectral-render app) (let* ((echo (app-state-echo app))) (echo-message! echo "Color: spectral render")))
 (def (cmd-color-blind-sim app) (let* ((echo (app-state-echo app))) (echo-message! echo "Color: color blindness sim")))
+
+;; Round 561: Ray Marching / SDF
+(def (cmd-sdf-sphere app) (let* ((echo (app-state-echo app))) (echo-message! echo "SDF: sphere primitive")))
+(def (cmd-sdf-box app) (let* ((echo (app-state-echo app))) (echo-message! echo "SDF: box primitive")))
+(def (cmd-sdf-union app) (let* ((echo (app-state-echo app))) (echo-message! echo "SDF: union")))
+(def (cmd-sdf-subtract app) (let* ((echo (app-state-echo app))) (echo-message! echo "SDF: subtract")))
+(def (cmd-sdf-intersect app) (let* ((echo (app-state-echo app))) (echo-message! echo "SDF: intersect")))
+(def (cmd-raymarch-step app) (let* ((echo (app-state-echo app))) (echo-message! echo "Raymarch: step")))
+(def (cmd-raymarch-render app) (let* ((echo (app-state-echo app))) (echo-message! echo "Raymarch: render")))
+(def (cmd-raymarch-shadow app) (let* ((echo (app-state-echo app))) (echo-message! echo "Raymarch: shadow")))
+(def (cmd-raymarch-ao app) (let* ((echo (app-state-echo app))) (echo-message! echo "Raymarch: ambient occlusion")))
+(def (cmd-raymarch-normal app) (let* ((echo (app-state-echo app))) (echo-message! echo "Raymarch: normal estimation")))
+;; Round 563: Symbolic Math (Differentiation, Integration)
+(def (cmd-symbolic-diff app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symbolic: differentiate")))
+(def (cmd-symbolic-integrate app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symbolic: integrate")))
+(def (cmd-symbolic-simplify app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symbolic: simplify")))
+(def (cmd-symbolic-expand app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symbolic: expand")))
+(def (cmd-symbolic-factor app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symbolic: factor")))
+(def (cmd-symbolic-solve app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symbolic: solve equation")))
+(def (cmd-symbolic-limit app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symbolic: compute limit")))
+(def (cmd-symbolic-series app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symbolic: Taylor series")))
+(def (cmd-symbolic-matrix app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symbolic: matrix ops")))
+(def (cmd-symbolic-laplace app) (let* ((echo (app-state-echo app))) (echo-message! echo "Symbolic: Laplace transform")))
+;; Round 565: Graph Algorithms (BFS, DFS, Dijkstra, MST)
+(def (cmd-graph-bfs app) (let* ((echo (app-state-echo app))) (echo-message! echo "Graph: BFS traversal")))
+(def (cmd-graph-dfs app) (let* ((echo (app-state-echo app))) (echo-message! echo "Graph: DFS traversal")))
+(def (cmd-graph-dijkstra app) (let* ((echo (app-state-echo app))) (echo-message! echo "Graph: Dijkstra shortest path")))
+(def (cmd-graph-bellman-ford app) (let* ((echo (app-state-echo app))) (echo-message! echo "Graph: Bellman-Ford")))
+(def (cmd-graph-floyd app) (let* ((echo (app-state-echo app))) (echo-message! echo "Graph: Floyd-Warshall")))
+(def (cmd-graph-kruskal app) (let* ((echo (app-state-echo app))) (echo-message! echo "Graph: Kruskal MST")))
+(def (cmd-graph-prim app) (let* ((echo (app-state-echo app))) (echo-message! echo "Graph: Prim MST")))
+(def (cmd-graph-topo-sort app) (let* ((echo (app-state-echo app))) (echo-message! echo "Graph: topological sort")))
+(def (cmd-graph-scc app) (let* ((echo (app-state-echo app))) (echo-message! echo "Graph: strongly connected")))
+(def (cmd-graph-bipartite app) (let* ((echo (app-state-echo app))) (echo-message! echo "Graph: bipartite check")))
+;; Round 567: Memory Allocators (Slab, Buddy, Arena)
+(def (cmd-alloc-slab app) (let* ((echo (app-state-echo app))) (echo-message! echo "Alloc: slab allocator")))
+(def (cmd-alloc-buddy app) (let* ((echo (app-state-echo app))) (echo-message! echo "Alloc: buddy system")))
+(def (cmd-alloc-arena app) (let* ((echo (app-state-echo app))) (echo-message! echo "Alloc: arena allocator")))
+(def (cmd-alloc-pool app) (let* ((echo (app-state-echo app))) (echo-message! echo "Alloc: pool allocator")))
+(def (cmd-alloc-bump app) (let* ((echo (app-state-echo app))) (echo-message! echo "Alloc: bump allocator")))
+(def (cmd-alloc-free-list app) (let* ((echo (app-state-echo app))) (echo-message! echo "Alloc: free list")))
+(def (cmd-alloc-compact app) (let* ((echo (app-state-echo app))) (echo-message! echo "Alloc: compact heap")))
+(def (cmd-alloc-defrag app) (let* ((echo (app-state-echo app))) (echo-message! echo "Alloc: defragment")))
+(def (cmd-alloc-profile app) (let* ((echo (app-state-echo app))) (echo-message! echo "Alloc: profile usage")))
+(def (cmd-alloc-trace app) (let* ((echo (app-state-echo app))) (echo-message! echo "Alloc: trace allocations")))
+;; Round 569: Type Inference (Unification, Generalization)
+(def (cmd-typeinfer-unify app) (let* ((echo (app-state-echo app))) (echo-message! echo "TypeInfer: unify types")))
+(def (cmd-typeinfer-generalize app) (let* ((echo (app-state-echo app))) (echo-message! echo "TypeInfer: generalize")))
+(def (cmd-typeinfer-instantiate app) (let* ((echo (app-state-echo app))) (echo-message! echo "TypeInfer: instantiate")))
+(def (cmd-typeinfer-constrain app) (let* ((echo (app-state-echo app))) (echo-message! echo "TypeInfer: add constraint")))
+(def (cmd-typeinfer-solve app) (let* ((echo (app-state-echo app))) (echo-message! echo "TypeInfer: solve")))
+(def (cmd-typeinfer-zonk app) (let* ((echo (app-state-echo app))) (echo-message! echo "TypeInfer: zonk metavars")))
+(def (cmd-typeinfer-subsume app) (let* ((echo (app-state-echo app))) (echo-message! echo "TypeInfer: subsumption")))
+(def (cmd-typeinfer-check app) (let* ((echo (app-state-echo app))) (echo-message! echo "TypeInfer: check type")))
+(def (cmd-typeinfer-elaborate app) (let* ((echo (app-state-echo app))) (echo-message! echo "TypeInfer: elaborate")))
+(def (cmd-typeinfer-annotate app) (let* ((echo (app-state-echo app))) (echo-message! echo "TypeInfer: annotate")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 26b8bca..d72ff00 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -12863,4 +12863,35 @@
   ;; Round 560: Audio Synthesis
   (register-command! 'synth-oscillator cmd-synth-oscillator) (register-command! 'synth-envelope cmd-synth-envelope) (register-command! 'synth-filter cmd-synth-filter) (register-command! 'synth-lfo cmd-synth-lfo) (register-command! 'synth-wavetable cmd-synth-wavetable)
   (register-command! 'fm-synthesis cmd-fm-synthesis) (register-command! 'am-synthesis cmd-am-synthesis) (register-command! 'additive-synth cmd-additive-synth) (register-command! 'granular-synth cmd-granular-synth) (register-command! 'vocoder-process cmd-vocoder-process)
+
+  ;; Round 561: Ray Marching / SDF
+  (register-command! 'sdf-sphere cmd-sdf-sphere) (register-command! 'sdf-box cmd-sdf-box) (register-command! 'sdf-union cmd-sdf-union) (register-command! 'sdf-subtract cmd-sdf-subtract) (register-command! 'sdf-intersect cmd-sdf-intersect)
+  (register-command! 'raymarch-step cmd-raymarch-step) (register-command! 'raymarch-render cmd-raymarch-render) (register-command! 'raymarch-shadow cmd-raymarch-shadow) (register-command! 'raymarch-ao cmd-raymarch-ao) (register-command! 'raymarch-normal cmd-raymarch-normal)
+  ;; Round 562: Constraint Solving
+  (register-command! 'constraint-propagate cmd-constraint-propagate) (register-command! 'constraint-backtrack cmd-constraint-backtrack) (register-command! 'constraint-arc-consistency cmd-constraint-arc-consistency) (register-command! 'constraint-alldiff cmd-constraint-alldiff) (register-command! 'constraint-optimize cmd-constraint-optimize)
+  (register-command! 'constraint-relax cmd-constraint-relax) (register-command! 'constraint-domain cmd-constraint-domain) (register-command! 'constraint-label cmd-constraint-label) (register-command! 'constraint-reify cmd-constraint-reify) (register-command! 'constraint-global cmd-constraint-global)
+  ;; Round 563: Symbolic Math
+  (register-command! 'symbolic-diff cmd-symbolic-diff) (register-command! 'symbolic-integrate cmd-symbolic-integrate) (register-command! 'symbolic-simplify cmd-symbolic-simplify) (register-command! 'symbolic-expand cmd-symbolic-expand) (register-command! 'symbolic-factor cmd-symbolic-factor)
+  (register-command! 'symbolic-solve cmd-symbolic-solve) (register-command! 'symbolic-limit cmd-symbolic-limit) (register-command! 'symbolic-series cmd-symbolic-series) (register-command! 'symbolic-matrix cmd-symbolic-matrix) (register-command! 'symbolic-laplace cmd-symbolic-laplace)
+  ;; Round 564: Tensor Operations
+  (register-command! 'tensor-matmul cmd-tensor-matmul) (register-command! 'tensor-transpose cmd-tensor-transpose) (register-command! 'tensor-reshape cmd-tensor-reshape) (register-command! 'tensor-slice cmd-tensor-slice) (register-command! 'tensor-broadcast cmd-tensor-broadcast)
+  (register-command! 'tensor-einsum cmd-tensor-einsum) (register-command! 'tensor-conv cmd-tensor-conv) (register-command! 'tensor-pool cmd-tensor-pool) (register-command! 'tensor-norm cmd-tensor-norm) (register-command! 'tensor-svd cmd-tensor-svd)
+  ;; Round 565: Graph Algorithms
+  (register-command! 'graph-bfs cmd-graph-bfs) (register-command! 'graph-dfs cmd-graph-dfs) (register-command! 'graph-dijkstra cmd-graph-dijkstra) (register-command! 'graph-bellman-ford cmd-graph-bellman-ford) (register-command! 'graph-floyd cmd-graph-floyd)
+  (register-command! 'graph-kruskal cmd-graph-kruskal) (register-command! 'graph-prim cmd-graph-prim) (register-command! 'graph-topo-sort cmd-graph-topo-sort) (register-command! 'graph-scc cmd-graph-scc) (register-command! 'graph-bipartite cmd-graph-bipartite)
+  ;; Round 566: Distributed Consensus
+  (register-command! 'raft-elect cmd-raft-elect) (register-command! 'raft-append cmd-raft-append) (register-command! 'raft-commit cmd-raft-commit) (register-command! 'raft-snapshot cmd-raft-snapshot) (register-command! 'raft-membership cmd-raft-membership)
+  (register-command! 'paxos-propose cmd-paxos-propose) (register-command! 'paxos-accept cmd-paxos-accept) (register-command! 'paxos-learn cmd-paxos-learn) (register-command! 'paxos-recover cmd-paxos-recover) (register-command! 'paxos-multi cmd-paxos-multi)
+  ;; Round 567: Memory Allocators
+  (register-command! 'alloc-slab cmd-alloc-slab) (register-command! 'alloc-buddy cmd-alloc-buddy) (register-command! 'alloc-arena cmd-alloc-arena) (register-command! 'alloc-pool cmd-alloc-pool) (register-command! 'alloc-bump cmd-alloc-bump)
+  (register-command! 'alloc-free-list cmd-alloc-free-list) (register-command! 'alloc-compact cmd-alloc-compact) (register-command! 'alloc-defrag cmd-alloc-defrag) (register-command! 'alloc-profile cmd-alloc-profile) (register-command! 'alloc-trace cmd-alloc-trace)
+  ;; Round 568: Regex Engines
+  (register-command! 'regex-parse cmd-regex-parse) (register-command! 'regex-compile-nfa cmd-regex-compile-nfa) (register-command! 'regex-nfa-to-dfa cmd-regex-nfa-to-dfa) (register-command! 'regex-minimize-dfa cmd-regex-minimize-dfa) (register-command! 'regex-match cmd-regex-match)
+  (register-command! 'regex-backtrack cmd-regex-backtrack) (register-command! 'regex-capture cmd-regex-capture) (register-command! 'regex-lookahead cmd-regex-lookahead) (register-command! 'regex-unicode cmd-regex-unicode) (register-command! 'regex-optimize cmd-regex-optimize)
+  ;; Round 569: Type Inference
+  (register-command! 'typeinfer-unify cmd-typeinfer-unify) (register-command! 'typeinfer-generalize cmd-typeinfer-generalize) (register-command! 'typeinfer-instantiate cmd-typeinfer-instantiate) (register-command! 'typeinfer-constrain cmd-typeinfer-constrain) (register-command! 'typeinfer-solve cmd-typeinfer-solve)
+  (register-command! 'typeinfer-zonk cmd-typeinfer-zonk) (register-command! 'typeinfer-subsume cmd-typeinfer-subsume) (register-command! 'typeinfer-check cmd-typeinfer-check) (register-command! 'typeinfer-elaborate cmd-typeinfer-elaborate) (register-command! 'typeinfer-annotate cmd-typeinfer-annotate)
+  ;; Round 570: Garbage Collectors
+  (register-command! 'gc-mark cmd-gc-mark) (register-command! 'gc-sweep cmd-gc-sweep) (register-command! 'gc-compact cmd-gc-compact) (register-command! 'gc-generational cmd-gc-generational) (register-command! 'gc-incremental cmd-gc-incremental)
+  (register-command! 'gc-concurrent cmd-gc-concurrent) (register-command! 'gc-reference-count cmd-gc-reference-count) (register-command! 'gc-cycle-detect cmd-gc-cycle-detect) (register-command! 'gc-finalize cmd-gc-finalize) (register-command! 'gc-stats cmd-gc-stats)
 )