Rust-style variable shadowing

@lkowarschick I forgot to mention that I really like how you organized the idea.
Here’s some related discussion I found after googling around for more info after finding the standard Rust doc on it pretty short: https://www.reddit.com/r/rust/comments/2cho4g/why_does_rust_need_local_variable_shadowing/