code: func Value(e error, key interface{}) interface{} {
  	for {
  		switch m := e.(type) {
  		case nil:
  			return nil
  		case *merryErr:
  			if m.key == key {
  				return m.value
  			}
  			e = m.err
  		default:
  			return nil
  		}
  	}
  }
docs: // Value returns the value for key, or nil if not set.
  // If e is nil, returns nil.