code: func (c *Call) CallArg(key string) (*Call, bool, error) {
  	val, ok := c.Args[key]
  	if !ok {
  		return nil, false, nil
  	}
  	switch tval := val.(type) {
  	case *Call:
  		return tval, true, nil
  	default:
  		return nil, true, fmt.Errorf("could not convert %v of type %T to Call in Call.CallArg", tval, tval)
  	}
  }
docs: // CallArg is for reading the value at key from call.Args as a Call. If the
  // key is not in Call.Args, the value of the returned value will be nil, and
  // the error will be nil. An error is returned if the value is not a Call.