code: public static <T> CompletableFuture<T> accumulate(final Monoid<T> reducer, final IterableX<CompletableFuture<T>> fts
             ) {
          return sequence(fts).thenApply(s -> s
                                               .reduce(reducer));
      }
docs: Asynchronously accumulate the results only from the provided Futures,
  reducing them using the supplied Monoid (a combining BiFunction/BinaryOperator and identity element that takes two
  input values of the same type and returns the combined result) {@see cyclops2.Monoids }.
  
  A single Failure results in a Failed  Future.
  
  <pre>
  {@code
  CompletableFuture<Integer> just =CompletableFuture.completedFuture(10);
  
  CompletableFuture<Integer> future =CompletableFutures.accumulate(Monoids.intSum,Seq.of(just,CompletableFuture.completableFuture(1)));
  CompletableFuture[11]
  }
  </pre>
  
  
  @param fts Collection of Futures to accumulate successes
  @param reducer Monoid to combine values from each Future
  @return CompletableFuture asynchronously populated with the accumulate operation