variable macro arity