public static function invalidArgument(
        string $class,
        string $method,
        string $arg,
        \Exception $previous = null
    ): self {
        return new self(
            "invalid value of argument \"{$arg}\" in {$class}::{$method}",
            self::INVALID_ARGUMENT,
            $previous
        );
    }