]> gerrit.simantics Code Review - simantics/platform.git/blob - tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Signals.scl
Merge "Re-enabled Acorn transaction cancellation support for testing"
[simantics/platform.git] / tests / org.simantics.scl.compiler.tests / src / org / simantics / scl / compiler / tests / scl / Signals.scl
1 import "Prelude"\r
2 \r
3 // --- Signals ------------------------------------------------------\r
4 \r
5 data Signal =\r
6     SigSum [Signal]\r
7   | SigConst Double\r
8   | SigNeg Signal\r
9   | SigMul [Signal]\r
10 \r
11 deriving instance Show Signal\r
12 \r
13 instance Additive Signal where\r
14     zero = SigConst 0\r
15     a + b = SigSum [a,b]\r
16     sum l = SigSum l\r
17 \r
18 instance Ring Signal where\r
19     one = SigConst 1\r
20     neg a = SigNeg a\r
21     fromInteger i = SigConst (fromInteger i)\r
22     a * b = SigMul [a,b]\r
23 \r
24 /*\r
25 instance Real Signal where\r
26     fromDouble d = SigConst d\r
27 */\r
28 \r
29 main :: Signal\r
30 main = 1 + 2 * 3 - 4 \r
31 --\r
32 ???