diff --git a/typechecking/languages/jetbrains.mps.lang.typesystem2.sampleLang/models/types.mps b/typechecking/languages/jetbrains.mps.lang.typesystem2.sampleLang/models/types.mps
index 74dba9ab..9b5099b0 100644
--- a/typechecking/languages/jetbrains.mps.lang.typesystem2.sampleLang/models/types.mps
+++ b/typechecking/languages/jetbrains.mps.lang.typesystem2.sampleLang/models/types.mps
@@ -10356,23 +10356,23 @@
-
+
-
+
-
+
-
+
-
+
@@ -10381,7 +10381,7 @@
-
+
diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.sampleplugin/models/jetbrains/mps/lang/typesystem2/sampleplugin/plugin.mps b/typechecking/solutions/jetbrains.mps.lang.typesystem2.sampleplugin/models/jetbrains/mps/lang/typesystem2/sampleplugin/plugin.mps
index 273db87b..af4bd14e 100644
--- a/typechecking/solutions/jetbrains.mps.lang.typesystem2.sampleplugin/models/jetbrains/mps/lang/typesystem2/sampleplugin/plugin.mps
+++ b/typechecking/solutions/jetbrains.mps.lang.typesystem2.sampleplugin/models/jetbrains/mps/lang/typesystem2/sampleplugin/plugin.mps
@@ -205,7 +205,6 @@
-
@@ -779,7 +778,9 @@
-
+
+
+
@@ -818,53 +819,34 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
@@ -880,8 +862,8 @@
-
-
+
+
@@ -890,17 +872,12 @@
-
-
-
-
-
@@ -918,110 +895,20 @@
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -1045,18 +932,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -1070,7 +947,9 @@
-
+
+
+
@@ -6608,16 +6487,8 @@
-
-
-
-
-
-
-
-
-
-
+
+
@@ -6629,7 +6500,7 @@
-
+
@@ -6864,12 +6735,15 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -7107,24 +6981,24 @@
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
-
+
+
@@ -7175,19 +7049,25 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
@@ -7214,13 +7094,35 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
@@ -7245,15 +7147,46 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/generation.mps b/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/generation.mps
index 212f6a15..f82dbc98 100644
--- a/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/generation.mps
+++ b/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/generation.mps
@@ -17,14 +17,11 @@
-
-
-
-
+
@@ -43,6 +40,9 @@
+
+
+
@@ -87,7 +87,6 @@
-
@@ -101,23 +100,22 @@
+
+
+
-
-
-
-
+
-
@@ -154,6 +152,7 @@
+
@@ -186,7 +185,6 @@
-
@@ -194,9 +192,6 @@
-
-
-
@@ -232,9 +227,7 @@
-
-
-
+
@@ -321,12 +314,12 @@
+
-
@@ -338,186 +331,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -538,30 +351,17 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -588,8 +388,8 @@
-
-
+
+
@@ -608,10 +408,10 @@
-
-
-
-
+
+
+
+
@@ -621,7 +421,136 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -631,40 +560,54 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -676,8 +619,13 @@
-
-
+
+
+
+
+
+
+
@@ -739,28 +687,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -771,24 +711,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -803,26 +728,8 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -856,37 +763,33 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -894,7 +797,7 @@
-
+
@@ -902,25 +805,8 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -928,8 +814,11 @@
-
+
+
+
+
@@ -939,9 +828,6 @@
-
-
-
@@ -951,42 +837,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
@@ -1001,91 +902,89 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
-
+
-
-
-
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
@@ -1094,7 +993,9 @@
-
+
+
+
@@ -1106,16 +1007,20 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
@@ -1125,31 +1030,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
@@ -1178,54 +1073,65 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
@@ -1240,14 +1146,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
@@ -1255,6 +1184,9 @@
+
+
+
@@ -1262,14 +1194,6 @@
-
-
-
-
-
-
-
-
@@ -1279,56 +1203,35 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
-
+
-
+
@@ -1341,6 +1244,9 @@
+
+
+
@@ -1348,14 +1254,6 @@
-
-
-
-
-
-
-
-
@@ -1363,53 +1261,32 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
-
+
@@ -1421,11 +1298,6 @@
-
-
-
-
-
@@ -1442,37 +1314,47 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1528,57 +1410,61 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
@@ -1596,21 +1482,24 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
@@ -1619,7 +1508,7 @@
-
+
@@ -1639,210 +1528,305 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -1883,46 +1867,31 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1966,7 +1935,6 @@
-
@@ -1983,18 +1951,44 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2004,6 +1998,9 @@
+
+
+
@@ -2016,6 +2013,9 @@
+
+
+
@@ -2031,6 +2031,9 @@
+
+
+
@@ -2042,6 +2045,9 @@
+
+
+
@@ -2052,22 +2058,55 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -2078,7 +2117,7 @@
-
+
@@ -2087,7 +2126,7 @@
-
+
@@ -2103,6 +2142,9 @@
+
+
+
@@ -2145,6 +2187,10 @@
+
+
+
+
@@ -2155,6 +2201,9 @@
+
+
+
@@ -2163,19 +2212,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -2186,11 +2222,11 @@
-
-
-
-
-
+
+
+
+
+
@@ -2200,13 +2236,6 @@
-
-
-
-
-
-
-
@@ -2234,34 +2263,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -2279,7 +2280,7 @@
-
+
@@ -2291,36 +2292,36 @@
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -2328,7 +2329,7 @@
-
+
@@ -2356,26 +2357,13 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -2391,6 +2379,14 @@
+
+
+
+
+
+
+
+
@@ -2492,7 +2488,7 @@
-
+
@@ -2505,6 +2501,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2520,12 +2530,12 @@
-
+
-
+
@@ -2535,18 +2545,26 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -2557,7 +2575,7 @@
-
+
@@ -2571,7 +2589,7 @@
-
+
@@ -2668,7 +2686,7 @@
-
+
@@ -2684,23 +2702,70 @@
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
@@ -2714,12 +2779,154 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/program.mps b/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/program.mps
index 761e20e9..bd5be285 100644
--- a/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/program.mps
+++ b/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/models/jetbrains/mps/lang/typesystem2/program.mps
@@ -904,8 +904,8 @@
-
-
+
+