public static <GItem extends Comparable<? super GItem>> GItem minItem(final Iterable<? extends GItem> items) {
		final Iterator<? extends GItem> iterator = Iterators.iterator(items);
		if (!iterator.hasNext()) return null;
		GItem result = iterator.next();
		while (iterator.hasNext()) {
			final GItem item = iterator.next();
			if (item.compareTo(result) < 0) {
				result = item;
			}
		}
		return result;
	}