> how I've found perversely delightful ways to use the C preprocessor. Especially token-pasting.
Then boy! do I have an offer for you/you'll be like a pig in muck.
There's a Haskell compiler written in C++, using all the tricks you love:
* #define nested inside #if, so you're never quite sure which version of a macro is in play.
* #defines that expand to a series of assignments and routine calls.
* Module-wide and global variables that get updated as side-effects of routine calls
(as well as those routines passing back results)
* All data structures being cons pairs deeply nested, typically routines poke into hd(hd(tl(e))) or some such.
You can load it up into Visual Studio, and produce a genuine Windows executable with a Haskell REPL. (Ah, silly me, of course you'd want the familiar *nix command line -- that's even easier.)
Enjoy!