docs: def visit(self, node):
          """Returns a generator that walks all children recursively."""
          for child in node:
              yield child
              for subchild in self.visit(child):
                  yield subchild