]> gerrit.simantics Code Review - simantics/platform.git/blob - tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Unification1.scl
SLF2J logging from SCL
[simantics/platform.git] / tests / org.simantics.scl.compiler.tests / src / org / simantics / scl / compiler / tests / scl / Unification1.scl
1 import "JavaBuiltin" as Java
2 import "StandardLibrary"
3 import "Unification"
4
5 pair :: Default a => Default b => UTag (a, b) (Unifiable a, Unifiable b)
6 pair = uTag 0 (\(ua, ub) -> (extract ua, extract ub)) Java.unsafeCoerce  
7
8 /*triple :: Default a => Default b => Default c =>
9     UTag (a, b, c) (Unifiable a, Unifiable b, Unifiable c)*/
10 triple = uTag 0 (\(ua, ub, uc) -> (extract ua, extract ub, extract uc)) Java.unsafeCoerce  
11
12 main :: (Integer,Integer,Integer)
13 main = do
14     um1 = createUMap
15     um2 = createUMap
16     v1 = uVar
17     v2 = uVar
18     v3 = uVar
19     vX = uVar
20     putUMap um1 "a" (uCons triple (v1, v2, v3))
21     putUMap um1 "a" (uCons triple (v2, v3, v1))
22     putUMap um1 "a" (uCons triple (vX, uVar, uVar))
23     putUMap um2 "b" vX
24     putUMapC um2 "b" 12
25
26     getUMap um1 "a"
27 --
28 (12,12,12)