a5eebcd5fd
First iteration of the loop-recur milestone: Term::Loop / Term::Recur / LoopBinder as strictly-additive nodes across all six crates' no-wildcard Term matches, parse/print/round-trip, hash-stability + drift anchors. No typecheck semantics (synth stubs CheckError::Internal — iter 2), no real codegen (lower_term stubs CodegenError::Internal — iter 3); both stub points mirror mut.1. Two Boss calls baked into the plan header: (1) verify_tail_positions 'byte-unchanged' = tail-app role unchanged, operationalised via the tail-app IR-snapshot non-regression test (literal source freeze impossible — exhaustive no-wildcard match); (2) codegen is in iter-1 scope as stubs/pass-throughs because the workspace must compile for cargo test --workspace (the iter goal). Recon DONE_WITH_CONCERNS — all three open questions resolved at plan time (Q3: print.rs:352 is a Type match, untouched).