code: public static <T> T min(Iterator<T> self, @ClosureParams(value=FromString.class, options={"T","T,T"}) Closure closure) {
          return min((Iterable<T>)toList(self), closure);
      }
docs: Selects the minimum value found from the Iterator
  using the closure to determine the correct ordering.
  The iterator will become
  exhausted of elements after this operation.
  <p>
  If the closure has two parameters
  it is used like a traditional Comparator. I.e. it should compare
  its two parameters for order, returning a negative integer,
  zero, or a positive integer when the first parameter is less than,
  equal to, or greater than the second respectively. Otherwise,
  the Closure is assumed to take a single parameter and return a
  Comparable (typically an Integer) which is then used for
  further comparison.
  
  @param self    an Iterator
  @param closure a Closure used to determine the correct ordering
  @return the minimum value
  @see #min(java.util.Collection, groovy.lang.Closure)
  @since 1.5.5