.applyDescendingSubstitution(substitution, query);
SubstitutionResults<? extends QueryNode> results = originalNode.applyDescendingSubstitution( substitutionToApply.get(), query);
Optional<NodeTracker> optionalTracker) throws EmptyQueryException { SubstitutionResults<? extends QueryNode> substitutionResults = node.applyDescendingSubstitution(substitution, query);