diff --git a/.mps/modules.xml b/.mps/modules.xml
index 62c4dfeb..63208bb1 100644
--- a/.mps/modules.xml
+++ b/.mps/modules.xml
@@ -10,6 +10,8 @@
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/generator/templates/main@generator.mps b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/generator/templates/main@generator.mps
new file mode 100644
index 00000000..0ef9565a
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/generator/templates/main@generator.mps
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/jetbrains.mps.typechecking.testlangCycle1.mpl b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/jetbrains.mps.typechecking.testlangCycle1.mpl
new file mode 100644
index 00000000..c25cfd3c
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/jetbrains.mps.typechecking.testlangCycle1.mpl
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a32939ba-878b-4531-93ec-c5e14424159b(jetbrains.mps.typechecking.testlangCycle2)
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.behavior.mps b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.behavior.mps
new file mode 100644
index 00000000..a0a6a0b9
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.behavior.mps
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.constraints.mps b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.constraints.mps
new file mode 100644
index 00000000..6ca6bc2e
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.constraints.mps
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.editor.mps b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.editor.mps
new file mode 100644
index 00000000..0c552725
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.editor.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.structure.mps b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.structure.mps
new file mode 100644
index 00000000..bfbb87ec
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.structure.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.types.mps b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.types.mps
new file mode 100644
index 00000000..25ec00ac
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.types.mps
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.typesystem.mps b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.typesystem.mps
new file mode 100644
index 00000000..79bc5742
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle1/models/jetbrains.mps.typechecking.testlangCycle1.typesystem.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/generator/templates/main@generator.mps b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/generator/templates/main@generator.mps
new file mode 100644
index 00000000..cb957347
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/generator/templates/main@generator.mps
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/jetbrains.mps.typechecking.testlangCycle2.mpl b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/jetbrains.mps.typechecking.testlangCycle2.mpl
new file mode 100644
index 00000000..8d27c83b
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/jetbrains.mps.typechecking.testlangCycle2.mpl
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ f2222c61-5f49-4d55-bb88-a14d6fed1be7(jetbrains.mps.typechecking.testlangCycle1)
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.behavior.mps b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.behavior.mps
new file mode 100644
index 00000000..06e4fd07
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.behavior.mps
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.constraints.mps b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.constraints.mps
new file mode 100644
index 00000000..ba8bb02b
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.constraints.mps
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.editor.mps b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.editor.mps
new file mode 100644
index 00000000..0e5be040
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.editor.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.structure.mps b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.structure.mps
new file mode 100644
index 00000000..5a6f70d2
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.structure.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.types.mps b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.types.mps
new file mode 100644
index 00000000..8ef5278f
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.types.mps
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.typesystem.mps b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.typesystem.mps
new file mode 100644
index 00000000..11fc9fcb
--- /dev/null
+++ b/coderules/languages/jetbrains.mps.typechecking.testlangCycle2/models/jetbrains.mps.typechecking.testlangCycle2.typesystem.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/solutions/jetbrains.mps.coderules.typechecking.test/jetbrains.mps.coderules.typechecking.test.msd b/coderules/solutions/jetbrains.mps.coderules.typechecking.test/jetbrains.mps.coderules.typechecking.test.msd
index 8df81fb6..b2903eb5 100644
--- a/coderules/solutions/jetbrains.mps.coderules.typechecking.test/jetbrains.mps.coderules.typechecking.test.msd
+++ b/coderules/solutions/jetbrains.mps.coderules.typechecking.test/jetbrains.mps.coderules.typechecking.test.msd
@@ -51,6 +51,8 @@
+
+
diff --git a/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking.test.langCycle.mps b/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking.test.langCycle.mps
new file mode 100644
index 00000000..3af6232c
--- /dev/null
+++ b/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking.test.langCycle.mps
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking@tests.mps b/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking@tests.mps
index 77cb6ffb..4df0b959 100644
--- a/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking@tests.mps
+++ b/coderules/solutions/jetbrains.mps.coderules.typechecking.test/models/jetbrains.mps.coderules.typechecking@tests.mps
@@ -42,6 +42,7 @@
+
@@ -177,6 +178,9 @@
+
+
+
@@ -188,9 +192,6 @@
-
-
-
@@ -270,6 +271,13 @@
+
+
+
+
+
+
+
@@ -293,6 +301,7 @@
+
@@ -342,6 +351,7 @@
+
@@ -373,6 +383,9 @@
+
+
+
@@ -406,6 +419,11 @@
+
+
+
+
+
@@ -414,8 +432,8 @@
+
-
@@ -946,32 +964,37 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
@@ -2198,6 +2221,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 3113351b..c2f1d37e 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
@@ -71,9 +71,6 @@
-
-
-
@@ -2568,22 +2565,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -2880,37 +2861,29 @@
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -3262,75 +3235,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -3345,6 +3249,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+