Get a Haskell record's field names as a list of strings?
问题 Say I have the following: data Rec = Rec { alpha :: Int, beta :: Double, phi :: Float } sample = Rec 1 2.3 4.5 I understand Template Haskell & the reify function can get me the record's field names. That is: print $(f sample) --> ["alpha", "beta", "phi"] There is also a claim that this can be done without Template Haskell. Can someone provide an example implementation for this can be accomplished? 回答1: It can be done with a Data (most GHC versions) or Generic (7.2.x and up) instance, which