code: func (c *Ctx) WithTimeout(timeout time.Duration) context.CancelFunc {
  	ctx, cf := context.WithTimeout(c.request.Context(), timeout)
  	c.request = c.request.WithContext(ctx) // temporarily shallow copying to avoid problems with external libraries
  	return cf
  }
docs: // WithTimeout calls context.WithTimeout and automatically
  // updates context on the containing lars.Ctx object.