code: func (c *Corpus) GobEncode() ([]byte, error) {
  	var buf bytes.Buffer
  	encoder := gob.NewEncoder(&buf)
  
  	if err := encoder.Encode(c.words); err != nil {
  		return nil, err
  	}
  
  	if err := encoder.Encode(c.ids); err != nil {
  		return nil, err
  	}
  
  	if err := encoder.Encode(c.frequencies); err != nil {
  		return nil, err
  	}
  
  	if err := encoder.Encode(c.maxid); err != nil {
  		return nil, err
  	}
  
  	if err := encoder.Encode(c.totalFreq); err != nil {
  		return nil, err
  	}
  
  	if err := encoder.Encode(c.maxWordLength); err != nil {
  		return nil, err
  	}
  
  	return buf.Bytes(), nil
  }
docs: // GobEncode implements GobEncoder for *Corpus