diff --git a/.mps/modules.xml b/.mps/modules.xml
index 9f174f32..72580987 100644
--- a/.mps/modules.xml
+++ b/.mps/modules.xml
@@ -6,6 +6,10 @@
+
+
+
+
diff --git a/build.xml b/build.xml
index cb5d47ac..cd8e6599 100644
--- a/build.xml
+++ b/build.xml
@@ -810,6 +810,270 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1020,87 +1284,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -2020,6 +2203,189 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2039,7 +2405,7 @@
-
+
@@ -2142,6 +2508,8 @@
+
+
@@ -2155,6 +2523,8 @@
+
+
@@ -3258,6 +3628,225 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3608,6 +4197,8 @@
+
+
@@ -3621,6 +4212,9 @@
+
+
+
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 e9144a45..67c91bbe 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
@@ -465,6 +465,7 @@
+
@@ -558,6 +559,9 @@
+
+
+
@@ -15628,6 +15632,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.eval.mps b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.eval.mps
index 8d618df3..16e16cbc 100644
--- a/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.eval.mps
+++ b/coderules/languages/jetbrains.mps.lang.coderules/runtime/models/jetbrains.mps.lang.coderules.eval.mps
@@ -4810,8 +4810,8 @@
-
-
+
+
@@ -4824,8 +4824,8 @@
-
-
+
+
diff --git a/coderules/solutions/jetbrains.mps.lang.coderules.template/models/jetbrains.mps.lang.coderules.aspect.mps b/coderules/solutions/jetbrains.mps.lang.coderules.template/models/jetbrains.mps.lang.coderules.aspect.mps
index 7838c340..cf3f02b3 100644
--- a/coderules/solutions/jetbrains.mps.lang.coderules.template/models/jetbrains.mps.lang.coderules.aspect.mps
+++ b/coderules/solutions/jetbrains.mps.lang.coderules.template/models/jetbrains.mps.lang.coderules.aspect.mps
@@ -17,6 +17,7 @@
+
@@ -50,6 +51,10 @@
+
+
+
+
@@ -60,6 +65,7 @@
+
@@ -158,6 +164,10 @@
+
+
+
+
@@ -272,6 +282,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1511,6 +1562,131 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/controlflow/languages/jetbrains.mps.lang.controlflow/generator/template/main@generator.mps b/controlflow/languages/jetbrains.mps.lang.controlflow/generator/template/main@generator.mps
new file mode 100644
index 00000000..6673f9e8
--- /dev/null
+++ b/controlflow/languages/jetbrains.mps.lang.controlflow/generator/template/main@generator.mps
@@ -0,0 +1,207 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/controlflow/languages/jetbrains.mps.lang.controlflow/jetbrains.mps.lang.controlflow.mpl b/controlflow/languages/jetbrains.mps.lang.controlflow/jetbrains.mps.lang.controlflow.mpl
new file mode 100644
index 00000000..81d9ff44
--- /dev/null
+++ b/controlflow/languages/jetbrains.mps.lang.controlflow/jetbrains.mps.lang.controlflow.mpl
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 21d5540d-cd6b-44dd-b6ab-6835bf032803(jetbrains.mps.lang.coderules#4578927328670739933)
+ e45a8b22-94f2-427f-b849-77f254c4eef5(jetbrains.mps.lang.aspect#3274906159125927726)
+ 86ef8290-12bb-4ca7-947f-093788f263a9(jetbrains.mps.lang.project)
+ 3ac18869-0828-4401-abad-822a47bf83f1(jetbrains.mps.lang.descriptor#9020561928507175817)
+ ffcd9ef5-e931-4da9-a8d1-eb9bf80d19b4(jetbrains.mps.lang.controlflow.runtime)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ f97d84b2-8bad-4fdd-8ede-da17b3eacf4c(jetbrains.mps.coderules)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ c4803b19-6d89-4a3b-bf82-390769514add(jetbrains.mps.lang.coderules)
+
+
+
diff --git a/controlflow/languages/jetbrains.mps.lang.controlflow/models/behavior.mps b/controlflow/languages/jetbrains.mps.lang.controlflow/models/behavior.mps
new file mode 100644
index 00000000..446246f7
--- /dev/null
+++ b/controlflow/languages/jetbrains.mps.lang.controlflow/models/behavior.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/controlflow/languages/jetbrains.mps.lang.controlflow/models/constraints.mps b/controlflow/languages/jetbrains.mps.lang.controlflow/models/constraints.mps
new file mode 100644
index 00000000..4116ee75
--- /dev/null
+++ b/controlflow/languages/jetbrains.mps.lang.controlflow/models/constraints.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/controlflow/languages/jetbrains.mps.lang.controlflow/models/editor.mps b/controlflow/languages/jetbrains.mps.lang.controlflow/models/editor.mps
new file mode 100644
index 00000000..edf52817
--- /dev/null
+++ b/controlflow/languages/jetbrains.mps.lang.controlflow/models/editor.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/controlflow/languages/jetbrains.mps.lang.controlflow/models/plugin.mps b/controlflow/languages/jetbrains.mps.lang.controlflow/models/plugin.mps
new file mode 100644
index 00000000..9858d053
--- /dev/null
+++ b/controlflow/languages/jetbrains.mps.lang.controlflow/models/plugin.mps
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/controlflow/languages/jetbrains.mps.lang.controlflow/models/structure.mps b/controlflow/languages/jetbrains.mps.lang.controlflow/models/structure.mps
new file mode 100644
index 00000000..5225f7bd
--- /dev/null
+++ b/controlflow/languages/jetbrains.mps.lang.controlflow/models/structure.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/controlflow/languages/jetbrains.mps.lang.controlflow/models/typesystem.mps b/controlflow/languages/jetbrains.mps.lang.controlflow/models/typesystem.mps
new file mode 100644
index 00000000..610ddb49
--- /dev/null
+++ b/controlflow/languages/jetbrains.mps.lang.controlflow/models/typesystem.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/controlflow/solutions/jetbrains.mps.controlflow.ui/jetbrains.mps.controlflow.ui.msd b/controlflow/solutions/jetbrains.mps.controlflow.ui/jetbrains.mps.controlflow.ui.msd
new file mode 100644
index 00000000..2b7a91fd
--- /dev/null
+++ b/controlflow/solutions/jetbrains.mps.controlflow.ui/jetbrains.mps.controlflow.ui.msd
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/controlflow/solutions/jetbrains.mps.controlflow.ui/models/plugin.mps b/controlflow/solutions/jetbrains.mps.controlflow.ui/models/plugin.mps
new file mode 100644
index 00000000..1c1496cc
--- /dev/null
+++ b/controlflow/solutions/jetbrains.mps.controlflow.ui/models/plugin.mps
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/controlflow/solutions/jetbrains.mps.controlflow/jetbrains.mps.controlflow.msd b/controlflow/solutions/jetbrains.mps.controlflow/jetbrains.mps.controlflow.msd
new file mode 100644
index 00000000..c9a13c3f
--- /dev/null
+++ b/controlflow/solutions/jetbrains.mps.controlflow/jetbrains.mps.controlflow.msd
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/controlflow/solutions/jetbrains.mps.controlflow/models/service.mps b/controlflow/solutions/jetbrains.mps.controlflow/models/service.mps
new file mode 100644
index 00000000..97f46324
--- /dev/null
+++ b/controlflow/solutions/jetbrains.mps.controlflow/models/service.mps
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/controlflow/solutions/jetbrains.mps.lang.controlflow.runtime/jetbrains.mps.lang.controlflow.runtime.msd b/controlflow/solutions/jetbrains.mps.lang.controlflow.runtime/jetbrains.mps.lang.controlflow.runtime.msd
new file mode 100644
index 00000000..fc2a1863
--- /dev/null
+++ b/controlflow/solutions/jetbrains.mps.lang.controlflow.runtime/jetbrains.mps.lang.controlflow.runtime.msd
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+ ff6372a2-2f45-4ec3-952b-02581666015f(jetbrains.mps.lang.coderules.template)
+ 8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)
+ 6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)
+ 6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/controlflow/solutions/jetbrains.mps.lang.controlflow.runtime/models/jetbrains.mps.lang.controlflow.aspect.mps b/controlflow/solutions/jetbrains.mps.lang.controlflow.runtime/models/jetbrains.mps.lang.controlflow.aspect.mps
new file mode 100644
index 00000000..d94dff39
--- /dev/null
+++ b/controlflow/solutions/jetbrains.mps.lang.controlflow.runtime/models/jetbrains.mps.lang.controlflow.aspect.mps
@@ -0,0 +1,327 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/typechecking/languages/jetbrains.mps.lang.typechecking/generator/template/main@generator.mps b/typechecking/languages/jetbrains.mps.lang.typechecking/generator/template/main@generator.mps
index cb5067b4..31a922b2 100644
--- a/typechecking/languages/jetbrains.mps.lang.typechecking/generator/template/main@generator.mps
+++ b/typechecking/languages/jetbrains.mps.lang.typechecking/generator/template/main@generator.mps
@@ -27,6 +27,10 @@
+
+
+
+
@@ -37,6 +41,7 @@
+
@@ -92,10 +97,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -115,7 +132,7 @@
-
+
@@ -135,7 +152,7 @@
-
+
@@ -165,6 +182,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/typechecking/solutions/jetbrains.mps.lang.typechecking.runtime/models/jetbrains.mps.lang.typechecking.aspect.mps b/typechecking/solutions/jetbrains.mps.lang.typechecking.runtime/models/jetbrains.mps.lang.typechecking.aspect.mps
index 5d8ad1fc..eb43b39b 100644
--- a/typechecking/solutions/jetbrains.mps.lang.typechecking.runtime/models/jetbrains.mps.lang.typechecking.aspect.mps
+++ b/typechecking/solutions/jetbrains.mps.lang.typechecking.runtime/models/jetbrains.mps.lang.typechecking.aspect.mps
@@ -22,32 +22,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
@@ -62,48 +49,32 @@
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
+
-
-
-
-
-
+
@@ -156,24 +127,18 @@
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
@@ -203,27 +168,14 @@
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -233,6 +185,13 @@
+
+
+
+
+
+
+
@@ -253,27 +212,14 @@
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -283,6 +229,13 @@
+
+
+
+
+
+
+
@@ -301,153 +254,49 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
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 bbbb3878..7ae609a4 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
@@ -1896,6 +1896,159 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2206,6 +2359,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2226,9 +2394,6 @@
-
-
-
@@ -2519,6 +2684,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/typechecking/solutions/jetbrains.mps.typechecking.ui/models/ui.plugin.mps b/typechecking/solutions/jetbrains.mps.typechecking.ui/models/ui.plugin.mps
index 00e4a59b..5afc0619 100644
--- a/typechecking/solutions/jetbrains.mps.typechecking.ui/models/ui.plugin.mps
+++ b/typechecking/solutions/jetbrains.mps.typechecking.ui/models/ui.plugin.mps
@@ -30229,8 +30229,8 @@
-
-
+
+