public static <T, G extends Gene<?, G>, C extends Comparable<? super C>>
	Evaluator<G, C> completable(
		final Function<? super T, ? extends CompletableFuture<C>> fitness,
		final Function<? super Genotype<G>, ? extends T> decoder
	) {
		return completable(fitness.compose(decoder));
	}
Return a new fitness evaluator, which evaluates <em>asynchronous</em>
fitness functions.

@param fitness the asynchronous fitness function, working on the
       <em>native</em> fitness domain
@param decoder the decoder function for the fitness domain
@param <T> the <em>native</em> fitness domain type
@param <G> the gene type
@param <C> the fitness value type
@return a new (async) fitness evaluator
@throws NullPointerException if one of the arguments is {@code null}
jenetics/src/main/java/io/jenetics/engine/Evaluators.java