Technically I don't have to smuggle it out at all - I could always rehydrate it by rechecking the conditions on the finally selected child; but saving it off like this results in the least amount of repeated comparisons, so I chose to just save it off here. If you want to blame anything, blame the silly preceding token case - because if it, there's no truly clean structure possible for this code, imo, since it creates this odd alternative condition and hard bail in what's otherwise a straightforward traversal. I'd prefer if we didn't need it, honestly.