give iota range a difference type that represents infinity, fix RandomAccessIterator concept