Why do I need rebinding/shadowing when I can have mutable variable binding? : <p>Why do I need rebinding/shadowing when I can have mutable variable binding? Consider:</p>

<pre><code>let x = a();
let x = b(x);
</code></pre>

<p>vs.</p>

<pre><code>let mut x = a();
x = b(x);
</code></pre>

<p>Mutable variable binding allows a mutable borrow of that variable over this.
But does shadowing have some advantages over mutable bindings?</p>
