## Why does Sorbet think this is `nil`? I just checked that it's not!| sorbet.org
Sorbet supports sealed classes. Sealed classes restrict who's allowed to subclass a class. This is a considerably advanced feature, but it's also considerably powerful. That being said, if you're already familiar with the concept, here's what the syntax looks like in Sorbet:| sorbet.org
Union types declare that a value either has one type, or some other type. The| sorbet.org
The type `T.untyped` represents a type that Sorbet has no specific knowledge| sorbet.org
| sorbet.org
Sorbet provides the most value when it has a wealth of programmer-supplied| sorbet.org
Sorbet can track when a value is allowed to be `nil`, or when a value of a| sorbet.org
Intersection types are how we overlap two types, declaring that an expression| sorbet.org