public class Test {
    abstract class Base extends IntImpl {
        @Override
        public abstract String<caret> foo();
    }

    class IntImpl extends Int {}

    class Int {
        public abstract String foo();
    }
}
