I am working on a call macro,
#define CALL(f,...) FN(f)->call((ref(new LinkedList()), __VA_ARGS__))
which when called,
C
Simply make f part of the ..., and use a separate macro to extract the first argument where you need f.
f
...