diff --git a/coderules/languages/jetbrains.mps.lang.typechecking/generator/template/main@generator.mps b/coderules/languages/jetbrains.mps.lang.typechecking/generator/template/main@generator.mps
index 1c4fae28..d347d1fb 100644
--- a/coderules/languages/jetbrains.mps.lang.typechecking/generator/template/main@generator.mps
+++ b/coderules/languages/jetbrains.mps.lang.typechecking/generator/template/main@generator.mps
@@ -18,12 +18,21 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -35,20 +44,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -57,6 +79,12 @@
+
+
+
+
+
+
@@ -69,46 +97,101 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -116,7 +199,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -136,9 +235,6 @@
-
-
-
@@ -158,12 +254,30 @@
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
@@ -188,15 +302,13 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
@@ -212,7 +324,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -224,6 +359,12 @@
+
+
+
+
+
+
@@ -234,13 +375,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -283,17 +440,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -319,6 +539,7 @@
+
@@ -340,16 +561,354 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -433,7 +992,7 @@
-
+
@@ -444,9 +1003,6 @@
-
-
-
@@ -520,9 +1076,6 @@
-
-
-
@@ -593,10 +1146,6 @@
-
-
-
-
@@ -623,77 +1172,31 @@
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
+
@@ -725,17 +1228,642 @@
-
-
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.lang.typechecking/jetbrains.mps.lang.typechecking.mpl b/coderules/languages/jetbrains.mps.lang.typechecking/jetbrains.mps.lang.typechecking.mpl
index aaea7468..be661e40 100644
--- a/coderules/languages/jetbrains.mps.lang.typechecking/jetbrains.mps.lang.typechecking.mpl
+++ b/coderules/languages/jetbrains.mps.lang.typechecking/jetbrains.mps.lang.typechecking.mpl
@@ -27,6 +27,7 @@
f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)
6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.coderules.typechecking)
+ c4803b19-6d89-4a3b-bf82-390769514add(jetbrains.mps.lang.coderules)
@@ -67,6 +68,7 @@
+
@@ -102,6 +104,8 @@
6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)
f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)
6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.coderules.typechecking)
+ 1ed103c3-3aa6-49b7-9c21-6765ee11f224(MPS.Editor)
+ bfbdd672-7ff5-403f-af4f-16da5226f34c(jetbrains.mps.findUsages.runtime)
@@ -126,6 +130,7 @@
+
@@ -134,6 +139,7 @@
+
@@ -147,15 +153,20 @@
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.lang.typechecking/models/behavior.mps b/coderules/languages/jetbrains.mps.lang.typechecking/models/behavior.mps
index 14219c5a..336d43f0 100644
--- a/coderules/languages/jetbrains.mps.lang.typechecking/models/behavior.mps
+++ b/coderules/languages/jetbrains.mps.lang.typechecking/models/behavior.mps
@@ -70,10 +70,18 @@
+
+
+
+
+
+
+
+
@@ -91,7 +99,7 @@
-
+
@@ -120,7 +128,7 @@
-
+
@@ -149,7 +157,7 @@
-
+
@@ -178,7 +186,7 @@
-
+
@@ -206,7 +214,7 @@
-
+
@@ -235,7 +243,7 @@
-
+
@@ -263,5 +271,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.lang.typechecking/models/constraints.mps b/coderules/languages/jetbrains.mps.lang.typechecking/models/constraints.mps
index 39252055..c851efb8 100644
--- a/coderules/languages/jetbrains.mps.lang.typechecking/models/constraints.mps
+++ b/coderules/languages/jetbrains.mps.lang.typechecking/models/constraints.mps
@@ -8,7 +8,352 @@
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.lang.typechecking/models/editor.mps b/coderules/languages/jetbrains.mps.lang.typechecking/models/editor.mps
index 9d5bfdb6..e1342077 100644
--- a/coderules/languages/jetbrains.mps.lang.typechecking/models/editor.mps
+++ b/coderules/languages/jetbrains.mps.lang.typechecking/models/editor.mps
@@ -58,6 +58,8 @@
+
+
@@ -98,6 +100,7 @@
+
@@ -156,7 +159,7 @@
-
+
@@ -199,7 +202,7 @@
-
+
@@ -214,21 +217,21 @@
-
+
-
+
-
+
@@ -239,7 +242,7 @@
-
+
@@ -293,7 +296,7 @@
-
+
@@ -345,20 +348,21 @@
-
+
-
+
+
@@ -443,6 +447,7 @@
+
@@ -458,6 +463,7 @@
+
@@ -466,5 +472,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.lang.typechecking/models/jetbrains.mps.lang.typechecking.intentions.mps b/coderules/languages/jetbrains.mps.lang.typechecking/models/jetbrains.mps.lang.typechecking.intentions.mps
new file mode 100644
index 00000000..2ffec2ca
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.lang.typechecking/models/jetbrains.mps.lang.typechecking.intentions.mps
@@ -0,0 +1,365 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.lang.typechecking/models/structure.mps b/coderules/languages/jetbrains.mps.lang.typechecking/models/structure.mps
index cc3352fc..3af3e604 100644
--- a/coderules/languages/jetbrains.mps.lang.typechecking/models/structure.mps
+++ b/coderules/languages/jetbrains.mps.lang.typechecking/models/structure.mps
@@ -11,6 +11,7 @@
+
@@ -47,7 +48,7 @@
-
+
@@ -61,7 +62,7 @@
-
+
@@ -75,35 +76,35 @@
-
+
-
+
-
+
-
+
-
+
@@ -111,6 +112,7 @@
+
@@ -129,6 +131,7 @@
+
@@ -140,6 +143,7 @@
+
@@ -149,5 +153,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.lang.typechecking/models/typesystem.mps b/coderules/languages/jetbrains.mps.lang.typechecking/models/typesystem.mps
index fea8f528..8eebf645 100644
--- a/coderules/languages/jetbrains.mps.lang.typechecking/models/typesystem.mps
+++ b/coderules/languages/jetbrains.mps.lang.typechecking/models/typesystem.mps
@@ -102,7 +102,7 @@
-
+