Increment the number of times the traverser has gone through a looping section of traversal.
The step label is important to create a stack of loop counters when within a nested context.
If the provided label is not the same as the current label on the stack, add a new loop counter.
If the provided label is the same as the current label on the stack, increment the loop counter.
Set the number of times the traverser has gone through a loop back to 0.
When a traverser exits a looping construct, this method should be called.
In a nested loop context, the highest stack loop counter should be removed.
Generate a child traverser of the current traverser for current as step and new object location.
The child has the path history, future, and loop information of the parent.
The child extends that path history with the current as and provided R-object.
When two traversers are have equality with each other, then they can be merged.
This method is used to merge the traversers into a single traverser.
This is used for optimization where instead of enumerating all traversers, they can be counted.