To make the usage clear, I think this callback should probably be named `iterator_next`