code: public EntryStream<T, T> withFirst() {
          WithFirstSpliterator<T, Entry<T, T>> spliterator = new WithFirstSpliterator<>(spliterator(),
                  SimpleImmutableEntry::new);
          return new EntryStream<>(spliterator, context);
      }
docs: Creates an {@link EntryStream} consisting of the {@link Entry} objects
  which keys are all the same and equal to the first element of this stream
  and values are the rest elements of this stream.
  
  <p>
  This is a <a href="package-summary.html#StreamOps">quasi-intermediate
  operation</a>.
  
  <p>
  The size of the resulting stream is one element less than the input
  stream. If the input stream is empty or contains just one element, then
  the output stream will be empty.
  
  @return the new stream
  @see #withFirst(BiFunction)
  @see #headTail(BiFunction)
  @since 0.5.3