public function charAt($idx)
    {
        self::mustBeInteger($idx, 'Index');

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

        if($idx < 0 || $idx >= count($this)){
            throw new \InvalidArgumentException(
                'Cannot get chars at non-existing position!'
            );
        }

        return new C(mb_substr($this->value, $idx, 1, C::ENCODING));
    }