code: func (st *stateTracker) ReNick(old, neu string) *Nick {
  	st.mu.Lock()
  	defer st.mu.Unlock()
  	nk, ok := st.nicks[old]
  	if !ok {
  		logging.Warn("Tracker.ReNick(): %s not tracked.", old)
  		return nil
  	}
  	if _, ok := st.nicks[neu]; ok {
  		logging.Warn("Tracker.ReNick(): %s already exists.", neu)
  		return nil
  	}
  
  	nk.nick = neu
  	delete(st.nicks, old)
  	st.nicks[neu] = nk
  	for ch, _ := range nk.chans {
  		// We also need to update the lookup maps of all the channels
  		// the nick is on, to keep things in sync.
  		delete(ch.lookup, old)
  		ch.lookup[neu] = nk
  	}
  	return nk.Nick()
  }
docs: // Signals to the tracker that a nick should be tracked
  // under a "neu" nick rather than the old one.