summaryrefslogtreecommitdiff
path: root/testsuite/tests/esc/Sum.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/esc/Sum.hs')
-rw-r--r--testsuite/tests/esc/Sum.hs22
1 files changed, 22 insertions, 0 deletions
diff --git a/testsuite/tests/esc/Sum.hs b/testsuite/tests/esc/Sum.hs
new file mode 100644
index 0000000000..2b9ee29688
--- /dev/null
+++ b/testsuite/tests/esc/Sum.hs
@@ -0,0 +1,22 @@
+module Sum where
+
+{-- {-# SPECIALISE f :: Int -> Int #-}
+-- {-# CONTRACT f :: x:{y | y > 0} -> {r | r == x + 1} #-}
+-- {-# CONTRACT f :: x:{y | y > 0} -> {y | y > 0} -> {r | r == x + 1} #-}
+-- {-# CONTRACT f :: any -> {y | y > 0} #-}
+-- {-# CONTRACT f :: {y | y > 0} -> _ #-}
+{-# CONTRACT inc :: {y | y > 0} -> {r | r > 1} #-}
+inc :: Int -> Int
+inc x = x + 1
+
+-}
+-- {-# CONTRACT sum2 :: x:{y | y > 0} -> {y | y > x} -> {r | r > 0} #-}
+-- {-# CONTRACT sum2 :: x:{y | y > 0} -> {y | y > x} -> _ #-}
+sum2 :: Int -> Int -> Int
+sum2 x y = x + y
+
+{-
+t1 = inc 5
+t2a = sum2 (inc 5) 2
+t2b = sum2 (inc 5) 6
+-}