diff --git a/languages/jetbrains.mps.lang.typesystem2/generator/template/main@generator.mps b/languages/jetbrains.mps.lang.typesystem2/generator/template/main@generator.mps
index 6a06967e..cd7f29c7 100644
--- a/languages/jetbrains.mps.lang.typesystem2/generator/template/main@generator.mps
+++ b/languages/jetbrains.mps.lang.typesystem2/generator/template/main@generator.mps
@@ -1167,6 +1167,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/languages/jetbrains.mps.lang.typesystem2/runtime/jetbrains.mps.lang.typesystem2.runtime.msd b/languages/jetbrains.mps.lang.typesystem2/runtime/jetbrains.mps.lang.typesystem2.runtime.msd
index 32f058ae..554e4f1d 100644
--- a/languages/jetbrains.mps.lang.typesystem2/runtime/jetbrains.mps.lang.typesystem2.runtime.msd
+++ b/languages/jetbrains.mps.lang.typesystem2/runtime/jetbrains.mps.lang.typesystem2.runtime.msd
@@ -7,7 +7,7 @@
- 6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
+ 6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)
7526e0cf-1ce7-46f8-a555-9eca1e06c23b(jetbrains.mps.unification.tree)
diff --git a/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/runtime/rule.mps b/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/runtime/rule.mps
index 78f93df0..e1de7a7f 100644
--- a/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/runtime/rule.mps
+++ b/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/runtime/rule.mps
@@ -2,14 +2,17 @@
+
+
+
@@ -406,7 +409,7 @@
-
+
@@ -439,6 +442,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -974,7 +1029,7 @@
-
+
@@ -990,7 +1045,7 @@
-
+
@@ -1076,6 +1131,9 @@
+
+
+
@@ -1618,9 +1676,27 @@
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1634,60 +1710,127 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1696,39 +1839,29 @@
-
+
-
-
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
-
@@ -1745,53 +1878,42 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1830,13 +1952,18 @@
+
+
+
+
+
-
-
+
+
@@ -1890,28 +2017,30 @@
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
@@ -1922,11 +2051,6 @@
-
-
-
-
-
@@ -1944,15 +2068,6 @@
-
-
-
-
-
-
-
-
-
@@ -1961,59 +2076,52 @@
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2026,35 +2134,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -2082,11 +2163,6 @@
-
-
-
-
-
@@ -2602,5 +2678,107 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/runtime/template.mps b/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/runtime/template.mps
index 4b474789..5cee9545 100644
--- a/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/runtime/template.mps
+++ b/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/runtime/template.mps
@@ -5,6 +5,7 @@
+
@@ -13,6 +14,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -66,8 +91,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/runtime/util.mps b/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/runtime/util.mps
new file mode 100644
index 00000000..8ecdb382
--- /dev/null
+++ b/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/runtime/util.mps
@@ -0,0 +1,558 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/languages/jetbrains.mps.lang.typesystem2/sandbox/jetbrains.mps.lang.typesystem2.sandbox.msd b/languages/jetbrains.mps.lang.typesystem2/sandbox/jetbrains.mps.lang.typesystem2.sandbox.msd
index 9ca39840..4e309d07 100644
--- a/languages/jetbrains.mps.lang.typesystem2/sandbox/jetbrains.mps.lang.typesystem2.sandbox.msd
+++ b/languages/jetbrains.mps.lang.typesystem2/sandbox/jetbrains.mps.lang.typesystem2.sandbox.msd
@@ -1,5 +1,5 @@
-
+
@@ -8,15 +8,19 @@
6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
+ 6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)
+ 498d89d2-c2e9-11e2-ad49-6cf049e62fe5(MPS.IDEA)
f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)
26e8f4ce-2a35-4f44-8065-e5ba154b18e9(jetbrains.mps.lang.typesystem2.runtime)
9a4afe51-f114-4595-b5df-048ce3c596be(jetbrains.mps.runtime)
+ c7366fe8-43b9-446d-82b3-5cfc76e71f17(jetbrains.mps.typechecking)
f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)
fd392034-7849-419d-9071-12563d152375(jetbrains.mps.baseLanguage.closures)
83888646-71ce-4f1c-9c53-c54016f6ad4f(jetbrains.mps.baseLanguage.collections)
ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)
+ ef7bf5ac-d06c-4342-b11d-e42104eb9343(jetbrains.mps.lang.plugin.standalone)
7866978e-a0f0-4cc7-81bc-4d213d9375e1(jetbrains.mps.lang.smodel)
c4803b19-6d89-4a3b-bf82-390769514add(jetbrains.mps.lang.typesystem2)
35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)
diff --git a/languages/jetbrains.mps.lang.typesystem2/sandbox/models/jetbrains/mps/lang/typesystem2/sandbox/plugin.mps b/languages/jetbrains.mps.lang.typesystem2/sandbox/models/jetbrains/mps/lang/typesystem2/sandbox/plugin.mps
new file mode 100644
index 00000000..dc6c35ec
--- /dev/null
+++ b/languages/jetbrains.mps.lang.typesystem2/sandbox/models/jetbrains/mps/lang/typesystem2/sandbox/plugin.mps
@@ -0,0 +1,442 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/languages/jetbrains.mps.lang.typesystem2/sandbox/models/jetbrains/mps/lang/typesystem2/sandbox/template.mps b/languages/jetbrains.mps.lang.typesystem2/sandbox/models/jetbrains/mps/lang/typesystem2/sandbox/template.mps
index cbf60222..f3df5454 100644
--- a/languages/jetbrains.mps.lang.typesystem2/sandbox/models/jetbrains/mps/lang/typesystem2/sandbox/template.mps
+++ b/languages/jetbrains.mps.lang.typesystem2/sandbox/models/jetbrains/mps/lang/typesystem2/sandbox/template.mps
@@ -24,6 +24,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+