code: func (h *Handle) ToByteArray() ([]byte, error) {
  
  	h.Lock()
  	defer h.Unlock()
  	ba := make([]byte, 16)
  	binary.BigEndian.PutUint64(ba[0:], h.bits)
  	binary.BigEndian.PutUint64(ba[8:], h.unselected)
  	bm, err := h.head.toByteArray()
  	if err != nil {
  		return nil, fmt.Errorf("failed to serialize head: %s", err.Error())
  	}
  	ba = append(ba, bm...)
  
  	return ba, nil
  }
docs: // ToByteArray converts this handle's data into a byte array