为什么模板Haskell使用AST

时间:2014-05-17 17:21:59

标签: haskell template-haskell

我一直在玩TemplateHaskell,我遇到了this问题,这基本上是

你无法做到

keyword name = [d| data $(name) = $(name) |]

您必须执行类似

的操作
keyword name = return [DataD [] name [] [NormalC name []] []] where
        name' = mkName name

代替。

显然,原因与一些类型检查问题有关。所以问题是, 为什么模板Haskell使用复杂的AST而不仅仅是字符串。如果这样会更容易 一个splice返回一个简单的字符串,并在扩展文件上进行类型检查?

0 个答案:

没有答案