code: public static <T> Sequence<T> wrap(Sequence<T> seq, SequenceWrapper wrapper)
    {
      Preconditions.checkNotNull(seq, "seq");
      Preconditions.checkNotNull(wrapper, "wrapper");
      return new WrappingSequence<>(seq, wrapper);
    }
docs: Allows to execute something before, after or around the processing of the given sequence. See documentation to
  {@link SequenceWrapper} methods for some details.