Feature request/help: evaluating template haskell at runtime

Rene de Visser Rene_de_Visser at hotmail.com
Sun May 20 16:29:46 EDT 2007


I am attempting some genetic programming in Haskell.

Rather than defining my own data type for programs and writing my own 
interpreter, I want to use the template haskell expression data types and 
evaluate them with the rts's byte code interpreter. This gives me a nice 
fast interpreter that provides the statistics that I want.

I could pretty print the template haskell and then execute the result string 
using the GHC module or hs-plugins, but I would like to save the pretty 
printing and parsing as normally the program generation time is important by 

I have being looking at module TcSplice.

I see that I need to run the TH expression through function convertToHsExpr, 
but after that I am stuck.

This produces LHsExpr RdrName and I need to get CoreSyn.CoreExpr.

What functions to use?

dsLExpr :: LHsExpr Id -> DsM CoreSyn.CoreExpr seems one important step,
but I haven't figured out how to get from LHtsExpr RdrName to LHsExpr Id.

It would be nice to have standard GHC functionality to have the ability to 
compile and evaluate template haskell at runtime using the GHC library.


More information about the Glasgow-haskell-users mailing list