public function setCompiledContainerClass(string $compiledContainerClass)
    {
        if (!\class_exists($compiledContainerClass)
            || (
                $compiledContainerClass !== DICompiledContainer::class
                && !\is_subclass_of($compiledContainerClass, DICompiledContainer::class)
            )
        ) {
            throw new \InvalidArgumentException(
                \sprintf('class "%s" must extend %s', $compiledContainerClass, DICompiledContainer::class)
            );
        }

        $this->compiledContainerClass = $compiledContainerClass;

        return $this;
    }