code: func CopyURL(u *url.URL) (ret *url.URL) {
  	ret = new(url.URL)
  	*ret = *u
  	if u.User != nil {
  		ret.User = new(url.Userinfo)
  		*ret.User = *u.User
  	}
  	return
  }
docs: // Deep copies a URL. I could call it DeepCopyURL, but what else would you be
  // copying when you have a *url.URL? Of note is that the Userinfo is deep
  // copied. The returned URL shares no references with the original.