diff --git a/.mps/modules.xml b/.mps/modules.xml
index 96e39e91..e720db94 100644
--- a/.mps/modules.xml
+++ b/.mps/modules.xml
@@ -59,6 +59,7 @@
+
diff --git a/samples/mpscore/build.xml b/samples/mpscore/build.xml
index 299bad5a..7aa64095 100644
--- a/samples/mpscore/build.xml
+++ b/samples/mpscore/build.xml
@@ -2967,6 +2967,160 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5514,6 +5668,160 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5533,7 +5841,7 @@
-
+
@@ -5703,6 +6011,7 @@
+
@@ -8885,6 +9194,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -9142,6 +9583,8 @@
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/generator/templates/jetbrains.mps.lang.typecheckingExt.generator.templates@generator.mps b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/generator/templates/jetbrains.mps.lang.typecheckingExt.generator.templates@generator.mps
new file mode 100644
index 00000000..e33400ec
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/generator/templates/jetbrains.mps.lang.typecheckingExt.generator.templates@generator.mps
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/jetbrains.mps.lang.typecheckingExt.mpl b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/jetbrains.mps.lang.typecheckingExt.mpl
new file mode 100644
index 00000000..4e1bd970
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/jetbrains.mps.lang.typecheckingExt.mpl
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0fda14cc-a416-4c81-869a-2175d8b3325d(jetbrains.mps.baseLanguageExt)
+ c4803b19-6d89-4a3b-bf82-390769514add(jetbrains.mps.lang.coderules)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4b5b4f8d-d30a-4ef8-9bf4-dfd26af9d462(jetbrains.mps.lang.typechecking)
+ 6a5b4bb9-0a56-4618-aa9a-7068c528ce90(jetbrains.mps.lang.coderulesExt)
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.behavior.mps b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.behavior.mps
new file mode 100644
index 00000000..ab02143f
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.behavior.mps
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.constraints.mps b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.constraints.mps
new file mode 100644
index 00000000..a20705a6
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.constraints.mps
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.editor.mps b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.editor.mps
new file mode 100644
index 00000000..fe77b852
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.editor.mps
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.structure.mps b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.structure.mps
new file mode 100644
index 00000000..bd4bc231
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.structure.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.types.mps b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.types.mps
new file mode 100644
index 00000000..f71490e4
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.types.mps
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.typesystem.mps b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.typesystem.mps
new file mode 100644
index 00000000..71415fd4
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.lang.typecheckingExt/models/jetbrains.mps.lang.typecheckingExt.typesystem.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/solutions/samples.mpscore.build/models/samples.mpscore.build.mps b/samples/mpscore/solutions/samples.mpscore.build/models/samples.mpscore.build.mps
index 1ad86015..a8d1172f 100644
--- a/samples/mpscore/solutions/samples.mpscore.build/models/samples.mpscore.build.mps
+++ b/samples/mpscore/solutions/samples.mpscore.build/models/samples.mpscore.build.mps
@@ -384,6 +384,9 @@
+
+
+
@@ -462,6 +465,9 @@
+
+
+
@@ -3350,6 +3356,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+