public function replace($offset, $replacement)
    {
        if (! array_key_exists($offset, $this->identifierParts)) {
            throw new OutOfBoundsException(
                'No identifier part exists at the specified position: ' .
                $offset
            );
        }

        $this->identifierParts[$offset] = $replacement;

        return $this;
    }