diff options
Diffstat (limited to 'testsuite/tests/th/TH_repGuard.hs')
-rw-r--r-- | testsuite/tests/th/TH_repGuard.hs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/testsuite/tests/th/TH_repGuard.hs b/testsuite/tests/th/TH_repGuard.hs new file mode 100644 index 0000000000..b2ab4af6d6 --- /dev/null +++ b/testsuite/tests/th/TH_repGuard.hs @@ -0,0 +1,35 @@ + +module Main +where + +import Language.Haskell.TH +import System.IO + +$( + do ds <- [d| + foo :: Int -> Int + foo x + | x == 5 = 6 + foo x = 7 + |] + runIO $ do { putStrLn (pprint ds); hFlush stdout } + return ds + ) + +$( + do ds <- [d| + bar :: Maybe Int -> Int + bar x + | Just y <- x = y + bar _ = 9 + |] + runIO $ do { putStrLn (pprint ds) ; hFlush stdout } + return ds + ) + +main :: IO () +main = do putStrLn $ show $ foo 5 + putStrLn $ show $ foo 8 + putStrLn $ show $ bar (Just 2) + putStrLn $ show $ bar Nothing + |