diff --git a/.mps/modules.xml b/.mps/modules.xml
index ca30989d..a732ceab 100644
--- a/.mps/modules.xml
+++ b/.mps/modules.xml
@@ -7,13 +7,12 @@
-
-
+
+
-
@@ -23,8 +22,8 @@
-
-
+
+
@@ -62,6 +61,7 @@
+
diff --git a/build.xml b/build.xml
index 725d3709..ca4c2784 100644
--- a/build.xml
+++ b/build.xml
@@ -89,6 +89,7 @@
+
@@ -181,8 +182,10 @@
+
+
@@ -277,15 +280,14 @@
+
-
-
@@ -303,7 +305,7 @@
-
+
@@ -337,12 +339,13 @@
-
+
+
@@ -418,7 +421,6 @@
-
@@ -431,10 +433,8 @@
-
-
@@ -531,14 +531,12 @@
-
-
@@ -609,15 +607,14 @@
-
-
-
+
+
@@ -657,111 +654,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -785,10 +677,11 @@
-
+
+
@@ -860,6 +753,7 @@
+
@@ -924,17 +818,13 @@
-
-
-
-
@@ -998,8 +888,9 @@
-
+
+
@@ -1170,9 +1061,7 @@
-
-
@@ -1248,8 +1137,9 @@
+
-
+
@@ -1325,7 +1215,7 @@
-
+
@@ -1407,7 +1297,7 @@
-
+
@@ -1550,16 +1440,14 @@
-
-
-
+
@@ -1576,10 +1464,8 @@
-
-
@@ -1629,7 +1515,6 @@
-
@@ -1639,15 +1524,13 @@
-
-
-
+
@@ -1839,24 +1722,16 @@
-
-
-
-
-
-
-
-
@@ -1926,7 +1801,6 @@
-
@@ -1935,7 +1809,6 @@
-
@@ -2132,15 +2005,14 @@
-
-
-
+
+
@@ -2180,69 +2052,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -2287,15 +2096,14 @@
+
-
-
@@ -2313,7 +2121,7 @@
-
+
@@ -2353,10 +2161,11 @@
-
+
+
@@ -2401,48 +2210,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -2470,6 +2237,7 @@
+
@@ -2527,8 +2295,9 @@
+
-
+
@@ -2591,7 +2360,7 @@
-
+
@@ -2673,7 +2442,7 @@
-
+
@@ -2816,16 +2585,14 @@
-
-
-
+
@@ -2842,10 +2609,8 @@
-
-
@@ -2915,6 +2680,7 @@
+
@@ -3007,8 +2773,10 @@
+
+
@@ -3080,17 +2848,13 @@
-
-
-
-
@@ -3160,7 +2924,6 @@
-
@@ -3173,10 +2936,8 @@
-
-
@@ -3274,14 +3035,12 @@
-
-
@@ -3482,9 +3241,7 @@
-
-
@@ -3568,7 +3325,6 @@
-
@@ -3577,7 +3333,6 @@
-
@@ -3755,7 +3510,7 @@
-
+
@@ -3779,13 +3534,11 @@
-
-
@@ -3795,7 +3548,7 @@
-
+
@@ -3938,25 +3691,24 @@
-
+
-
+
+
-
-
@@ -3982,15 +3734,13 @@
-
-
-
+
@@ -4001,18 +3751,17 @@
+
+
-
-
-
@@ -4043,7 +3792,7 @@
-
+
@@ -4113,15 +3862,14 @@
+
-
-
-
+
@@ -4155,6 +3903,7 @@
+
@@ -4201,7 +3950,7 @@
-
+
@@ -4210,44 +3959,47 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
-
@@ -4255,7 +4007,6 @@
-
@@ -4269,7 +4020,7 @@
-
+
@@ -4293,7 +4044,6 @@
-
@@ -4338,7 +4088,7 @@
-
+
@@ -4360,29 +4110,10 @@
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -4391,7 +4122,7 @@
-
+
@@ -4425,9 +4156,6 @@
-
-
-
@@ -4473,20 +4201,16 @@
-
+
-
-
-
-
-
+
@@ -4521,14 +4245,9 @@
-
+
-
-
-
-
-
@@ -4572,7 +4291,7 @@
-
+
@@ -4607,18 +4326,11 @@
-
-
-
-
-
-
-
@@ -4660,7 +4372,7 @@
-
+
@@ -4691,7 +4403,6 @@
-
@@ -4702,17 +4413,11 @@
-
-
-
-
-
-
@@ -4758,7 +4463,7 @@
-
+
@@ -4789,7 +4494,6 @@
-
@@ -4800,19 +4504,13 @@
-
-
-
-
-
-
@@ -4853,7 +4551,7 @@
-
+
@@ -4925,18 +4623,16 @@
-
-
-
+
-
+
@@ -4966,12 +4662,9 @@
-
-
-
@@ -5022,7 +4715,7 @@
-
+
@@ -5045,13 +4738,10 @@
-
-
-
-
+
@@ -5059,9 +4749,6 @@
-
-
-
@@ -5103,7 +4790,7 @@
-
+
@@ -5134,7 +4821,6 @@
-
@@ -5145,11 +4831,9 @@
-
-
@@ -5178,7 +4862,6 @@
-
@@ -5186,7 +4869,6 @@
-
@@ -5207,7 +4889,7 @@
-
+
@@ -5238,19 +4920,16 @@
-
-
+
+
-
-
-
@@ -5276,19 +4955,13 @@
-
-
-
-
-
-
@@ -5371,7 +5044,7 @@
-
+
@@ -5403,25 +5076,20 @@
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
@@ -5450,23 +5118,15 @@
-
-
-
-
-
-
-
-
@@ -5486,7 +5146,194 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5509,7 +5356,6 @@
-
@@ -5568,7 +5414,7 @@
-
+
@@ -5604,7 +5450,6 @@
-
@@ -5646,285 +5491,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -5956,11 +5523,9 @@
-
-
@@ -6082,7 +5647,6 @@
-
diff --git a/coderules/devkits/jetbrains.mps.devkit.aspect.types/jetbrains.mps.devkit.aspect.types.devkit b/coderules/devkits/jetbrains.mps.devkit.aspect.types/jetbrains.mps.devkit.aspect.types.devkit
index d5aeed34..7c92b222 100644
--- a/coderules/devkits/jetbrains.mps.devkit.aspect.types/jetbrains.mps.devkit.aspect.types.devkit
+++ b/coderules/devkits/jetbrains.mps.devkit.aspect.types/jetbrains.mps.devkit.aspect.types.devkit
@@ -9,6 +9,8 @@
f486b8aa-5b2d-4ec0-8ef5-8f45d773fb84(jetbrains.mps.lang.typechecking.runtime)
+ a5478664-6b44-4c62-a9f7-434f8aa57eee(jetbrains.mps.logic.runtime)
+ 6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.coderules.typechecking)
diff --git a/coderules/languages/jetbrains.mps.lang.coderules/generator/template/main@generator.mps b/coderules/languages/jetbrains.mps.lang.coderules/generator/template/main@generator.mps
index 3df0371d..5a81c940 100644
--- a/coderules/languages/jetbrains.mps.lang.coderules/generator/template/main@generator.mps
+++ b/coderules/languages/jetbrains.mps.lang.coderules/generator/template/main@generator.mps
@@ -24,22 +24,22 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -1355,7 +1355,7 @@
-
+
@@ -1368,7 +1368,7 @@
-
+
@@ -1377,7 +1377,7 @@
-
+
@@ -1475,7 +1475,7 @@
-
+
@@ -1485,7 +1485,7 @@
-
+
@@ -1551,7 +1551,7 @@
-
+
@@ -1561,7 +1561,7 @@
-
+
@@ -1647,7 +1647,7 @@
-
+
@@ -1657,7 +1657,7 @@
-
+
@@ -1723,7 +1723,7 @@
-
+
@@ -1733,7 +1733,7 @@
-
+
@@ -1918,7 +1918,7 @@
-
+
@@ -1934,7 +1934,7 @@
-
+
@@ -2021,7 +2021,7 @@
-
+
@@ -2031,7 +2031,7 @@
-
+
@@ -2106,7 +2106,7 @@
-
+
@@ -2116,7 +2116,7 @@
-
+
@@ -2247,7 +2247,7 @@
-
+
@@ -2258,7 +2258,7 @@
-
+
@@ -2279,7 +2279,7 @@
-
+
@@ -2299,7 +2299,7 @@
-
+
@@ -2354,7 +2354,7 @@
-
+
@@ -2366,7 +2366,7 @@
-
+
@@ -2387,7 +2387,7 @@
-
+
@@ -2450,7 +2450,7 @@
-
+
@@ -2513,7 +2513,7 @@
-
+
@@ -2571,15 +2571,15 @@
-
+
-
-
+
+
-
+
@@ -2615,7 +2615,7 @@
-
+
@@ -2637,15 +2637,15 @@
-
+
-
-
+
+
-
+
@@ -2681,7 +2681,7 @@
-
+
@@ -2703,15 +2703,15 @@
-
+
-
-
+
+
-
+
@@ -2747,7 +2747,7 @@
-
+
@@ -2769,15 +2769,15 @@
-
+
-
-
+
+
-
+
@@ -2797,7 +2797,7 @@
-
+
@@ -2819,15 +2819,15 @@
-
+
-
-
+
+
-
+
@@ -2847,7 +2847,7 @@
-
+
@@ -2869,15 +2869,15 @@
-
+
-
-
+
+
-
+
@@ -2897,7 +2897,7 @@
-
+
@@ -2919,15 +2919,15 @@
-
+
-
-
+
+
-
+
@@ -2947,7 +2947,7 @@
-
+
@@ -3009,15 +3009,15 @@
-
+
-
-
+
+
-
+
@@ -3026,7 +3026,7 @@
-
+
@@ -3057,15 +3057,15 @@
-
+
-
-
+
+
-
+
@@ -3146,8 +3146,8 @@
-
-
+
+
@@ -3170,7 +3170,7 @@
-
+
@@ -3192,15 +3192,15 @@
-
+
-
-
+
+
-
+
@@ -3209,7 +3209,7 @@
-
+
@@ -3261,7 +3261,7 @@
-
+
@@ -3439,7 +3439,7 @@
-
+
@@ -4444,12 +4444,12 @@
-
+
-
+
-
-
+
+
@@ -4467,7 +4467,7 @@
-
+
@@ -4486,7 +4486,7 @@
-
+
@@ -4602,7 +4602,7 @@
-
+
@@ -4618,7 +4618,7 @@
-
+
@@ -4626,11 +4626,11 @@
-
+
-
+
@@ -4704,12 +4704,12 @@
-
+
-
+
-
-
+
+
@@ -4749,7 +4749,7 @@
-
+
@@ -4772,13 +4772,13 @@
-
+
-
+
@@ -4822,7 +4822,7 @@
-
+
@@ -4958,7 +4958,7 @@
-
+
@@ -5013,7 +5013,7 @@
-
+
@@ -5127,13 +5127,13 @@
-
+
-
+
@@ -5636,7 +5636,7 @@
-
+
@@ -5670,7 +5670,7 @@
-
+
@@ -5837,7 +5837,7 @@
-
+
@@ -5864,7 +5864,7 @@
-
+
@@ -5873,7 +5873,7 @@
-
+
@@ -5935,7 +5935,7 @@
-
+
@@ -5950,7 +5950,7 @@
-
+
@@ -6000,7 +6000,7 @@
-
+
@@ -6066,7 +6066,7 @@
-
+
@@ -6184,7 +6184,7 @@
-
+
@@ -6827,7 +6827,7 @@
-
+
@@ -6866,8 +6866,8 @@
-
-
+
+
@@ -7031,8 +7031,8 @@
-
-
+
+
@@ -7177,14 +7177,14 @@
-
+
-
+
@@ -7468,7 +7468,7 @@
-
+
@@ -7495,8 +7495,8 @@
-
-
+
+
@@ -7652,8 +7652,8 @@
-
-
+
+
@@ -7774,7 +7774,7 @@
-
+
@@ -8006,7 +8006,7 @@
-
+
@@ -8083,7 +8083,7 @@
-
+
@@ -8155,7 +8155,7 @@
-
+
@@ -8296,7 +8296,7 @@
-
+
@@ -8345,12 +8345,12 @@
-
+
-
+
-
-
+
+
@@ -8373,11 +8373,11 @@
-
+
-
+
@@ -8456,7 +8456,7 @@
-
+
@@ -8472,7 +8472,7 @@
-
+
@@ -8523,7 +8523,7 @@
-
+
@@ -8566,7 +8566,7 @@
-
+
@@ -8685,7 +8685,7 @@
-
+
@@ -8697,7 +8697,7 @@
-
+
@@ -8742,7 +8742,7 @@
-
+
@@ -8798,7 +8798,7 @@
-
+
@@ -8883,13 +8883,13 @@
-
+
-
+
@@ -8924,7 +8924,7 @@
-
+
@@ -9256,7 +9256,7 @@
-
+
@@ -9300,7 +9300,7 @@
-
+
@@ -9359,7 +9359,7 @@
-
+
@@ -9406,7 +9406,7 @@
-
+
@@ -9476,7 +9476,7 @@
-
+
@@ -9507,8 +9507,8 @@
-
-
+
+
@@ -9628,8 +9628,8 @@
-
-
+
+
@@ -9732,14 +9732,14 @@
-
+
-
+
@@ -9875,7 +9875,7 @@
-
+
@@ -9891,14 +9891,14 @@
-
+
-
+
@@ -9975,7 +9975,7 @@
-
+
@@ -9985,7 +9985,7 @@
-
+
@@ -10004,7 +10004,7 @@
-
+
@@ -10057,7 +10057,7 @@
-
+
@@ -10067,11 +10067,11 @@
-
+
-
+
@@ -10109,7 +10109,7 @@
-
+
@@ -10185,7 +10185,7 @@
-
+
@@ -10225,7 +10225,7 @@
-
+
@@ -10308,7 +10308,7 @@
-
+
@@ -10519,7 +10519,7 @@
-
+
@@ -10527,7 +10527,7 @@
-
+
@@ -10550,7 +10550,7 @@
-
+
@@ -10560,11 +10560,11 @@
-
+
-
+
@@ -10601,7 +10601,7 @@
-
+
@@ -10677,7 +10677,7 @@
-
+
@@ -10733,7 +10733,7 @@
-
+
@@ -10816,7 +10816,7 @@
-
+
@@ -10993,7 +10993,7 @@
-
+
@@ -11001,7 +11001,7 @@
-
+
@@ -11028,11 +11028,11 @@
-
+
-
+
@@ -11055,7 +11055,7 @@
-
+
@@ -11145,11 +11145,11 @@
-
+
-
+
@@ -11172,7 +11172,7 @@
-
+
@@ -11308,11 +11308,11 @@
-
+
-
+
@@ -11335,7 +11335,7 @@
-
+
@@ -11404,11 +11404,11 @@
-
+
-
+
@@ -11431,7 +11431,7 @@
-
+
@@ -11501,11 +11501,11 @@
-
+
-
+
@@ -11528,7 +11528,7 @@
-
+
@@ -11580,8 +11580,8 @@
-
-
+
+
@@ -11611,8 +11611,8 @@
-
-
+
+
@@ -11632,11 +11632,11 @@
-
+
-
+
@@ -11659,7 +11659,7 @@
-
+
@@ -11714,8 +11714,8 @@
-
-
+
+
@@ -11735,11 +11735,11 @@
-
+
-
+
@@ -11762,7 +11762,7 @@
-
+
@@ -11817,8 +11817,8 @@
-
-
+
+
@@ -11838,11 +11838,11 @@
-
+
-
+
@@ -11865,7 +11865,7 @@
-
+
@@ -11920,8 +11920,8 @@
-
-
+
+
@@ -11941,11 +11941,11 @@
-
+
-
+
@@ -11987,7 +11987,7 @@
-
+
@@ -12040,7 +12040,7 @@
-
+
@@ -12443,7 +12443,7 @@
-
+
@@ -12453,7 +12453,7 @@
-
+
@@ -12462,7 +12462,7 @@
-
+
@@ -12477,7 +12477,7 @@
-
+
@@ -12636,7 +12636,7 @@
-
+
@@ -12649,14 +12649,14 @@
-
+
-
+
@@ -12665,14 +12665,14 @@
-
+
-
+
@@ -12923,7 +12923,7 @@
-
+
@@ -12954,7 +12954,7 @@
-
+
@@ -13014,7 +13014,7 @@
-
+
@@ -13053,11 +13053,11 @@
-
+
-
+
@@ -13088,7 +13088,7 @@
-
+
@@ -13188,7 +13188,7 @@
-
+
@@ -13323,19 +13323,19 @@
-
+
-
+
-
+
@@ -13344,7 +13344,7 @@
-
+
@@ -13365,7 +13365,7 @@
-
+
@@ -13382,7 +13382,7 @@
-
+
@@ -13399,14 +13399,14 @@
-
+
-
+
@@ -13464,7 +13464,7 @@
-
+
@@ -13661,7 +13661,7 @@
-
+
@@ -13947,7 +13947,7 @@
-
+
@@ -14321,7 +14321,7 @@
-
+
@@ -14334,7 +14334,7 @@
-
+
@@ -14348,11 +14348,11 @@
-
+
-
+
@@ -14432,7 +14432,7 @@
-
+
@@ -14522,7 +14522,7 @@
-
+
@@ -14534,7 +14534,7 @@
-
+
@@ -14620,13 +14620,13 @@
-
+
-
+
@@ -14640,7 +14640,7 @@
-
+
@@ -14697,7 +14697,7 @@
-
+
@@ -15203,7 +15203,7 @@
-
+
@@ -15216,7 +15216,7 @@
-
+
@@ -15230,11 +15230,11 @@
-
+
-
+
@@ -15292,7 +15292,7 @@
-
+
@@ -15354,7 +15354,7 @@
-
+
@@ -15533,7 +15533,7 @@
-
+
@@ -15542,7 +15542,7 @@
-
+
@@ -15628,7 +15628,7 @@
-
+
@@ -15683,7 +15683,7 @@
-
+
@@ -15713,7 +15713,7 @@
-
+
@@ -15757,7 +15757,7 @@
-
+
@@ -15852,7 +15852,7 @@
-
+
@@ -15911,7 +15911,7 @@
-
+
@@ -15969,7 +15969,7 @@
-
+
@@ -16009,7 +16009,7 @@
-
+
@@ -16059,7 +16059,7 @@
-
+
@@ -16139,7 +16139,7 @@
-
+
@@ -16176,7 +16176,7 @@
-
+
@@ -16213,7 +16213,7 @@
-
+
@@ -16239,7 +16239,7 @@
-
+
@@ -16374,7 +16374,7 @@
-
+
@@ -16417,8 +16417,8 @@
-
-
+
+
@@ -16535,8 +16535,8 @@
-
-
+
+
@@ -16574,7 +16574,7 @@
-
+
@@ -16617,8 +16617,8 @@
-
-
+
+
@@ -16727,8 +16727,8 @@
-
-
+
+
@@ -17320,8 +17320,8 @@
-
-
+
+
@@ -17419,10 +17419,10 @@
-
-
+
+
-
+
@@ -17637,7 +17637,7 @@
-
+
@@ -17649,7 +17649,7 @@
-
+
@@ -17694,7 +17694,7 @@
-
+
@@ -17766,7 +17766,7 @@
-
+
@@ -17800,7 +17800,7 @@
-
+
@@ -17812,7 +17812,7 @@
-
+
@@ -17857,7 +17857,7 @@
-