public function withTld(string $tld): HostnameInterface
    {
        if (!self::myValidateTld($tld, $error)) {
            throw new HostnameInvalidArgumentException($error);
        }

        // Normalize top-level domain.
        self::myNormalizeTld($tld);

        return new self($this->myDomainParts, $tld);
    }