def each_node(from = covered_code.root, &block)
      return to_enum(:each_node) unless block_given?
      begin
        yield from unless from.is_a?(Node::Root)
      rescue ProblemWithDiagnostic
        raise
      rescue StandardError, SystemStackError => e
        raise ProblemWithDiagnostic.new(covered_code, from.diagnostic_expression, e)
      end
      node_children(from).each do |child|
        each_node(child, &block)
      end
    end
def each_node(from = covered_code.root, &block)
      return to_enum(:each_node) unless block_given?
      begin
        yield from unless from.is_a?(Node::Root)
      rescue ProblemWithDiagnostic
        raise
      rescue StandardError, SystemStackError => e
        raise ProblemWithDiagnostic.new(covered_code, from.diagnostic_expression, e)
      end
      node_children(from).each do |child|
        each_node(child, &block)
      end
    end
Iterates on nodes in the subset.
 Yields the node and it's children (within the subset)