code: def find_nodes(expr, node_types):
      
  
      def extender(op):
          return (arg for arg in op.args if isinstance(arg, ir.Expr))
  
      return _search_for_nodes([expr], extender, node_types)
docs: Depth-first search of the expression tree yielding nodes of a given
      type or set of types.
  
      Parameters
      ----------
      expr: ibis.expr.types.Expr
      node_types: type or tuple of types
  
      Yields
      ------
      op: type
          A node of given node_types