Our battle for combining null-safety and Java interop has been a long one already:
we started off treating all Java reference types as nullable, and it was too inconvenient;
then we employed external annotations to specify nullability, created KAnnotator, but the whole thing was too fragile when versioning was concerned, and sometimes the users couldn't do what they needed to (especially when it came to inheritance);
in M9 we discarded the annotations (for the time being), and introduced platform types, now anything could be done, but we lost (some) type-safety;
in M11 we started bringing th