The None type represents a type with no value.
It is often used to type code that fails to return control (e.g. an infinite loop)
or to designate impossible values (e.g. the type ?None only contains null).
The empty type. A subtype of all types.
public func impossible<A>(_ : None) : ATurns an absurd value into an arbitrary type.