I dabbled a little bit in and found the "tactic" concept to be a very intuitive interface to types metaprogramming.
I'm currently tinkering with my blog generated by and as usual the hardest in programming is not writing the code, but discovering interfaces.
Given how good the typing is in , I thought... Hang on, I'm writing all these definitions, surely the LSP could be smart enough to just let me discover the relevant functions right? Something like a tactic but for Haskell.
One search after, I'm discovering Wingman [1], a tactic metaprogramming plugin for HLS which used to work back in GHC<9. Apparently the upgrade cost was too high and the plugin got dropped unfortunately...

[1] https://reasonablypolymorphic.com/blog/towards-tactics/