“Template Haskell” is the name of both Haskell’s entire metaprogramming infrastructure as well as a specific GHC extension that enables a number of language features that support it.
Most notably, enabling the
TemplateHaskell extension allows you to write splices, that allow you to inject generated code into your code. Common uses of splicing include:
A related extension is
QuasiQuotes, which provides a slightly different alternative to splicing.