code: func New(ctx context.Context, err error, skip int) *Error {
  	if e, ok := err.(*Error); ok {
  		return e
  	}
  	return new(err, skip+1).WithContext(ctx)
  }
docs: // New returns a new Error instance. If err is already an Error instance,
  // it will be returned, otherwise err will be wrapped with Error.