a19994b8b6
`lowerThanBound()` was renamed to: - draw attention to its corner cases - make its single usage less cryptic We may want to reserve the pretty name for a function that, for example, returns `true` if `argument` suits all the bounds. Similarly, `canHaveSubtypes()` does some questionable logic in case of `INVARIANTxINVARIANT`: some hypothetical `Inv<Foo>` doesn't have subtypes so checking "Foo has subtypes strictly above Nothing || Foo has supertypes strictly below the parameter bounds" doesn't seem correct. `Foo` may have some, but `Inv<them>` are not related to `Inv<Foo>`.