code: func (sba *sparseBitArray) Intersects(other BitArray) bool {
  	if other.Capacity() == 0 {
  		return true
  	}
  
  	var selfIndex int64
  	for iter := other.Blocks(); iter.Next(); {
  		otherI, otherBlock := iter.Value()
  		if len(sba.indices) == 0 {
  			if otherBlock > 0 {
  				return false
  			}
  			continue
  		}
  		// here we grab where the block should live in ourselves
  		i := uintSlice(sba.indices[selfIndex:]).search(otherI)
  		// this is a block we don't have, doesn't intersect
  		if i == int64(len(sba.indices)) {
  			return false
  		}
  
  		if sba.indices[i] != otherI {
  			return false
  		}
  
  		if !sba.blocks[i].intersects(otherBlock) {
  			return false
  		}
  
  		selfIndex = i
  	}
  
  	return true
  }
docs: // Intersects returns a bool indicating if the provided bit array
  // intersects with this bitarray.