Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Template Haskell: reify in GHCi

Is it somehow possible to do reify in GHCi?

When I try it using 'runQ' it complains "can not do reify in the IO monad".

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

I'm not looking for :t or something, only for a way to quickly check what reify returns without writing it to a file and loading that file into GHCi.

like image 637
scravy Avatar asked May 22 '13 11:05

scravy


1 Answers

You just have to run it from a splice instead of using runQ:

> $(stringE . show =<< reify ''Bool) "TyConI (DataD [] GHC.Types.Bool [] [NormalC GHC.Types.False [],NormalC GHC.Types.True []] [])" 
like image 94
hammar Avatar answered Sep 28 '22 21:09

hammar