Nil type
Nil is typically used to represent the lack of a value.
It uses no memory at runtime.
Union types with a nil initialize to nil.
Nil is a regular type. You can use it to create your own named types.
Comparing against nil type.
Asserting a value's type is not nil.
Inside the else statement, the value's type is narrowed to nil. To provide a default value, yield it. After the assertion, the value's type is narrowed to exclude nil.