docs: public static <T extends Comparable<T>> Optional<Range<T>> span(Iterable<Range<T>> ranges) {
      final Iterator<Range<T>> it = ranges.iterator();
      if (it.hasNext()) {
        Range<T> ret = it.next();
        while (it.hasNext()) {
          ret = ret.span(it.next());
        }
        return Optional.of(ret);
      } else {
        return Optional.absent();
      }
    }