【发布时间】:2017-08-15 08:39:01
【问题描述】:
在 Template Haskell 中,Q monad 是所有魔法发生的地方。但是,Q 的 API 非常有限。我想要一个valueNameStore :: Q (String -> Maybe Name) 类型的值,它基本上捕获了lookupValueName :: String -> Q (Maybe Name) 的功能,但在绑定时存储了可用的变量。
我认为这在理论上是合理的:如果我在针对共享常量状态执行查找时,我不需要对查找进行排序,该状态是我最初在 @987654327 上调用 bind 时 Q 状态的快照@。
如果这不可能,有没有办法以不安全的方式强制它通过?我愿意将自己降低到任何涉及unsafePerformIO...
【问题讨论】:
标签: haskell ghc template-haskell