public function callFromScopeOn($context, array $arguments = [ ])
    {
        $scopeWrapper = function ($context, $methodName, array $arguments) {
            return call_user_func_array([ $context, $methodName ], $arguments);
        };

        if (is_object($context)) {
            $scopeWrapper = $scopeWrapper->bindTo($context, $context);
        } else {
            $scopeWrapper = $scopeWrapper->bindTo(null, $context);
        }

        return $scopeWrapper($context, $this->name(), $arguments);
    }