public static function invalidImplementation(
        string $className,
        \Exception $previous = null
    ): self {
        return new self(
            "invalid class name: {$className}",
            self::INVALID_IMPLEMENTATION,
            $previous
        );
    }