code: def evaluate(self, env):
          
          if self.ident in env.functions:
              arg_vals = [expr.evaluate(env) for expr in self.args]
              try:
                  out = env.functions[self.ident](*arg_vals)
              except Exception as exc:
                  # Function raised exception! Maybe inlining the name of
                  # the exception will help debug.
                  return u'<%s>' % str(exc)
              return str(out)
          else:
              return self.original
docs: Evaluate the function call in the environment, returning a
          Unicode string.