]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/OverloadedArithmetic3.scl
Automatic execution of SCL tests in Maven
[simantics/platform.git] / tests / org.simantics.scl.compiler.tests / src / org / simantics / scl / compiler / tests / scl / OverloadedArithmetic3.scl
diff --git a/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/OverloadedArithmetic3.scl b/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/OverloadedArithmetic3.scl
new file mode 100644 (file)
index 0000000..230e486
--- /dev/null
@@ -0,0 +1,27 @@
+import "JavaBuiltin" as Java\r
+\r
+infixl 7 (*)\r
+infixl 6 (+)\r
+\r
+class Additive a where \r
+    (+) :: a -> a -> a    \r
+\r
+class (Additive a) => Ring a where\r
+    (*) :: a -> a -> a\r
+\r
+instance Additive Double where\r
+    x + y = Java.dadd x y\r
+\r
+instance Ring Double where\r
+    x * y = Java.dmul x y\r
+\r
+instance Additive Integer where\r
+    x + y = Java.iadd x y\r
+\r
+instance Ring Integer where\r
+    x * y = Java.imul x y\r
+\r
+main = (1.0 :: Double)*(2.0 :: Double)+(3.0 :: Double)*(4.0 :: Double)\r
+--\r
+14.0\r
+\r