code: func (c *Corpus) Add(word string) int {
  	if id, ok := c.ids[word]; ok {
  		c.frequencies[id]++
  		c.totalFreq++
  		return id
  	}
  
  	id := atomic.AddInt64(&c.maxid, 1)
  	c.ids[word] = int(id - 1)
  	c.words = append(c.words, word)
  	c.frequencies = append(c.frequencies, 1)
  	c.totalFreq++
  
  	runeCount := utf8.RuneCountInString(word)
  	if runeCount > c.maxWordLength {
  		c.maxWordLength = runeCount
  	}
  
  	return int(id - 1)
  }
docs: // Add adds a word to the corpus and returns its ID. If a word was previously in the corpus, it merely updates the frequency count and returns the ID