summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorBrian Campbell2017-08-10 16:53:01 +0100
committerBrian Campbell2017-08-10 16:53:01 +0100
commit5c01bf4c78860b1173b156f99d03f115d08e2175 (patch)
treea6149f41ecead71254e8f76ac5caa200be18858f /test
parent3d574f2dfe688d762976f30661d46f806227ba22 (diff)
parent128c1965e58d1527c0619d777b5770ec5825ae22 (diff)
Merge branch 'experiments' into mono-experiments
Diffstat (limited to 'test')
-rw-r--r--test/typecheck/pass/exint.sail22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/typecheck/pass/exint.sail b/test/typecheck/pass/exint.sail
new file mode 100644
index 00000000..dfe51eb9
--- /dev/null
+++ b/test/typecheck/pass/exint.sail
@@ -0,0 +1,22 @@
+
+typedef Int = exist 'n. [:'n:]
+
+val ([:'n:], [:'m:]) -> exist 'o, 'o = 'n + 'm. [:'o:] effect pure add
+
+val ([:'n:], [:'m:]) -> exist 'o, 'o = 'n * 'm. [:'o:] effect pure mult
+
+overload (deinfix +) [add]
+
+overload (deinfix * ) [mult]
+
+let x = 3 + 4
+
+let y = x + x * x
+
+let ([:7 * 8:]) z = y
+
+typedef Range = forall Num 'n, Num 'm, 'n <= 'm. exist 'o, 'n <= 'o & 'o <= 'm. [:'o:]
+
+let (Range<3,4>) a = 3
+
+let (Range<2,5>) b = a + 1 \ No newline at end of file