code: public Spliterator<E> spliterator() {
          return (m instanceof ConcurrentSkipListMap)
              ? ((ConcurrentSkipListMap<E,?>)m).keySpliterator()
              : ((ConcurrentSkipListMap.SubMap<E,?>)m).new SubMapKeyIterator();
      }
docs: Returns a {@link Spliterator} over the elements in this set.
  
  <p>The {@code Spliterator} reports {@link Spliterator#CONCURRENT},
  {@link Spliterator#NONNULL}, {@link Spliterator#DISTINCT},
  {@link Spliterator#SORTED} and {@link Spliterator#ORDERED}, with an
  encounter order that is ascending order.  Overriding implementations
  should document the reporting of additional characteristic values.
  
  <p>The spliterator's comparator (see
  {@link java.util.Spliterator#getComparator()}) is {@code null} if
  the set's comparator (see {@link #comparator()}) is {@code null}.
  Otherwise, the spliterator's comparator is the same as or imposes the
  same total ordering as the set's comparator.
  
  @return a {@code Spliterator} over the elements in this set
  @since 1.8