code: public static <T, R> CompletableFuture<R> accumulate(final IterableX<CompletableFuture<T>> fts, final Reducer<R,T> reducer) {
          return sequence(fts).thenApply(s -> s.foldMap(reducer));
      }
docs: Asynchronously accumulate the results of Futures, a single failure will cause a failed result, using the supplied Reducer {@see cyclops2.Reducers}
  <pre>
  {@code
  
  CompletableFuture<Integer> just =CompletableFuture.completedFuture(10);
  CompletableFuture<Integer> none = Future.ofError(new NoSuchElementException()).getFuture();
  
  CompletableFuture<PersistentSetX<Integer>> futures = CompletableFutures.accumulateSuccess(Seq.of(just,none,CompletableFuture.completedFuture(1)),Reducers.toPersistentSetX());
  
  CompletableFuture[PersistentSetX[10,1]]
  }
  </pre>
  
  @param fts Collection of Futures to accumulate successes
  @param reducer Reducer to accumulate results
  @return Future asynchronously populated with the accumulate success operation