code: func (v *MrbValue) CallBlock(method string, args ...Value) (*MrbValue, error) {
  	if len(args) == 0 {
  		return nil, fmt.Errorf("args must be non-empty and have a proc at the end")
  	}
  
  	n := len(args)
  	return v.call(method, args[:n-1], args[n-1])
  }
docs: // CallBlock is the same as call except that it expects the last
  // argument to be a Proc that will be passed into the function call.
  // It is an error if args is empty or if there is no block on the end.