This example shows how to define a generic enum Option with a type parameter T. We create an instance x of type Option<i32> holding the value Some(5). Then we match on x to check which variant it is. Since x is Some(5), we print the value 5. The execution table traces each step: defining the enum, creating x, matching on x, printing the value, and ending the match. The variable tracker shows how x and val change during execution. Key moments clarify why we use generics, how Rust infers types, and what happens if the enum is None. The quiz tests understanding of variable values and match behavior. This helps beginners see how generic enums work step-by-step in Rust.