Mut — the value may be changed immut — it may not no_shadow — the name may not be shadowed; it means this variable all the way down Shadowing (shadow 'a' := …) makes a new…
sealed.zg
# Three separate promises (owner, 2026-09-25):# mut — the value may be changed immut — it may not# no_shadow — the name may not be shadowed; it means this variable all the way down# Shadowing (`shadow 'a' := …`) makes a new variable under the old name, so it needs no `mut`.MAIN{letimmut'a':=1;shadow'a':=2;# an immut can be shadowed: nothing is changedlet'b':=3;# no word: it may not change eitherletno_shadowmut'total':=0;# changeable, and 'total' always means this onechange'total'='total'plus'a'plus'b';std::print.useful['a'," ",'b'," ",'total',newln];}