2 Checks for bindings that shadow other bindings already in
3 scope, while reusing the original value.
6 Not too much, in fact it's a common pattern in Rust
7 code. Still, some argue that name shadowing like this hurts readability,
8 because a value may be bound to different things depending on position in
16 use different variable name: