Challenge 1: Immutable, Then Mutable — Possible Solution ==================================================================== Step 1 — the version that fails to compile: fn main() { let age: u8 = 30; age = 31; println!("Age: {}", age); } THE EXACT COMPILER ERROR (paraphrased from rustc's real message): error[E0384]: cannot assign twice to immutable variable `age` --> src/main.rs:3:5 | 2 | let age: u8 = 30; | --- first assignment to `age` 3 | age = 31; | ^^^^^^^^ cannot assign twice to immutable variable Step 2 — the fix, adding mut: fn main() { let mut age: u8 = 30; age = 31; println!("Age: {}", age); } WHY THIS WORKS AS AN ANSWER ------------------------------ The first version declares age with plain let, which — per this chapter — makes it immutable by default. The second line's reassignment (age = 31) violates that immutability, and rustc catches it at COMPILE time rather than letting the program run and either silently fail or produce undefined behavior. Adding mut to the declaration (let mut age: u8 = 30;) is the only change needed — it explicitly opts age into being reassignable, after which the exact same reassignment line compiles and runs without error, printing "Age: 31".