2012-01-16 22 views

Respuesta

3

No creo que la API GHC exponga una interfaz AST (aunque podría ser incorrecta), pero Template Haskell sí. Si crea expresiones utilizando la estructura Language.Haskell.THExp, puede crear funciones/declaraciones y hacer uso de ellas mediante la sintaxis $(someTHFunction).

Una advertencia bastante importante es que TH solo se ejecuta en tiempo de compilación, por lo que tendría que pregenerar todo. Si desea utilizar TH en tiempo de ejecución, creo que debería imprimir bastante la plantilla haskell AST, luego use la API de GHC en la cadena resultante.

+1

También puedo generar el código fuente de Template Haskell. Esto se puede considerar como un compromiso entre generar expresiones AST y generar fuente de texto Haskell. – modular

Cuestiones relacionadas