Thank you to the author and maintainers of cpphs  https://hackage.haskell.org/package/cpphs

It has tightly-focussed functionality for what I wanted to do: a more haskell-friendly counterpart to cpp.

How to get it to behave as I wanted wasn't always obvious. I made some notes  https://stackoverflow.com/a/73768057/2840542

Haskell libraries generally use cpp -- and then users complain how awkward it can be. I don't see that cpp does anything better/different vs cpphs -- that is, cpphs understands all the #if compiler_version logic. Then why isn't every library preferring cpphs?


AntC