code: func (e *ErrorGroup) Finalize() error {
  	if len(e.Errors) == 0 {
  		return nil
  	}
  	if len(e.Errors) == 1 && e.excess == 0 {
  		return e.Errors[0]
  	}
  	msgs := make([]string, 0, len(e.Errors))
  	for _, err := range e.Errors {
  		msgs = append(msgs, err.Error())
  	}
  	if e.excess > 0 {
  		msgs = append(msgs, fmt.Sprintf("... and %d more.", e.excess))
  		e.excess = 0
  	}
  	e.Errors = nil
  	return ErrorGroupError.New(strings.Join(msgs, "\n"))
  }
docs: // Finalize will collate all the found errors. If no errors were found, it will
  // return nil. If one error was found, it will be returned directly. Otherwise
  // an ErrorGroupError will be returned.