# Iterator on ranges.
private class DowntoIteratorRange[E: Discrete]
	super IndexedIterator[E]
	var range: Range[E]
	redef var item is noinit
	redef fun index do return _item.distance(_range.first)
	redef fun is_ok do return _item >= _range.last
	redef fun next do _item = _item.predecessor(1)
	init
	do
		_item = _range.first
	end
end
					lib/core/collection/range.nit:223,1--238,3