code: func (e *merryErr) WithCause(err error) Error {
  	if e == nil || err == nil {
  		return e
  	}
  	return e.WithValue(cause, err)
  }
docs: // WithCause returns an error based on the receiver, with the cause
  // set to the argument.