diff --git a/build.xml b/build.xml
index 39849238..ac7d3c5f 100644
--- a/build.xml
+++ b/build.xml
@@ -542,6 +542,7 @@
+
@@ -2261,6 +2262,7 @@
+
diff --git a/typechecking/solutions/jetbrains.mps.typechecking.build/models/jetbrains.mps.typechecking.build.mps b/typechecking/solutions/jetbrains.mps.typechecking.build/models/jetbrains.mps.typechecking.build.mps
index 51dc433d..584f4d03 100644
--- a/typechecking/solutions/jetbrains.mps.typechecking.build/models/jetbrains.mps.typechecking.build.mps
+++ b/typechecking/solutions/jetbrains.mps.typechecking.build/models/jetbrains.mps.typechecking.build.mps
@@ -1081,6 +1081,12 @@
+
+
+
+
+
+
diff --git a/typechecking/solutions/jetbrains.mps.typechecking.sample.test/jetbrains.mps.typechecking.sample.test.msd b/typechecking/solutions/jetbrains.mps.typechecking.sample.test/jetbrains.mps.typechecking.sample.test.msd
index 0bb108f6..cd372b29 100644
--- a/typechecking/solutions/jetbrains.mps.typechecking.sample.test/jetbrains.mps.typechecking.sample.test.msd
+++ b/typechecking/solutions/jetbrains.mps.typechecking.sample.test/jetbrains.mps.typechecking.sample.test.msd
@@ -19,6 +19,7 @@
+
diff --git a/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.bounds.bad@tests.mps b/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.bounds.bad@tests.mps
index 31112d79..cdc3fdb9 100644
--- a/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.bounds.bad@tests.mps
+++ b/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.bounds.bad@tests.mps
@@ -6,12 +6,15 @@
+
+
+
@@ -20,16 +23,9 @@
-
+
-
-
-
-
-
-
-
@@ -44,6 +40,15 @@
+
+
+
+
+
+
+
+
+
@@ -51,13 +56,27 @@
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -72,14 +91,22 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
@@ -87,48 +114,67 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
@@ -138,28 +184,62 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
diff --git a/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.bounds@tests.mps b/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.bounds@tests.mps
index 7f5733d3..35ab6f94 100644
--- a/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.bounds@tests.mps
+++ b/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.bounds@tests.mps
@@ -9,12 +9,15 @@
+
+
+
@@ -23,16 +26,9 @@
-
+
-
-
-
-
-
-
-
@@ -47,6 +43,15 @@
+
+
+
+
+
+
+
+
+
@@ -54,13 +59,27 @@
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -75,14 +94,22 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
@@ -90,56 +117,67 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
@@ -149,28 +187,62 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
@@ -180,28 +252,62 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
diff --git a/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.codeAnal@tests.mps b/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.codeAnal@tests.mps
index 6b672e87..446aeb20 100644
--- a/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.codeAnal@tests.mps
+++ b/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.codeAnal@tests.mps
@@ -7,12 +7,15 @@
+
+
+
@@ -21,16 +24,9 @@
-
+
-
-
-
-
-
-
-
@@ -45,6 +41,15 @@
+
+
+
+
+
+
+
+
+
@@ -52,13 +57,27 @@
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -73,14 +92,22 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
@@ -91,40 +118,67 @@
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
diff --git a/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.helloWorld@tests.mps b/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.helloWorld@tests.mps
index 99433ee0..7bda8391 100644
--- a/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.helloWorld@tests.mps
+++ b/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.helloWorld@tests.mps
@@ -5,12 +5,15 @@
+
+
+
@@ -19,16 +22,9 @@
-
+
-
-
-
-
-
-
-
@@ -43,6 +39,15 @@
+
+
+
+
+
+
+
+
+
@@ -50,13 +55,27 @@
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -71,14 +90,22 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
@@ -89,48 +116,67 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
@@ -140,28 +186,62 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
diff --git a/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.simpleGenerics@tests.mps b/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.simpleGenerics@tests.mps
index 81b0ea56..e8ef0205 100644
--- a/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.simpleGenerics@tests.mps
+++ b/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.simpleGenerics@tests.mps
@@ -5,12 +5,15 @@
+
+
+
@@ -19,16 +22,9 @@
-
+
-
-
-
-
-
-
-
@@ -43,6 +39,15 @@
+
+
+
+
+
+
+
+
+
@@ -50,13 +55,27 @@
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -71,14 +90,22 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
@@ -89,48 +116,67 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
@@ -140,28 +186,62 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
diff --git a/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.slice@tests.mps b/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.slice@tests.mps
index 2a8a211a..bbceb9cf 100644
--- a/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.slice@tests.mps
+++ b/typechecking/solutions/jetbrains.mps.typechecking.sample.test/models/jetbrains.mps.typechecking.sample.slice@tests.mps
@@ -5,12 +5,15 @@
+
+
+
@@ -19,16 +22,9 @@
-
+
-
-
-
-
-
-
-
@@ -43,6 +39,15 @@
+
+
+
+
+
+
+
+
+
@@ -50,13 +55,27 @@
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -71,14 +90,22 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
@@ -89,48 +116,67 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
@@ -140,28 +186,62 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
diff --git a/typechecking/solutions/jetbrains.mps.typechecking.test/jetbrains.mps.lang.typechecking.test.msd b/typechecking/solutions/jetbrains.mps.typechecking.test/jetbrains.mps.lang.typechecking.test.msd
index 6c6f9fde..80966204 100644
--- a/typechecking/solutions/jetbrains.mps.typechecking.test/jetbrains.mps.lang.typechecking.test.msd
+++ b/typechecking/solutions/jetbrains.mps.typechecking.test/jetbrains.mps.lang.typechecking.test.msd
@@ -19,18 +19,23 @@
ff6372a2-2f45-4ec3-952b-02581666015f(jetbrains.mps.lang.typesystem2.template)
35e2a720-13d8-4eda-88d3-ff9d78d5a3ae(jetbrains.mps.typechecking.ui)
6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.typechecking)
+ ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)
+
+
+
+
diff --git a/typechecking/solutions/jetbrains.mps.typechecking.test/models/data.mps b/typechecking/solutions/jetbrains.mps.typechecking.test/models/data.mps
new file mode 100644
index 00000000..d96a8a20
--- /dev/null
+++ b/typechecking/solutions/jetbrains.mps.typechecking.test/models/data.mps
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/typechecking/solutions/jetbrains.mps.typechecking.test/models/jetbrains.mps.typechecking@tests.mps b/typechecking/solutions/jetbrains.mps.typechecking.test/models/jetbrains.mps.typechecking@tests.mps
index 6b5a0e6e..414253a2 100644
--- a/typechecking/solutions/jetbrains.mps.typechecking.test/models/jetbrains.mps.typechecking@tests.mps
+++ b/typechecking/solutions/jetbrains.mps.typechecking.test/models/jetbrains.mps.typechecking@tests.mps
@@ -12,6 +12,9 @@
+
+
+
@@ -31,31 +34,28 @@
-
-
+
+
+
+
+
+
+
-
-
+
-
-
-
-
-
-
-
@@ -64,7 +64,6 @@
-
@@ -88,16 +87,9 @@
-
-
-
-
-
-
-
@@ -107,32 +99,16 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -143,11 +119,6 @@
-
-
-
-
-
@@ -156,26 +127,26 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -183,16 +154,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -204,6 +165,9 @@
+
+
+
@@ -220,6 +184,13 @@
+
+
+
+
+
+
+
@@ -227,12 +198,23 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -252,9 +234,6 @@
-
-
-
@@ -264,248 +243,321 @@
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
@@ -514,472 +566,499 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -989,243 +1068,219 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1235,241 +1290,96 @@
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/typechecking/solutions/jetbrains.mps.typechecking/models/typechecking.mps b/typechecking/solutions/jetbrains.mps.typechecking/models/typechecking.mps
index 3cd5f1e4..9596b302 100644
--- a/typechecking/solutions/jetbrains.mps.typechecking/models/typechecking.mps
+++ b/typechecking/solutions/jetbrains.mps.typechecking/models/typechecking.mps
@@ -2,14 +2,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -403,6 +403,7 @@
+
@@ -462,19 +463,27 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -490,86 +499,39 @@
-
-
-
-
-
+
+
+
+
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -599,6 +561,112 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4047,6 +4115,14 @@
+
+
+
+
+
+
+
+
@@ -4090,14 +4166,6 @@
-
-
-
-
-
-
-
-
diff --git a/typesystem2/solutions/jetbrains.mps.lang.typesystem2.helper/models/jetbrains/mps/lang/typesystem2/helper/plugin.mps b/typesystem2/solutions/jetbrains.mps.lang.typesystem2.helper/models/jetbrains/mps/lang/typesystem2/helper/plugin.mps
index 95183f87..6c3ef9eb 100644
--- a/typesystem2/solutions/jetbrains.mps.lang.typesystem2.helper/models/jetbrains/mps/lang/typesystem2/helper/plugin.mps
+++ b/typesystem2/solutions/jetbrains.mps.lang.typesystem2.helper/models/jetbrains/mps/lang/typesystem2/helper/plugin.mps
@@ -20,6 +20,7 @@
+
@@ -39,7 +40,6 @@
-
@@ -112,7 +112,6 @@
-
@@ -143,7 +142,9 @@
-
+
+
+
@@ -151,12 +152,8 @@
+
-
-
-
-
-
@@ -180,7 +177,6 @@
-
@@ -201,12 +197,6 @@
-
-
-
-
-
-
@@ -214,11 +204,7 @@
-
-
-
-
@@ -227,12 +213,12 @@
-
-
+
+
-
-
-
+
+
+
@@ -263,14 +249,22 @@
-
-
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
@@ -284,34 +278,35 @@
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
@@ -325,44 +320,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -374,58 +331,52 @@
-
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-