code: public static <G extends Gene<?, G>, T, V extends Vec<T>>
  	Collector<EvolutionResult<G, V>, ?, ISeq<Phenotype<G, V>>>
  	toParetoSet(final IntRange size) {
  		return toParetoSet(
  			size,
  			Vec<T>::dominance,
  			Vec<T>::compare,
  			Vec<T>::distance,
  			Vec<T>::length
  		);
  	}
docs: Collector of {@link Phenotype} objects, who's (multi-objective) fitness
  value is part of the <a href="https://en.wikipedia.org/wiki/Pareto_efficiency">
  pareto front</a>.
  
  @param size the allowed size range of the returned pareto set. If the
  size of the pareto set is bigger than {@code size.getMax()},
  during the collection, it is reduced to {@code size.getMin()}.
  Pareto set elements which are close to each other are removed firsts.
  @param <G> the gene type
  @param <T> the array type, e.g. {@code double[]}
  @param <V> the multi object result type vector
  @return the pareto set collector
  @throws NullPointerException if one the {@code size} is {@code null}
  @throws IllegalArgumentException if the minimal pareto set {@code size}
  is smaller than one