after some reflection and discussion with @barakmich, it's become clear that the best thing to do is shift to externalized iterators. in my mind, there is one essential case that the injected iterators cannot meet that is important: the ability to traverse, pause and do something else, then resume traversal from the same position. turns out that this is quite important in most general graph scenarios.
so yeah, this needs to happen. woohoo, that's gonna be a lotta code.
after some reflection and discussion with @barakmich, it's become clear that the best thing to do is shift to externalized iterators. in my mind, there is one essential case that the injected iterators cannot meet that is important: the ability to traverse, pause and do something else, then resume traversal from the same position. turns out that this is quite important in most general graph scenarios.
so yeah, this needs to happen. woohoo, that's gonna be a lotta code.