let id x = x #define ID(X) X #define APPLY(F : [.], X) F(X) APPLY(, 42) (* invalid because APPLY expects a macro as an argument: an empty argument is not allowed. *)