code: func AtomName(xu *xgbutil.XUtil, aid xproto.Atom) (string, error) {
  	// Check the cache first
  	if atomName, ok := atomNameGet(xu, aid); ok {
  		return string(atomName), nil
  	}
  
  	reply, err := xproto.GetAtomName(xu.Conn(), aid).Reply()
  	if err != nil {
  		return "", fmt.Errorf("AtomName: Error fetching name for ATOM "+
  			"id '%d': %s", aid, err)
  	}
  
  	// If we're here, it means we didn't have ths ATOM id cached. So cache it.
  	atomName := string(reply.Name)
  	cacheAtom(xu, atomName, aid)
  
  	return atomName, nil
  }
docs: // AtomName fetches a string representation of an ATOM given its integer id.