code: func (r *AllocationBitmap) ForEach(fn func(int)) {
  	r.lock.Lock()
  	defer r.lock.Unlock()
  
  	words := r.allocated.Bits()
  	for wordIdx, word := range words {
  		bit := 0
  		for word > 0 {
  			if (word & 1) != 0 {
  				fn((wordIdx * wordSize * 8) + bit)
  				word = word &^ 1
  			}
  			bit++
  			word = word >> 1
  		}
  	}
  }
docs: // ForEach calls the provided function for each allocated bit.  The
  // AllocationBitmap may not be modified while this loop is running.