The main disadvantage of TH for me is that it's not amenable to static analysis or reasoning. Because the meaning of a TH splice is in no way related to its type, it both breaks tools, and breaks my patterns of understanding how things work by navigating the consistent generated documentation on Hackage.
There are also portability concerns. Not with non-GHC compilers (no one uses anything but GHC), but with cross-compiling and such, including projects like GHCJS (last time I checked anyway).
> I was rather frustrated with the use of Template Haskell as the main entry point for the big framework projects (Yesod, Snap, etc.)
Perhaps slightly off topic, but can someone outline why Template Haskell has so much negativity?
I've used Yesod a bit, and from my limited experience, the TH does a good job at removing a lot of boilerplate code, while still keeping things readable and type safe.
The main negatives I see are somewhat complicated error messages if you make a mistake, but the issue is usually pretty easy to spot because the TH is pretty simple.
Is portability an issue? How do the other Haskell compilers go with it?
Not to detract from your work, I think it's great to have options! I'm just curious.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe