code: func IsTemporaryError(err error) bool {
  	tempErr, ok := err.(interface {
  		Temporary() bool
  	})
  	return ok && tempErr.Temporary() || isPacketTooBig(err)
  }
docs: // IsTemporaryError checks whether the given error should be considered temporary.