public function set($name, $value)
    {
        $nameString = TypeHinter::to('USVString', $name, 0);
        $valueString = TypeHinter::to('USVString', $value, 1);
        $already = false;
        foreach ($this->list as $key => &$pair) {
            if ($pair[0] === $nameString) {
                if ($already) {
                    unset($this->list[$key]);
                } else {
                    $pair[1] = $valueString;
                    $already = true;
                }
            }
        }
        unset($pair);
        if ($already) {
            $this->list = array_values($this->list);
            array_splice($this->list, 0, count($this->list), $this->list);
        } else {
            $this->list[] = [$nameString, $valueString];
        }
        $this->update();
    }