code: func (p uint64Slice) merge(other []uint64) []uint64 {
  	ret := make([]uint64, 0, len(p))
  
  	i, j := 0, 0
  	for i < len(p) && j < len(other) {
  		a, b := p[i], other[j]
  		if a == b {
  			ret = append(ret, a)
  			i, j = i+1, j+1
  		} else if a < b {
  			ret = append(ret, a)
  			i++
  		} else {
  			ret = append(ret, b)
  			j++
  		}
  	}
  
  	if i < len(p) {
  		ret = append(ret, p[i:]...)
  	} else if j < len(other) {
  		ret = append(ret, other[j:]...)
  	}
  
  	return ret
  }
docs: // merge combines p and other to a unique sorted set of values.
  // p and other must both have unique sets and be sorted.