There is no functional difference between what you described and how it is now, other then replacing `None` by `find`. In essence, what you call `find` is now called `None`.

It would only be different if we change it like you suggested, but then don't default it to `find`. But that is basically the same if we simply change the default from `None` to `EndIteration`. But I don't think that's a good idea, because it should just work without the user having to do anything else. Also, to me, None makes more sense than find, because None to me just means do whatever is default and by default we should be walking the tree.