Iterators can't be reset, so here's a cursor.
Should move to the next element if relativeChange isn't passed, otherwise it should move the amount of relativeChange. If not at edge and moving past edge, it should return the edge value.
Optional
Should set it to as though it hasn't reached the first element.
Iterators can't be reset, so here's a cursor.