code: func (list *Lists) GenerateFilelist(out io.Writer) error {
  	w := bufio.NewWriter(out)
  	for _, pair := range list.getPairs() {
  		dLen := len(*pair.data)
  		toWrite := []string{
  			pair.kind,
  			"\n(",
  			strconv.Itoa(dLen),
  			")\n",
  		}
  		if dLen > 0 {
  			toWrite = append(toWrite,
  				strings.Join(*pair.data, "\n"),
  				"\n")
  		}
  		toWrite = append(toWrite, "\n")
  		for _, str := range toWrite {
  			if _, err := w.WriteString(str); err != nil {
  				return err
  			}
  		}
  	}
  	w.Flush()
  	return nil
  }
docs: // GenerateFilelist generates a filelist, duh. And writes it to a
  // given writer. The format of generated file is described in
  // filelist.ParseFilelist.