Represents whether some type is inhabited in a given context.
Examples of uninhabited types are !, enum Void {}, or a struct
containing either of those types.
A typeโs inhabitedness may depend on the ParamEnv as well as what types
are visible in the current module.