# File lib/astrolabe/node.rb, line 216
    def each_node(*types, &block)
      return to_enum(__method__, *types) unless block_given?

      types.flatten!

      yield self if types.empty? || types.include?(type)

      if types.empty?
        visit_descendants(&block)
      else
        visit_descendants_with_types(types, &block)
      end

      self
    end