public function withQueryString(QueryString $query): self
    {
        $url = Structure::fromString((string) $this)
            ->withQuery(
                Query::fromString((string) $query->substring(1))
            )
            ->withFragment(new NullFragment);

        return new self(
            (string) $url
        );
    }