code: func (b *OpenBitSet) NextSetBit(index int64) int64 {
  	assert(index >= 0)
  	i := int(uint64(index) >> 6)
  	if i >= b.wlen {
  		return -1
  	}
  	subIndex := int(index & 0x3f)                      // index within the word
  	word := int64(uint64(b.bits[i]) >> uint(subIndex)) // skip all the bits to the right of index
  
  	if word != 0 {
  		return (int64(i) << 6) + int64(subIndex) + int64(NumberOfTrailingZeros(word))
  	}
  
  	for i++; i < b.wlen; i++ {
  		word = b.bits[i]
  		if word != 0 {
  			return (int64(i) << 6) + int64(NumberOfTrailingZeros(word))
  		}
  	}
  
  	return -1
  }
docs: // L606
  /*
  Returns the index of the first set bit starting at the index specified.
  - is returned if there are no more set bits.
  */