diff options
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 |
