code: public function callFunction($function, array $args = []) {
          return $this->rethrowExceptions(function () use ($function, $args) {
              return $this->reflector
                  ->resolveFunction($this, $function, $args);
          });
      }
docs: @param $function
  @param array $args
  
  @return mixed
  @throws ImplementationNotFoundException
  @throws TypeMismatchException
  @throws UnresolveableArgumentException
  @throws ValueNotFoundException