What's so bad about Template Haskell?

Wygląda na to, że szablon Haskell jest często postrzegany przez społeczność Haskell jako niefortunna wygoda. Trudno jest wyrazić słowami dokładnie to, co zaobserwowałem w tym względzie, ale rozważmy te kilka przykładów

Szablon Haskell wymieniony w „Brzydkie (ale konieczne)” w odpowiedzi na pytanieKtóre rozszerzenia Haskell (GHC) powinni używać / unikać użytkownicy?Szablon Haskell uważany był za tymczasowe / gorsze rozwiązanieWektory niezapisane wartości o nowym typie wątek (lista mailingowa bibliotek)Yesod jest często krytykowany za zbyt duże poleganie na szablonie Haskell (patrzwpis na blogu w odpowiedzi na ten sentyment)

Widziałem różne posty na blogach, w których ludzie robią całkiem fajne rzeczy z szablonem Haskell, umożliwiając ładniejszą składnię, która po prostu nie byłaby możliwa w zwykłym Haskell, a także ogromną redukcję kotłów. Dlaczego więc szablon Haskell jest tak postrzegany? Co sprawia, że ​​jest niepożądany? W jakich okolicznościach należy unikać szablonu Haskell i dlaczego?

questionAnswers(6)

yourAnswerToTheQuestion