public function delete($idx)
    {
        self::mustBeInteger($idx);

        if ($idx instanceof N) {
            $idx = $idx->int;
        }

        if (!$this->exist($idx)) {
            throw new \OutOfRangeException(
                'Given '. $idx .' index does not exist!'
            );
        }

        unset($this->value[$idx]);
        $this->count--;

        return $this;
    }