A different solution I had thought up was that maybe we could have expressions act in a C scope. Then when you preprocess C you export the macros, wherever you import if a specific identifier appears boom! evaluate the C stuff instead.