有没有办法解除模板Haskell名称?

时间:2017-09-11 14:41:54

标签: haskell template-haskell

由于NameShow个实例,并且字符串可用于生成相应的Name,因此我考虑使用以下方法:

 \ name -> [e| mkName $(lift (show name)) |]

这在ghci中运行良好。但在编译代码中,实际编译的变量看起来像p_a4hEk,而Show生成的字符串看起来像p_6989586621680030942

这里发生了什么?有没有办法将Name提升为模板Haskell ExpQ

用例:我正在编写一个TH API,它可以基于人类可读的用户描述构建复杂而高效的Haskell函数。我将返回的函数附加到一个文档中,该文档以人类可读的术语解释每个参数的用途和类型。如果文档还可以包含代码中用于该参数的名称,那将是很好的,这样用户可以根据需要查看拼接代码并识别哪个参数是哪个。

0 个答案:

没有答案