code: func (q *EvictingStringQueue) Add(v string) {
  	q.mu.Lock()
  	if q.set[v] {
  		q.mu.Unlock()
  		return
  	}
  
  	if len(q.set) == q.size {
  		// Full
  		delete(q.set, q.vals[0])
  		q.vals = append(q.vals[:0], q.vals[1:]...)
  	}
  	q.set[v] = true
  	q.vals = append(q.vals, v)
  	q.mu.Unlock()
  }
docs: // Add adds a new string to the tail of the queue if it's not already there.