diff options
| author | Brian Campbell | 2017-08-10 16:53:01 +0100 |
|---|---|---|
| committer | Brian Campbell | 2017-08-10 16:53:01 +0100 |
| commit | 5c01bf4c78860b1173b156f99d03f115d08e2175 (patch) | |
| tree | a6149f41ecead71254e8f76ac5caa200be18858f /test/typecheck | |
| parent | 3d574f2dfe688d762976f30661d46f806227ba22 (diff) | |
| parent | 128c1965e58d1527c0619d777b5770ec5825ae22 (diff) | |
Merge branch 'experiments' into mono-experiments
Diffstat (limited to 'test/typecheck')
| -rw-r--r-- | test/typecheck/pass/exint.sail | 22 |
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 |
