protected static function resolveFunction(self &$target)
    {
        return function ($value = null) use (&$target) {
            if ($target !== null) {
                $target->settle(resolve($value, $target->sharedData));
                $target = null;
            }
        };
    }