Template Haskell is something to use only when absolutely necessary, while Lispers write macros without a second thought.
I considered your method of writing my own tooling, but have had a vague feeling that Lisp works better for this frame of mind.
https://www.haskell.org/onlinereport/haskell2010/haskellch3....
https://www.haskell.org/onlinereport/haskell2010/haskellch4....
https://www.haskell.org/onlinereport/haskell2010/haskellch5....
Dealing with this in Template Haskell is unwieldy at best.
Template Haskell is something to use only when absolutely necessary, while Lispers write macros without a second thought.
I considered your method of writing my own tooling, but have had a vague feeling that Lisp works better for this frame of mind.