As you know, Template Haskell is used to generate various kinds of AST splices programmatically at compile-time.
However, a splice can often be very opaque, and it is often difficult to discern what a splice actually generates. If you run the Q
monad for a splice, and the splice is well-typed, you get a show
able representation of the generated piece of AST, but this representation can be very difficult to understand, because of its unstructured layout.
What is the preferred method for converting a piece of TH-generated AST into something akin to normal Haskell code, so that the code can be easily read and understood? Can one reconstruct source code from e.g. a given Dec
value? Does one have to read the GHC Core code? Is there a way to at least structure the AST so that it becomes more readable (Beyond what e.g. the pretty-show
package does)?
Are you looking for the -ddump-splices
flag to the compiler?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With