public static function val($value1, $value2, $_ = null)
    {
        if (!static::is($value1) || !static::is($value2)) {
            throw new \InvalidArgumentException("All parameters must be of type bool.");
        }

        $ret = ($value1 || $value2);
        $args = array_slice(func_get_args(), 2);
        while (!$ret && ($bool = array_shift($args)) !== null) {
            if (!static::is($bool)) {
                throw new \InvalidArgumentException("All parameters must be of type bool.");
            }

            $ret = ($ret || $bool);
        }

        return $ret;
    }