É possível obter um tipo de expressão usando o Template Haskell?

Dada uma expressãofoo, Eu poderia declarar uma função de nível superior

bar = foo

e obtenha o tipo defoo ComoType porreificação bar:

case reify 'bar of
  VarI _ t _ _ -> t

Existe uma maneira direta de obter o tipo defoo, sem criar a definição redundante debar? Idealmente como função do tipoExp -> Q Type.

questionAnswers(1)

yourAnswerToTheQuestion