summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghc-regress/th/T4188.hs
blob: 73fd925302dde322a2891de7d4150d9ba7c48a80 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{-# LANGUAGE TemplateHaskell, GADTs #-}

module T4188 where

import Language.Haskell.TH
import System.IO

class C a where {}

data T1 a where
  MkT1 :: a -> b -> T1 a

data T2 a where
  MkT2 :: (C a, C b) => a -> b -> T2 a

data T3 x where
  MkT3 :: (C x, C y) => x -> y -> T3 (x,y)

$(do { dec1 <- reify ''T1
     ; runIO (putStrLn (pprint dec1))
     ; dec2 <- reify ''T2
     ; runIO (putStrLn (pprint dec2))
     ; dec3 <- reify ''T3
     ; runIO (putStrLn (pprint dec3))
     ; runIO (hFlush stdout)
     ; return [] })