import org.checkerframework.checker.nullness.qual.*; class Super<S extends @Nullable Object> { public void m(S p) {} } class Impl1<T extends @NonNull Object> extends Super<T> { public void m(T p) {} } class Impl2<T> extends Super<T> { public void m(T p) {} }