code: func (q *EvictingStringQueue) PeekAll() []string {
  	q.mu.Lock()
  	vals := make([]string, len(q.vals))
  	copy(vals, q.vals)
  	q.mu.Unlock()
  	for i, j := 0, len(vals)-1; i < j; i, j = i+1, j-1 {
  		vals[i], vals[j] = vals[j], vals[i]
  	}
  	return vals
  }
docs: // PeekAll looks at all the elements in the queue, with the newest first.