code: public static <T, R> Optional<R> accumulatePresent(final IterableX<Optional<T>> optionals, final Reducer<R,T> reducer) {
          return sequencePresent(optionals).map(s -> s.foldMap(reducer));
      }
docs: Accummulating operation using the supplied Reducer (@see cyclops2.Reducers). A typical use case is to accumulate into a Persistent Collection type.
  Accumulates the present results, ignores zero Optionals.
  
  <pre>
  {@code
  Optional<Integer> just = Optional.of(10);
  Optional<Integer> none = Optional.zero();
  
  Optional<PersistentSetX<Integer>> opts = Optional.accumulateJust(Seq.of(just, none, Optional.of(1)), Reducers.toPersistentSetX());
  Optional.of(PersistentSetX.of(10, 1)));
  
  }
  </pre>
  
  @param optionals Optionals to accumulate
  @param reducer Reducer to accumulate values with
  @return Optional with reduced value