code: @Contract(pure = true)
  	@NotNull
  	public static Promise<Void> all(@NotNull List<? extends Promise<?>> promises) {
  		int size = promises.size();
  		if (size == 0) return Promise.complete();
  		if (size == 1) return promises.get(0).toVoid();
  		if (size == 2) return promises.get(0).both(promises.get(1));
  		return all(promises.iterator());
  	}
docs: Returns a {@code Promise} that completes when
  all of the {@code promises} are completed.