code: public <R, E extends Exception> List<R> scan(final R init, final Try.BiFunction<? super R, ? super T, R, E> accumulator) throws E {
          return scan(init, accumulator, false);
      }
docs: Returns a {@code Stream} produced by iterative application of a accumulation function
  to an initial element {@code identity} and next element of the current stream.
  Produces a {@code Stream} consisting of {@code identity}, {@code acc(identity, value1)},
  {@code acc(acc(identity, value1), value2)}, etc.
  
  <p>Example:
  <pre>
  <code>
  Seq.of(new Integer[0]).scan(10, (a, b) -> a + b) => []
  Seq.of(1).scan(10, (a, b) -> a + b) => [11]
  Seq.of(1, 2).scan(10, (a, b) -> a + b) => [11, 13]
  Seq.of(1, 2, 3).scan(10, (a, b) -> a + b) => [11, 13, 16]
  Seq.of(1, 2, 3, 3, 2, 1).scan(10, (a, b) -> a + b) => [11, 13, 16, 19, 21, 22]
  </code>
  </pre>
  
  @param init the initial value. it's only used once by <code>accumulator</code> to calculate the fist element in the returned stream.
  It will be ignored if this stream is empty and won't be the first element of the returned stream.
  
  @param accumulator the accumulation function
  @return