ghc-exactprint-1.14.0.0: tests/examples/pre-ghc910/TH_repGuard.hs
{-# LANGUAGE TemplateHaskell #-}
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