Is type of `Optional<T>.none` the same for any T by design?

This phenomenon also applies to empty collections. Example from @codafi's tweet.

class Animal {}
class Cat: Animal {}
class Dog: Animal {}

print(Dog() is Cat)     // false
print(Cat() is Dog)     // false
print([Cat]() is [Dog]) // true
print([Dog]() is [Cat]) // true
5 Likes