#define xCAT(A,B) … #define CAT(A,B) … #undef TYPE #define TYPE … #define xFN(TYPE,NAME) … #define FN(TYPE,NAME) … void FN(TYPE,dump)(__isl_keep TYPE *obj) { … } /* Return a string representation of "obj". * Print the object in flow format. */ __isl_give char *FN(TYPE,to_str)(__isl_keep TYPE *obj) { … }