]> gerrit.simantics Code Review - simantics/platform.git/blob - tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Signals.scl
Merge commit 'bf75fd9'
[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 Eq Signal\r
12 deriving instance Hashable Signal\r
13 deriving instance Show Signal\r
14 \r
15 instance Additive Signal where\r
16     zero = SigConst 0\r
17     a + b = SigSum [a,b]\r
18     sum l = SigSum l\r
19 \r
20 instance Ring Signal where\r
21     one = SigConst 1\r
22     neg a = SigNeg a\r
23     fromInteger i = SigConst (fromInteger i)\r
24     a * b = SigMul [a,b]\r
25 \r
26 /*\r
27 instance Real Signal where\r
28     fromDouble d = SigConst d\r
29 */\r
30 \r
31 main :: Signal\r
32 main = 1 + 2 * 3 - 4 \r
33 --\r
34 ???