code: func (vector *BitVector) Insert(bit byte, index int) {
  	vector.indexAssert(index)
  	vector.length++
  
  	// Append an additional byte if necessary.
  	if vector.bytesLength() > len(vector.data) {
  		vector.data = append(vector.data, 0)
  	}
  
  	byteIndex := uint32(index >> 3)
  	byteOffset := uint32(index % 8)
  	var bitToInsert byte
  	if bit == 1 {
  		bitToInsert = 1 << byteOffset
  	}
  
  	oldByte := vector.data[byteIndex]
  	// This bit will need to be shifted into the next byte
  	leftoverBit := (oldByte & 0x80) >> 7
  	// Make masks to pull off the bits below and above byteOffset
  	// This mask has the byteOffset lowest bits set.
  	bottomMask := byte((1 << byteOffset) - 1)
  	// This mask has the 8 - byteOffset top bits set.
  	topMask := ^bottomMask
  	top := (oldByte & topMask) << 1
  	newByte := bitToInsert | (oldByte & bottomMask) | top
  
  	vector.data[byteIndex] = newByte
  	// Shift the rest of the bytes in the slice one higher, append
  	// the leftoverBit obtained above.
  	shiftHigher(leftoverBit, vector.data[byteIndex+1:])
  }
docs: // Insert inserts bit into the supplied index of the bit vector. All
  // bits in positions greater than or equal to index before the call will
  // be shifted up by one.