code: func Uncapitalize(str string, delimiters ...rune) string {
  
  	var delimLen int
  
  	if delimiters == nil {
  		delimLen = -1
  	} else {
  		delimLen = len(delimiters)
  	}
  
  	if str == "" || delimLen == 0 {
  		return str
  	}
  
  	buffer := []rune(str)
  	uncapitalizeNext := true // TODO Always makes capitalize/un apply to first char.
  	for i := 0; i < len(buffer); i++ {
  		ch := buffer[i]
  		if isDelimiter(ch, delimiters...) {
  			uncapitalizeNext = true
  		} else if uncapitalizeNext {
  			buffer[i] = unicode.ToLower(ch)
  			uncapitalizeNext = false
  		}
  	}
  	return string(buffer)
  }
docs: /*
  Uncapitalize uncapitalizes all the whitespace separated words in a string. Only the first letter of each word is changed.
  The delimiters represent a set of characters understood to separate words. The first string character and the first non-delimiter
  character after a delimiter will be uncapitalized. Whitespace is defined by unicode.IsSpace(char).
  
  Parameters:
      str - the string to uncapitalize fully
      delimiters - set of characters to determine capitalization, exclusion of this parameter means whitespace would be delimeter
  
  Returns:
      uncapitalized string
  */