lexical error...
GHCiセッションでテンプレートHaskellがアクティブ化されていないため、GHCiは""を報告します。-XTemplateHaskell
コマンドラインを渡すか、GHCi自体からアクティブ化できます。
ghci> :set -XTemplateHaskell
それを修正した後、次のようなエラーが発生するはずです。
No instance for (Show DecsQ) arising from a use of ‘print’
In a stmt of an interactive GHCi command: print it
Q
これで、モナド内にあるものを印刷するためのいくつかのオプションがあります。
使用(デニス・ドアンの回答-ddump-splices
ですでに指摘されているように)
GHCi自体から生成されたHaskellコードをきれいに印刷します。
> putStrLn $(stringE . pprint =<< derive makeFoldable ''JStatement)
instance Foldable (JStatement ...)
where foldr ... = ...
コンストラクターに基づいて実際の構造を表示します。
> putStrLn $(stringE . show =<< derive makeFoldable ''JStatement)
[InstanceD [] (AppT (ConT Foldable) (... JStatement ...)) [...]]
最後の2つは、を使用して簡略化できますrunQ
が、これは、操作などの一部のTemplateHaskell関数を使用するコード生成では機能しませんreify
。これには、派生パッケージのいくつかの(またはおそらくほとんどの?)派生が含まれます。