code: def visit_call(self, node, parent):
          
          newnode = nodes.Call(node.lineno, node.col_offset, parent)
          starargs = _visit_or_none(node, "starargs", self, newnode)
          kwargs = _visit_or_none(node, "kwargs", self, newnode)
          args = [self.visit(child, newnode) for child in node.args]
  
          if node.keywords:
              keywords = [self.visit(child, newnode) for child in node.keywords]
          else:
              keywords = None
          if starargs:
              new_starargs = nodes.Starred(
                  col_offset=starargs.col_offset,
                  lineno=starargs.lineno,
                  parent=starargs.parent,
              )
              new_starargs.postinit(value=starargs)
              args.append(new_starargs)
          if kwargs:
              new_kwargs = nodes.Keyword(
                  arg=None,
                  col_offset=kwargs.col_offset,
                  lineno=kwargs.lineno,
                  parent=kwargs.parent,
              )
              new_kwargs.postinit(value=kwargs)
              if keywords:
                  keywords.append(new_kwargs)
              else:
                  keywords = [new_kwargs]
  
          newnode.postinit(self.visit(node.func, newnode), args, keywords)
          return newnode
docs: visit a CallFunc node by returning a fresh instance of it