diff options
author | David Terei <davidterei@gmail.com> | 2011-07-20 11:09:03 -0700 |
---|---|---|
committer | David Terei <davidterei@gmail.com> | 2011-07-20 11:26:35 -0700 |
commit | 16514f272fb42af6e9c7674a9bd6c9dce369231f (patch) | |
tree | e4f332b45fe65e2a7a2451be5674f887b42bf199 /testsuite/tests/th/TH_reifyDecl1.hs | |
parent | ebd422aed41048476aa61dd4c520d43becd78682 (diff) | |
download | haskell-16514f272fb42af6e9c7674a9bd6c9dce369231f.tar.gz |
Move tests from tests/ghc-regress/* to just tests/*
Diffstat (limited to 'testsuite/tests/th/TH_reifyDecl1.hs')
-rw-r--r-- | testsuite/tests/th/TH_reifyDecl1.hs | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/testsuite/tests/th/TH_reifyDecl1.hs b/testsuite/tests/th/TH_reifyDecl1.hs new file mode 100644 index 0000000000..dfd05187ba --- /dev/null +++ b/testsuite/tests/th/TH_reifyDecl1.hs @@ -0,0 +1,46 @@ +-- test reification of data declarations + +module TH_reifyDecl1 where + +import Language.Haskell.TH +import Text.PrettyPrint.HughesPJ + +infixl 3 `m` + +-- simple +data T = A | B + +-- parametric +data R a = C a | D + +-- recursive +data List a = Nil | Cons a (List a) + +-- infix operator +data Tree a = Leaf | Tree a :+: Tree a + +-- type declaration +type IntList = [Int] + +-- newtype declaration +newtype Length = Length Int + +-- simple class +class C a where + m :: a -> Int + +test :: () +test = $(let + display :: Name -> Q () + display q = do { i <- reify q; report False (pprint i) } + in do { display ''T + ; display ''R + ; display ''List + ; display ''Tree + ; display ''IntList + ; display ''Length + ; display 'Leaf + ; display 'm + ; [| () |] }) + + |