in src/arraytypes/list.jl [173:198]
@inline function Base.iterate(A::ToList{T,stringtype}) where {T,stringtype}
length(A) == 0 && return nothing
i = 1
chunk = 2
chunk_i = 1
chunk_len = A.inds[chunk]
while i > chunk_len
chunk += 1
chunk_len = A.inds[chunk]
end
val = A.data[chunk - 1]
x = stringtype ? _codeunits(val)[1] : val[1]
i += 1
if i > chunk_len
while true
chunk += 1
chunk > length(A.inds) && break
chunk_len = A.inds[chunk]
i <= chunk_len && break
end
else
chunk_i += 1
end
return x, (i, chunk, chunk_i, chunk_len, length(A))
end