code: func unionArrayArrayInPlace(a, b *Container) {
  	statsHit("union/ArrayArrayInPlace")
  	aa, ab := a.array(), b.array()
  	na, nb := len(aa), len(ab)
  	output := make([]uint16, na+nb)
  	outN := 0
  	for i, j := 0, 0; ; {
  		if i >= na && j >= nb {
  			break
  		} else if i < na && j >= nb {
  			copy(output[outN:], aa[i:])
  			outN += na - i
  			break
  		} else if i >= na && j < nb {
  			copy(output[outN:], ab[j:])
  			outN += nb - j
  			break
  		}
  
  		va, vb := aa[i], ab[j]
  		if va < vb {
  			output[outN] = va
  			outN++
  			i++
  		} else if va > vb {
  			output[outN] = vb
  			outN++
  			j++
  		} else {
  			output[outN] = va
  			outN++
  			i++
  			j++
  		}
  	}
  	a.setArray(output[:outN])
  	a.n = int32(outN)
  	if a.n > ArrayMaxSize {
  		a.optimize()
  	}
  }
docs: // unionArrayArrayInPlace does what it sounds like -- tries to combine
  // the two arrays in-place. It does not try to ensure that the result is
  // of a good array size, so it could be up to twice that size, temporarily.