Ответ 1
Вам просто нужно запустить его из сплайсинга вместо использования runQ
:
> $(stringE . show =<< reify ''Bool)
"TyConI (DataD [] GHC.Types.Bool [] [NormalC GHC.Types.False [],NormalC GHC.Types.True []] [])"
Как можно сделать reify в GHCi?
Когда я пытаюсь использовать "runQ", он жалуется, что "не может сделать reify в монаде IO".
>>> runQ (reify ''Bool)
Template Haskell error: Can't do `reify' in the IO monad
*** Exception: user error (Template Haskell failure)
Я не ищу :t
или что-то еще, только для того, чтобы быстро проверить, что возвращает reify
, не записывая его в файл и не загружая этот файл в GHCi.
Вам просто нужно запустить его из сплайсинга вместо использования runQ
:
> $(stringE . show =<< reify ''Bool)
"TyConI (DataD [] GHC.Types.Bool [] [NormalC GHC.Types.False [],NormalC GHC.Types.True []] [])"