É possível usar um açúcar sintático de bracketing para um functor aplicativo?

Em"Programação Aplicativa com Efeitos" de McBride e Paterson eles introduzem um adorável açúcar sintático para levantar uma função pura:

[| f x y z |]

para

f <
f <$> x <*> y <*> z
gt; x <*> y <*> z

e eu me lembro de alguém em outro lugar usandoli f w x y z il ouil f v w x y z li, e eu pensei / esperava que poderia ser porque ele poderia ser definido usando algum recurso de linguagem existente e uma definição inteligente deli eil.

Eu não consigo encontrar nenhuma referência a isso além do papel, e assumindo que[| e|] não são susceptíveis de aparecer em ghc qualquer momento em breve, é possível implementarli eil de alguma forma? Eu não consigo pensar em um tipo sensato para eles, então eu suponho que eu preciso do Template Haskell ou similar, mas não sei o suficiente para conseguir isso.[af| f x y ] Seria bom, mas eu não sei se é possível antes de começar a tentar, e certamente precisar de ajuda se for.

questionAnswers(3)

yourAnswerToTheQuestion