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
index dcebdf9d..e2ce4e27 100644
--- 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
@@ -28,12 +28,19 @@
+
+
+
+
+
+
+
@@ -64,9 +71,7 @@
-
-
-
+
@@ -79,7 +84,11 @@
+
+
+
+
@@ -88,6 +97,7 @@
+
@@ -152,6 +162,7 @@
+
@@ -904,6 +915,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1117,7 +1179,6 @@
-
@@ -1224,6 +1285,7 @@
+
@@ -1232,8 +1294,11 @@
-
-
+
+
+
+
+
@@ -1275,16 +1340,29 @@
-
-
-
+
+
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1311,16 +1389,19 @@
-
-
-
+
+
+
-
+
-
-
-
+
+
+
+
+
+
@@ -1491,7 +1572,7 @@
-
+
@@ -1683,13 +1764,102 @@
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -1703,39 +1873,282 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -1747,23 +2160,36 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
-
-
-
+
@@ -1958,58 +2384,37 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -2017,282 +2422,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -2306,9 +2436,9 @@
-
-
-
+
+
+
@@ -2316,6 +2446,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2326,9 +2517,9 @@
-
-
-
+
+
+
@@ -2343,9 +2534,9 @@
-
-
-
+
+
+
@@ -2353,16 +2544,11 @@
-
-
-
-
-
-
-
+
+
-
+
@@ -2382,9 +2568,9 @@
-
-
-
+
+
+
@@ -2393,18 +2579,13 @@
-
+
-
-
-
-
-
-
-
+
+
@@ -2421,9 +2602,9 @@
-
-
-
+
+
+
@@ -2432,18 +2613,13 @@
-
+
-
-
-
-
-
-
-
+
+
@@ -2460,9 +2636,9 @@
-
-
-
+
+
+
@@ -2471,18 +2647,13 @@
-
+
-
-
-
-
-
-
-
+
+
@@ -2492,6 +2663,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2532,15 +2737,28 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2548,102 +2766,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/languages/jetbrains.mps.lang.typesystem2/test/jetbrains.mps.lang.typesystem2.test/models/jetbrains/mps/lang/typesystem2/test.mps b/languages/jetbrains.mps.lang.typesystem2/test/jetbrains.mps.lang.typesystem2.test/models/jetbrains/mps/lang/typesystem2/test.mps
index c1e71496..ead3afe2 100644
--- a/languages/jetbrains.mps.lang.typesystem2/test/jetbrains.mps.lang.typesystem2.test/models/jetbrains/mps/lang/typesystem2/test.mps
+++ b/languages/jetbrains.mps.lang.typesystem2/test/jetbrains.mps.lang.typesystem2.test/models/jetbrains/mps/lang/typesystem2/test.mps
@@ -331,6 +331,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+