Кажется, что Template Haskell часто рассматривается сообществом Haskell как неудачное удобство. Трудно выразить словами то, что я наблюдал в этом отношении, но рассмотрим эти несколько примеров
- Шаблон Haskell указан в разделе "Уродливое (но необходимо)" в ответ на вопрос Какие расширения Haskell (GHC) должны использовать пользователи/избегать?
- Шаблон Haskell рассмотрел временное/низшее решение в Unboxed Vectors of newtype'd values thread (список рассылки библиотек)
- Yesod часто критикуют за слишком много полагаться на Template Haskell (см. сообщение в блоге в ответ на это мнение).
Я видел различные записи в блогах, где люди делают довольно аккуратные вещи с Template Haskell, позволяя более красивый синтаксис, который просто невозможен в регулярном Haskell, а также потрясающее сокращение шаблонов. Так почему же Template Haskell выглядит таким образом? Что делает его нежелательным? При каких обстоятельствах следует избегать шаблона Haskell и почему?