I am looking for simple syntax that would compare two iterators `itr1`

, `itr2`

for elementwise equality *without collecting*, and break early if there is a difference. MWE:

```
julia> VERSION
v"0.6.0-rc1.0"
julia> all(1:3 .== [1,2,3])
true
julia> all(1:3 .== (i for i in 1:3)) # but I want this to be true
false
```

Note that I know how to implement it, I am looking for simple *syntax*, equivalent to

```
function itreq(itr1, itr2)
for (i1,i2) in zip(itr1, itr2)
i1 == i2 || return false
end
true
end
itreq(1:3, (i for i in 1:3))
```

**EDIT**: I realized I really want something equivalent to `collect(itr1) == collect(itr2)`

, but without `collect`

. Ie different lengths should also return false, so `all(... .== ...)`

is not good.

In case you are wondering, this is just out of curiosity, the code in question has no performance impact. I am validating that a list of Cartesian indexes are really contiguous and in the right order, with a function not unlike

```
function combined_size(indexes)
siz = reduce(max, indexes)
ran = CartesianRange(siz)
# FIXME inelegant collect below
@argcheck collect(indexes) == collect(ran) "Non-contiguous indexes."
siz
end
```