Many languages use the concept of an iterator. The c++ STL expands on this with input iterators, output iterators, forward, bidirectional, random access and others. As far as I know, these distinctions don't exist in other languages. In this talk the author of the STL, Alexander Stepanov, talks about iterators (among other things), and mentions the idea and of 2-dimensional iterators. I haven't seen these anywhere.
Question 1: Are there other languages/ libraries that expand on iterators and/or use 2-dimensional iterators?
Question 2: Could anyone point me to some good resources on iterator theory (if that is what it's called)?