Generation (@NotNull Differ differ, @NotNull Generation previous) { final int parentKind = previous.reduceToSize(differ, (int)(0.2 * previous.myGensPool.size())); return previous.tryAgain() ? new Generation(previous, parentKind) : previous; }