summaryrefslogtreecommitdiff
path: root/testsuite/tests/printer/PprArrowLambdaCase.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/printer/PprArrowLambdaCase.hs')
-rw-r--r--testsuite/tests/printer/PprArrowLambdaCase.hs18
1 files changed, 18 insertions, 0 deletions
diff --git a/testsuite/tests/printer/PprArrowLambdaCase.hs b/testsuite/tests/printer/PprArrowLambdaCase.hs
new file mode 100644
index 0000000000..c678339890
--- /dev/null
+++ b/testsuite/tests/printer/PprArrowLambdaCase.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE Arrows, LambdaCase #-}
+module Main (main) where
+
+import Control.Arrow
+
+main :: IO ()
+main = do
+ putStrLn $ foo (Just 42)
+ putStrLn $ foo (Just 500)
+ putStrLn $ foo Nothing
+
+foo :: ArrowChoice p => p (Maybe Int) String
+foo = proc x ->
+ (| id (\case
+ Just x | x > 100 -> returnA -< "big " ++ show x
+ | otherwise -> returnA -< "small " ++ show x
+ Nothing -> returnA -< "none")
+ |) x