]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Unification1.scl
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.compiler / tests / org / simantics / scl / compiler / tests / scl / Unification1.scl
diff --git a/bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Unification1.scl b/bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Unification1.scl
new file mode 100644 (file)
index 0000000..a174362
--- /dev/null
@@ -0,0 +1,28 @@
+import "JavaBuiltin" as Java
+import "StandardLibrary"
+import "Unification"
+
+pair :: Default a => Default b => UTag (a, b) (Unifiable a, Unifiable b)
+pair = uTag 0 (\(ua, ub) -> (extract ua, extract ub)) Java.unsafeCoerce  
+
+/*triple :: Default a => Default b => Default c =>
+    UTag (a, b, c) (Unifiable a, Unifiable b, Unifiable c)*/
+triple = uTag 0 (\(ua, ub, uc) -> (extract ua, extract ub, extract uc)) Java.unsafeCoerce  
+
+main :: (Integer,Integer,Integer)
+main = do
+    um1 = createUMap
+    um2 = createUMap
+    v1 = uVar
+    v2 = uVar
+    v3 = uVar
+    vX = uVar
+    putUMap um1 "a" (uCons triple (v1, v2, v3))
+    putUMap um1 "a" (uCons triple (v2, v3, v1))
+    putUMap um1 "a" (uCons triple (vX, uVar, uVar))
+    putUMap um2 "b" vX
+    putUMapC um2 "b" 12
+
+    getUMap um1 "a"
+--
+(12,12,12)
\ No newline at end of file