Property definitions

combinations $ CombinationIterator :: reset_iterator
	fun reset_iterator(rank: Int): Iterator[E]
	do
		var it = product.collection.iterator
		iterators[rank] = it
		var skip = 0

		if (not are_sorted and not are_unique) or rank == 0 then
			# DO NOTHING
		else if are_sorted and are_unique then
			skip = indices[rank-1] + 1
		else if are_sorted then
			skip = indices[rank-1]
		else
			skip = next_free(rank, 0)
		end

		for i in [0..skip[ do it.next
		indices[rank] = skip
		if not it.is_ok then is_ok = false
		return it
	end
lib/combinations/combinations.nit:391,2--411,4