code: func intersectArrayRun(a, b *Container) *Container {
  	statsHit("intersect/ArrayRun")
  	aa, rb := a.array(), b.runs()
  	na, nb := len(aa), len(rb)
  	var output []uint16
  	for i, j := 0, 0; i < na && j < nb; {
  		va, vb := aa[i], rb[j]
  		if va < vb.start {
  			i++
  		} else if va > vb.last {
  			j++
  		} else {
  			output = append(output, va)
  			i++
  		}
  	}
  	return NewContainerArray(output)
  }
docs: // intersectArrayRun computes the intersect of an array container and a run
  // container. The return is always an array container (since it's guaranteed to
  // be low-cardinality)