The Sorbet syntax for type annotations representing arrays, hash maps, and other containers defined in the Ruby standard library looks different from other [class types](/docs/class-types) despite the fact that Ruby uses classes to represent these values, too. Here's the syntax Sorbet uses:| sorbet.org
There are two primary metrics that we recommend to track adoption of Sorbet in a codebase:| sorbet.org
## Why does Sorbet think this is `nil`? I just checked that it's not!| sorbet.org
Sorbet is a gradual type checker, which is a blessing and a curse.| sorbet.org
There are five ways to assert the types of expressions in Sorbet:| sorbet.org
This doc will cover how to enable and disable the **static checks** that Sorbet| sorbet.org
| sorbet.org
Sorbet provides the most value when it has a wealth of programmer-supplied| sorbet.org
Sorbet has syntax for creating generic methods, classes, and interfaces.| sorbet.org