Superb discussion of Go semantics for `for` loop variables, the challenges of breaking changes, and the tradeoffs of static analysis: https://github.com/golang/go/discussions/56010