code: public Set<T> toImmutableSet() {
          Set<T> result = toSet();
          if (result.size() == 0)
              return Collections.emptySet();
          return Collections.unmodifiableSet(result);
      }
docs: Returns an immutable {@link Set} containing the elements of this stream.
  There's no guarantees on exact type of the returned {@code Set}. In
  particular, no specific element order in the resulting set is guaranteed.
  The returned {@code Set} is guaranteed to be serializable if all its
  elements are serializable.
  
  <p>
  This is a terminal operation.
  
  @return a {@code Set} containing the elements of this stream
  @see #toSet()
  @since 0.6.3