目前我正在尝试从Haskell子集进行转换,而不必处理所有解析,类型检查等问题。文档没有帮助我找出一个函数来获取函数的主体(所有定义)的名称。
此调用的上下文应该类似于
fac 0 = 1
fac x = z * fac (x - 1)
getBody = ...
main = do
x <- runQ $ getBody [| fac |]
print x
有谁知道
答案 0 :(得分:10)
通常,使用reify
函数查找TH定义的方法。但是:
您can't use reify
at run-time通过runQ
。除编辑期间,它所需的信息不可用。
目前,无论如何,使用reify
来获取函数定义都是not implemented due to lack of interest。
看起来你需要找到另一条路线。您是否考虑过使用the haskell-src-exts
package进行解析和/或GHC API或基于它的东西?