Thank you, everyone, for sharing your ideas!!! Personally, I like the non-indented shadowing more. Sure, the block-based approach gives you protection from abusing the feature, but it also forces you to put dependencies of the computation into a block. You, the programmer, should decide if you need a different scope to make your program more logical or safe. The compiler should not force you to have scope when all you want because the language authors think they know better than you ahead of time. Besides, even with the shadowing approach, you can always manually use a block if you want to. Choice is good, you don't paint yourself into a corner.
Regardless, the solutions you all came up with to the block approach were super interesting! Now I am wondering- could the shadowing syntax be implemented with a macro? Likely not, correct?
