code: func WrapString(s string, lim int) ([]string, int) {
  	words := strings.Split(strings.Replace(s, nl, sp, -1), sp)
  	var lines []string
  	max := 0
  	for _, v := range words {
  		max = runewidth.StringWidth(v)
  		if max > lim {
  			lim = max
  		}
  	}
  	for _, line := range WrapWords(words, 1, lim, defaultPenalty) {
  		lines = append(lines, strings.Join(line, sp))
  	}
  	return lines, lim
  }
docs: // Wrap wraps s into a paragraph of lines of length lim, with minimal
  // raggedness.