code: func New(msg string, tags ...TagValueGenerator) error {
  	tse := &terminalStackError{
  		errors.New(msg), stackFrameInfo{forStack: captureStack(1)}, nil}
  	if len(tags) > 0 {
  		tse.tags = make(map[TagKey]interface{}, len(tags))
  		for _, t := range tags {
  			v := t.GenerateErrorTagValue()
  			tse.tags[v.Key] = v.Value
  		}
  	}
  	return tse
  }
docs: // New is an API-compatible version of the standard errors.New function. Unlike
  // the stdlib errors.New, this will capture the current stack information at the
  // place this error was created.