code: public static <T, R> Future<R> accumulate(final Iterable<Future<T>> fts, final Reducer<R,T> reducer) {
          return sequence(fts).map(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
  
  Future<Integer> just =Future.of(CompletableFuture.completedFuture(10));
  Future<Integer> none = Future.ofError(new NoSuchElementException());
  Future<PersistentSetX<Integer>> futures = Future.accumulateSuccess(Seq.of(just,none,Future.ofResult(1)),Reducers.toPersistentSetX());
  
  Future[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