code: public void forPairs(BiConsumer<? super T, ? super T> action) {
          pairMap((a, b) -> {
              action.accept(a, b);
              return null;
          }).reduce(null, selectFirst());
      }
docs: Performs an action for each adjacent pair of elements of this stream.
  
  <p>
  This is a <a href="package-summary.html#StreamOps">terminal</a>
  operation.
  
  <p>
  The behavior of this operation is explicitly non-deterministic. For
  parallel stream pipelines, this operation does <em>not</em> guarantee to
  respect the encounter order of the stream, as doing so would sacrifice
  the benefit of parallelism. For any given element, the action may be
  performed at whatever time and in whatever thread the library chooses. If
  the action accesses shared state, it is responsible for providing the
  required synchronization.
  
  @param action a non-interfering action to perform on the elements
  @since 0.2.2