code: public static <T> SortedSet<T> dropWhile(SortedSet<T> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure condition) {
          return (SortedSet<T>) dropWhile((Iterable<T>) self, condition);
      }
docs: Returns a suffix of this SortedSet where elements are dropped from the front
  while the given Closure evaluates to true.
  Similar to {@link #dropWhile(Iterable, groovy.lang.Closure)}
  except that it attempts to preserve the type of the original SortedSet.
  <pre class="groovyTestCase">
  def nums = [ 1, 2, 3 ] as SortedSet
  assert nums.dropWhile{ it {@code <} 4 } == [] as SortedSet
  assert nums.dropWhile{ it {@code <} 2 } == [ 2, 3 ] as SortedSet
  assert nums.dropWhile{ it != 3 } == [ 3 ] as SortedSet
  assert nums.dropWhile{ it == 0 } == [ 1, 2, 3 ] as SortedSet
  </pre>
  
  @param self      the original SortedSet
  @param condition the closure that must evaluate to true to continue dropping elements
  @return the shortest suffix of the given SortedSet such that the given closure condition
  evaluates to true for each element dropped from the front of the SortedSet
  @since 2.4.0