code: def visit_FunctionCall(self, node):
          
          call = self.memory[node.identifier.name]._node
          args = [self.visit(parameter) for parameter in node.parameters]
  
          if isinstance(call, AST):
              current_scope = self.memory.stack.current.current
              memory_functions = {
                  key: current_scope[key]
                  for key in current_scope
                  if isinstance(current_scope[key], Function)
              }
  
              self.memory.append_frame()
              for i, arg in enumerate(args):
                  self.memory[i] = arg
  
              for function in memory_functions:
                  self.memory[function] = memory_functions[function]
  
              function_result = self.visit(call)
  
              self.memory.pop_frame()
              return function_result
          else:
              return bind_type(call(*args))
docs: Visitor for `FunctionCall` AST node.