diff --git a/coderules/solutions/jetbrains.mps.typechecking/jetbrains.mps.typechecking.msd b/coderules/solutions/jetbrains.mps.typechecking/jetbrains.mps.typechecking.msd
index 93fca573..c6d3895b 100644
--- a/coderules/solutions/jetbrains.mps.typechecking/jetbrains.mps.typechecking.msd
+++ b/coderules/solutions/jetbrains.mps.typechecking/jetbrains.mps.typechecking.msd
@@ -15,6 +15,7 @@
6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
f97d84b2-8bad-4fdd-8ede-da17b3eacf4c(jetbrains.mps.coderules)
f486b8aa-5b2d-4ec0-8ef5-8f45d773fb84(jetbrains.mps.lang.typechecking.runtime)
+ 0b80a2e8-f9f1-47b3-823f-56eb115bca42(jetbrains.mps.typechecking.annotation)
@@ -34,6 +35,7 @@
+
@@ -52,6 +54,7 @@
+
diff --git a/coderules/solutions/jetbrains.mps.typechecking/models/service.mps b/coderules/solutions/jetbrains.mps.typechecking/models/service.mps
index b0fc0142..6cd039f1 100644
--- a/coderules/solutions/jetbrains.mps.typechecking/models/service.mps
+++ b/coderules/solutions/jetbrains.mps.typechecking/models/service.mps
@@ -11,6 +11,7 @@
+
@@ -49,6 +50,7 @@
+
@@ -150,6 +152,7 @@
+
@@ -166,6 +169,10 @@
+
+
+
+
@@ -253,10 +260,19 @@
+
-
+
+
+
+
+
+
+
+
+
@@ -288,6 +304,7 @@
+
@@ -513,7 +530,7 @@
-
+
@@ -524,6 +541,229 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -662,114 +902,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -817,6 +949,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1627,14 +1775,8 @@
-
-
-
-
-
-
-
-
+
+
diff --git a/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/bounds.bad@tests.mps b/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/bounds.bad@tests.mps
index 27bed5b5..28a517b8 100644
--- a/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/bounds.bad@tests.mps
+++ b/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/bounds.bad@tests.mps
@@ -56,6 +56,7 @@
+
@@ -116,9 +117,19 @@
+
+
+
+
+
+
+
+
+
+
@@ -178,18 +189,33 @@
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
@@ -252,18 +278,33 @@
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
diff --git a/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/typechecking.samples.baseLanguage.bounds.bad.mps b/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/typechecking.samples.baseLanguage.bounds.bad.mps
index 1da28c73..7f02e8d2 100644
--- a/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/typechecking.samples.baseLanguage.bounds.bad.mps
+++ b/samples/mpscore/solutions/typechecking.samples.baseLanguage/models/typechecking.samples.baseLanguage.bounds.bad.mps
@@ -4,6 +4,7 @@
+
@@ -104,6 +105,11 @@
+
+
+
+
+
@@ -120,382 +126,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -865,6 +495,9 @@
+
+
+
@@ -903,5 +536,408 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+