code: func (sba *sparseBitArray) Equals(other BitArray) bool {
  	if other.Capacity() == 0 && sba.Capacity() > 0 {
  		return false
  	}
  
  	var selfIndex uint64
  	for iter := other.Blocks(); iter.Next(); {
  		otherIndex, otherBlock := iter.Value()
  		if len(sba.indices) == 0 {
  			if otherBlock > 0 {
  				return false
  			}
  
  			continue
  		}
  
  		if selfIndex >= uint64(len(sba.indices)) {
  			return false
  		}
  
  		if otherIndex < sba.indices[selfIndex] {
  			if otherBlock > 0 {
  				return false
  			}
  			continue
  		}
  
  		if otherIndex > sba.indices[selfIndex] {
  			return false
  		}
  
  		if !sba.blocks[selfIndex].equals(otherBlock) {
  			return false
  		}
  
  		selfIndex++
  	}
  
  	return true
  }
docs: // Equals returns a bool indicating if the provided bit array
  // equals this bitarray.