模板Haskell:在GHCi中实现

时间:2013-05-22 11:47:11

标签: haskell ghci template-haskell

在GHCi中以某种方式可以做reify吗?

当我尝试使用'runQ'时,它抱怨“无法在IO monad中进行修改”。

>>> runQ (reify ''Bool)
Template Haskell error: Can't do `reify' in the IO monad
*** Exception: user error (Template Haskell failure)

我不是在寻找:t或其他东西,只是为了快速检查reify返回的内容而不将其写入文件并将该文件加载到GHCi中。

1 个答案:

答案 0 :(得分:26)

您只需从拼接中运行它而不是使用runQ

> $(stringE . show =<< reify ''Bool)
"TyConI (DataD [] GHC.Types.Bool [] [NormalC GHC.Types.False [],NormalC GHC.Types.True []] [])"