private static class VariationDiff.AllPathsEndAtRootextends Object
implements Predicate<DiffNode<?>>
Helper class to check for cycles in VariationDiffs.
When traversing the tree, an object of this class remembers visited nodes to see
if it walks in cycles.
Function programmers might think of this as a state monad.