So you are really looking for compiler checks for null?
Kind of like kotlin?
var truthy = null; // Compile fails
var nullable? = null; // Compile passes
You don't need value types for this?
var truthy = null; // Compile fails
var nullable? = null; // Compile passes
You don't need value types for this?
Additionally, the type is also lighter weight than an Object and should be stack allocated, so there are memory advantages to not having to use boxed types as well.