重複の可能性:
テンプレート Haskell 宣言のローカル変数
「Foo」のような文字列を指定すると、の構文ツリーを構築する単純な Template Haskell 関数を構築しようとしていますdata Foo = Foo
。
今、私はのようなことをしようとしていますがmkDecl name = [d|data $(conT name) = Foo|]
、それは私にエラーを与えています:「型またはクラス宣言の不正なヘッド: $(conT name)」. 何が起こっているのか分かりますか?
dataD などを使用して書き出すこともできますが、何が起こっているのかがより明確になるため、この方法を好みます。