Como ya sabe, la plantilla Haskell se utiliza para generar diversos tipos de empalmes AST programáticamente en tiempo de compilación.Método preferido para ver el código generado por la plantilla Haskell
Sin embargo, un empalme a menudo puede ser muy opaco, y a menudo es difícil discernir lo que realmente genera un empalme. Si ejecuta la mónada Q
para un empalme, y el empalme está bien tipado, obtendrá una representación capaz show
de la pieza generada de AST, pero esta representación puede ser muy difícil de entender, debido a su diseño no estructurado.
¿Cuál es el método preferido para convertir una pieza de AST generada por TH en algo similar al código Haskell normal, para que el código pueda leerse y entenderse fácilmente? ¿Se puede reconstruir el código fuente de, p. un valor dado Dec
? ¿Hay que leer el código GHC Core? ¿Hay alguna forma de estructurar al menos el AST para que sea más legible (más allá de lo que, por ejemplo, el paquete pretty-show
)?
Esto resuelve la parte de la pregunta que @augustss no respondió. – dflemstr