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