code: public static <T> Future<T> accumulate(final Monoid<T> reducer, final Iterable<Future<T>> fts) {
          return sequence(fts).map(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
  Future<Integer> future =Future.accumulate(Monoids.intSum,Seq.of(just,Future.ofResult(1)));
  Future[11]
  }
  </pre>
  
  
  @param fts Collection of Futures to accumulate successes
  @param reducer Monoid to combine values from each Future
  @return Future asynchronously populated with the accumulate operation