回答

4

理论上,是的。在实践中,没有。

使用reify :: Name -> Q Info查找有关现有名称的内容,对于此类定义,您将返回VarI值,其中包含Maybe Dec字段。这似乎表明,在某些情况下,您可能能够获取用于声明变量的语法树,这将允许您提取文字,但是current versions of GHC always returns Nothing in this field,因此对于纯粹的TH解决方案而言,您运气不佳。

但是,TH确实允许运行任意的IO操作,所以你可以通过使用类似haskell-src-exts的方式加载和解析模块来解决这个问题,但是我怀疑这会比它的价值更麻烦。