]> gerrit.simantics Code Review - simantics/platform.git/blob - tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/OverloadedArithmetic3.scl
Merge commit 'd1a82fe'
[simantics/platform.git] / tests / org.simantics.scl.compiler.tests / src / org / simantics / scl / compiler / tests / scl / OverloadedArithmetic3.scl
1 import "JavaBuiltin" as Java\r
2 \r
3 infixl 7 (*)\r
4 infixl 6 (+)\r
5 \r
6 class Additive a where \r
7     (+) :: a -> a -> a    \r
8 \r
9 class (Additive a) => Ring a where\r
10     (*) :: a -> a -> a\r
11 \r
12 instance Additive Double where\r
13     x + y = Java.dadd x y\r
14 \r
15 instance Ring Double where\r
16     x * y = Java.dmul x y\r
17 \r
18 instance Additive Integer where\r
19     x + y = Java.iadd x y\r
20 \r
21 instance Ring Integer where\r
22     x * y = Java.imul x y\r
23 \r
24 main = (1.0 :: Double)*(2.0 :: Double)+(3.0 :: Double)*(4.0 :: Double)\r
25 --\r
26 14.0\r
27 \r