在GhcMonad中运行Q Exp

时间:2014-10-23 22:56:00

标签: haskell template-haskell ghc-api

我正在寻找类似于此类型的东西:

runQExpDynamically :: (GhcMonad m) => Q Exp -> m Dynamic

文档:GhcMonadQ ExpDynamic

我正在寻找结合我的两个代码示例的方法;一个用于dynamically evaluating haskell code,另一个用于composing haskell dynamically using template haskell。换句话说,在GhcMonad中运行Q Exp:ressions。

我会解决这个问题,我应该在这里记录。

一些想法

我目前认为可行的方法是序列化表达式并将其提供给动态评估。序列化必须以某种方式在Q monad内完成。我或许可以使用Exp实现Ppr prettyprinter类。但是,我可能会这样放松一些类型的安全吗?可能有一种更干净(更卫生的“?)方式。我应该更多地了解Data.Dynamic以了解动态值的工作原理。

编辑我现在意识到Dynamic只代表值,而我想运行Q Exp'声明'。我想将数据类型添加到动态上下文中。

0 个答案:

没有答案