public function call($procedure, array $params)
    {
        if (!is_string($procedure)) {
            throw new \BadFunctionCallException('Expected a string');
        }

        if (!isset($this->XRLFunctions[$procedure])) {
            throw new \fpoirotte\XRL\Faults\MethodNotFoundException();
        }

        $callable = $this->XRLFunctions[$procedure];
        return $callable(...$params);
    }