blob: ed26e0f98462a7217d2b225fdb4a957e1f438625 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
-- Test that DuplicateRecordFields works with TemplateHaskell
{-# LANGUAGE DuplicateRecordFields, TemplateHaskell #-}
import Language.Haskell.TH
import Language.Haskell.TH.Syntax
-- Splice in a datatype with field...
$(return [DataD [] (mkName "R") [] [RecC (mkName "MkR") [(mkName "foo", NotStrict, ConT ''Int)]] []])
-- New TH story means reify only sees R if we do this:
$(return [])
-- ... and check that we can inspect it
main = do putStrLn $(do { info <- reify ''R
; lift (pprint info) })
print (foo (MkR { foo = 42 }))
|