В документации для Safe Haskell указано:
[...] К сожалению, Template Haskell может использоваться для разрушения границ модуля, и поэтому можно использовать доступ к этому конструктору. [...] Использование флага -XSafe для компиляции модуля Danger ограничивает возможности Haskell, которые можно использовать для безопасного подмножества. Это включает запрет небезопасныхPerfromIO, Template Haskell, [...]
Используется в качестве макросистемы, которая преобразует AST в другой AST, если не будет возможно просто ограничить TH безопасным подмножеством Haskell, а также ограничить полученный AST этим подмножеством?