code: def visit_FunctionDef(self, node):
      new_node = ast.FunctionDef(
          self._visit(node.name),
          self._visit(node.args),
          self._visit(node.body),
          self._visit(node.decorator_list),
      )
      # because node.args doesn't have any location to copy from
      if node.args.vararg:
          ast.copy_location(node.args.vararg, node)
      if node.args.kwarg:
          ast.copy_location(node.args.kwarg, node)
  
      ast.copy_location(new_node, node)
      return new_node
  
imports: from .astn import AstToGAst, GAstToAst
  import ast
  import gast
label_desc: Use image node_id 2 for calling the GAstToAst2 obj's underlying member method code with example usage: obj.visit_FunctionDef(node) and returns: new_node