Скажем, у меня есть следующее:
data Rec = Rec {
alpha :: Int,
beta :: Double,
phi :: Float
}
sample = Rec 1 2.3 4.5
Я понимаю Template Haskell и функция reify
может получить имена полей записи. То есть:
print $(f sample) --> ["alpha", "beta", "phi"]
Также утверждается, что это можно сделать без Template Haskell. Может ли кто-нибудь предоставить пример реализации для этого?