<div dir="ltr">I wonder how much of the CPP functionality could be implemented using template haskell?</div>