Another thought, but probably moot: if you were only targeting Ruby 2+, you could allow the iterator, and let the user do what they want.

default to ```collection.each``` but let me redefine it:

```
def iterator
  collection.each.with_index
end
```