code: func widthsFromLines(config *Config, lines []string) []int {
  	widths := make([]int, 0, 8)
  
  	for _, line := range lines {
  		elems := elementsFromLine(config, line)
  		for i := 0; i < len(elems); i++ {
  			l := runeLen(elems[i].(string))
  			if len(widths) <= i {
  				widths = append(widths, l)
  			} else if widths[i] < l {
  				widths[i] = l
  			}
  		}
  	}
  	return widths
  }
docs: // widthsFromLines examines a list of strings and determines how wide each
  // column should be considering all of the elements that need to be printed
  // within it.