code: public static <N extends Number & Comparable<? super N>>
  	Predicate<EvolutionResult<?, N>> byPopulationConvergence(
  		final BiPredicate<Double, DoubleMoments> proceed
  	) {
  		return new PopulationConvergenceLimit<>(proceed);
  	}
docs: A termination method that stops the evolution when the population is
  deemed as converged. The population is deemed as converged when the
  average fitness across the current population is less than a
  user-specified percentage away from the best fitness of the current
  population. This method takes a predicate with the <em>best</em> fitness
  and the population fitness moments and determine whether to proceed or
  not.
  
  @since 3.9
  
  @param proceed the predicate which determines when the evolution stream
  is truncated. The first parameter of the predicate contains the
  best fitness of the population and the second parameter contains
  the statistics of population fitness values
  @param <N> the fitness type
  @return a new fitness convergence strategy
  @throws NullPointerException if the {@code proceed} predicate is
  {@code null}