В теории да. На практике нет.
Поиск информации о существующих именах выполняется с помощью reify :: Name -> Q Info
, и для такого определения вы получите значение VarI
, которое включает в себя поле Maybe Dec
. Это может свидетельствовать о том, что в некоторых случаях вы можете получить синтаксическое дерево для объявления переменной, что позволит вам извлечь литерал, однако текущие версии GHC всегда возвращают Nothing
в этом поле. , так что вам не повезло с чистым решением TH.
Однако TH разрешает выполнение произвольных действий ввода-вывода, поэтому вы можете обойти это, загрузив и проанализировав модуль самостоятельно, используя что-то вроде haskell-src-exts , однако я подозреваю, что больше проблем, чем стоит.