ご存知のように、Template Haskell は、コンパイル時にさまざまな種類の AST スプライスをプログラムで生成するために使用されます。
ただし、スプライスは非常に不透明な場合が多く、スプライスが実際に生成するものを識別するのが難しい場合がよくあります。スプライスのモナドを実行しQ
、スプライスが適切に型付けされている場合show
、生成された AST の部分を適切に表現できますが、構造化されていないレイアウトのため、この表現は非常に理解しにくい場合があります。
TH で生成された AST の一部を通常の Haskell コードに似たものに変換して、コードを簡単に読み取って理解できるようにするための推奨される方法は何ですか? たとえば、与えられた値からソースコードを再構築できDec
ますか? GHC Core コードを読む必要はありますか? 少なくとも AST を構造化して読みやすくする方法はありますか (たとえば、pretty-show
パッケージが行うことを超えて)。