@codefolio This smells like a static-type-only thing, but applies to dyn langs too. In Ruby, for example, we use access patterns for NilClass as if it’s either a subtype or union type; the lang could choose to have a Optional class where the access patterns for a Foo don’t work for an Optional that might contain a Foo. (Not clear how you’d achieve all the sugar Swift does.) However… 3/