Como a quasiquotação do Haskell pode ser usada para substituir tokens no nível Haskell?

Quasiquotation como descrito emhaskellwiki é mostrado principalmente como uma ferramenta útil para incorporar outras linguagens dentro do Haskell sem mexer na cotação de strings.

Questão é: Para o próprio Haskell, como seria fácil colocar o código Haskell existente em um quasiquoter com o propósito de apenas substituir os tokens e passar o resultado para ghc? Talvez o Template Haskell seja chave aqui?

Eu procurei por exemplos de código e não encontrei nenhum. Alguns EDSLs podem se beneficiar dessa capacidade reduzindo o tamanho de seus operadores combinados (por exemplo, vire 'a. | .B. >>. C' para '[myedsl | a | b >> c]').

questionAnswers(1)

yourAnswerToTheQuestion