Block scope vs. function scope of variables

Mojo’s ASAP destruction policy already guarantees that a value is destroyed after its last use, regardless of the scope. In that sense I do not see how smaller scopes help optimizing.

I do see the point of discomfort with var not being enforced but also the point of Python compatibility and easier scripting.

Maybe a good middle ground for now would be to add a compiler argument --enforce-var (or --warn-on-missing-var) so that people building complex software can spot their potential bugs, and others can keep scripting.