Is in the prelude, so always available. Used where we can return something or none, instead of null. ```rust enum Option { None Some(T) } ``` This enables the compiler to check whether we handle both cases. Why? ```rust fn do_something(int: i32, nope: bool) -> Option { if (nope) { return None } return Some(int * 2) } ``` The concrete return type is either `None` or `Some`: so if the called would for example do `1 + do_something(2, false);` would not compile because the return type is not an i32. Unlike for example PHP where it's `?int` so either `null` or `int` the compiler can't check this.