code: func merge(slice []Wallet, wallets ...Wallet) []Wallet {
  	for _, wallet := range wallets {
  		n := sort.Search(len(slice), func(i int) bool { return slice[i].URL().Cmp(wallet.URL()) >= 0 })
  		if n == len(slice) {
  			slice = append(slice, wallet)
  			continue
  		}
  		slice = append(slice[:n], append([]Wallet{wallet}, slice[n:]...)...)
  	}
  	return slice
  }
docs: // merge is a sorted analogue of append for wallets, where the ordering of the
  // origin list is preserved by inserting new wallets at the correct position.
  //
  // The original slice is assumed to be already sorted by URL.