Возможное дублирование:
Локальные переменные в объявлениях Template Haskell < / а>
Я пытаюсь создать простую функцию Template Haskell, которая по строке типа «Foo» будет строить синтаксическое дерево для data Foo = Foo
.
Прямо сейчас я пытаюсь сделать что-то вроде mkDecl name = [d|data $(conT name) = Foo|]
, но это дает мне ошибку: «Неверный формат заголовка типа или объявления класса: $ (conT name)». Есть идеи, что происходит?
Я мог бы просто написать это, используя dataD и тому подобное, но я предпочитаю этот способ, так как было бы намного яснее, что происходит.
data
внутри функции. Также вы не можете поместить шаблон / функцию в такой список. - person Wes   schedule 08.07.2012