public function setValue(string $v) : string
    {
        if (static::isValid($v) === false) {
            throw new BadUse('"' . $v . '" is not recognized as a possible value');
        }
        $this->value = $v;
    }