Template Haskell は脳内メモリを食い尽くす

タイトルの通り。ややくじけそうである。
昨日から、自分で定義したデータ型を使って書いた構文を、Template Haskellコンパイル時に Haskell ソースに変換するというようなメタプログラミングをしている。とはいえ、今日は一日遊んできたからほとんど何もやってないんだけど…。
はじめはそもそも GHC の抽象構文木の作り方すらもよくわからなかったけど、扱うのがごくごく一部だけだったので、しばらくいじっていたら理解できた気がする。それでもよくわからんパラメータがあるけど。
で、ごりごり書いてたらとりあえずコンパイルは通るようになったんだけど、Template Haskell で定義した関数を使おうとすると型が決まりません的なエラーがでてしまう。
GHC の抽象構文木には型宣言の構造を作るものもあったので、それを使えばたぶんいけるはずなんだけど、とてもじゃないけどそこまで追う気力はない。その他にも細かい問題がいくつか。

無理〜。