code: func (ba *sparseBitArray) Serialize() ([]byte, error) {
  	w := new(bytes.Buffer)
  
  	var identifier uint8 = 'S'
  	err := binary.Write(w, binary.LittleEndian, identifier)
  	if err != nil {
  		return nil, err
  	}
  
  	blocksLen := uint64(len(ba.blocks))
  	indexLen := uint64(len(ba.indices))
  
  	err = binary.Write(w, binary.LittleEndian, blocksLen)
  	if err != nil {
  		return nil, err
  	}
  
  	err = binary.Write(w, binary.LittleEndian, ba.blocks)
  	if err != nil {
  		return nil, err
  	}
  
  	err = binary.Write(w, binary.LittleEndian, indexLen)
  	if err != nil {
  		return nil, err
  	}
  
  	err = binary.Write(w, binary.LittleEndian, ba.indices)
  	if err != nil {
  		return nil, err
  	}
  	return w.Bytes(), nil
  }
docs: // Serialize converts the sparseBitArray to a byte slice