code: public <E extends Exception> OptionalLong reduce(final Try.LongBinaryOperator<E> accumulator) throws E {
          if (isEmpty()) {
              return OptionalLong.empty();
          }
  
          long result = elementData[0];
  
          for (int i = 1; i < size; i++) {
              result = accumulator.applyAsLong(result, elementData[i]);
          }
  
          return OptionalLong.of(result);
      }
docs: This is equivalent to:
  <pre>
  <code>
  if (isEmpty()) {
  return OptionalLong.empty();
  }
  
  long result = elementData[0];
  
  for (int i = 1; i < size; i++) {
  result = accumulator.applyAsLong(result, elementData[i]);
  }
  
  return OptionalLong.of(result);
  </code>
  </pre>
  
  @param accumulator
  @return