It turns out if you do:
`#define CONCAT(x, y) x##y` the `x##y` won't first evaluate the parameters before concatenating. But it will if you do that CONCAT1 trick.
So `CONCAT1(ARGIFY(a), b)` is `ARGIFY(a)b` while `CONCAT(ARGIFY(a), b)` is `a,b`