<p><pre><code>    Incidentally, I don’t know why I can write  
        let (mut word, mut len, mut ones) = (0u32, 0, 0);
    but not
        (word, len, ones) = (0, 0, 0);
</code></pre>
Marking variable declarations with <i>let</i> is a good thing and makes it clear if something is an assignment or a variable declaration. It also leads to cleaner code when you use nested functions (I always hated the &quot;nonlocal&quot; keyword in Python)