private function canBeResolved(array $requires, array $available, array $ordered): bool
    {
        if (0 === \count($requires)) {
            return true;
        }

        return 0 === \count(array_diff(array_intersect($requires, $available), $ordered));
    }