diff --git a/.gitignore b/.gitignore
index b216db94..17a9cd01 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,5 @@
**/test_gen/*
**/test_gen.caches/*
**/classes_gen/*
+**/classes_jchr/*
.mps/workspace.xml
diff --git a/.mps/modules.xml b/.mps/modules.xml
index e8e37978..e0fcfe5c 100644
--- a/.mps/modules.xml
+++ b/.mps/modules.xml
@@ -5,9 +5,11 @@
+
+
diff --git a/languages/jetbrains.mps.jchr/jetbrains.mps.jchr.mpl b/languages/jetbrains.mps.jchr/jetbrains.mps.jchr.mpl
index 03e7355b..e8cd6360 100644
--- a/languages/jetbrains.mps.jchr/jetbrains.mps.jchr.mpl
+++ b/languages/jetbrains.mps.jchr/jetbrains.mps.jchr.mpl
@@ -3,9 +3,12 @@
+
-
+
+
+
diff --git a/languages/jetbrains.mps.jchr/languageAccessories/jetbrains/mps/jchr/makehelper.mps b/languages/jetbrains.mps.jchr/languageAccessories/jetbrains/mps/jchr/makehelper.mps
new file mode 100644
index 00000000..4dad9ddb
--- /dev/null
+++ b/languages/jetbrains.mps.jchr/languageAccessories/jetbrains/mps/jchr/makehelper.mps
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/languages/jetbrains.mps.jchr/languageModels/plugin.mps b/languages/jetbrains.mps.jchr/languageModels/plugin.mps
index 692287a7..23db328c 100644
--- a/languages/jetbrains.mps.jchr/languageModels/plugin.mps
+++ b/languages/jetbrains.mps.jchr/languageModels/plugin.mps
@@ -35,6 +35,10 @@
+
+
+
+
@@ -48,115 +52,146 @@
-
-
-
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
+
@@ -164,44 +199,44 @@
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
+
-
-
-
+
+
+
+
-
+
@@ -209,152 +244,184 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
+
-
+
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
-
+
-
+
@@ -363,49 +430,126 @@
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -452,7 +596,7 @@
-
+
@@ -479,12 +623,10 @@
-
+
-
-
-
+
@@ -495,18 +637,72 @@
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -517,26 +713,26 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
@@ -574,20 +770,20 @@
-
+
-
-
-
-
-
+
+
+
+
+
@@ -853,13 +1049,13 @@
-
-
-
-
-
+
+
+
+
+
@@ -908,7 +1104,7 @@
-
+
@@ -925,18 +1121,28 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1032,13 +1238,17 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -1046,9 +1256,9 @@
-
-
-
+
+
+
diff --git a/languages/jetbrains.mps.jchr/sandbox/jetbrains.mps.jchr.sandbox.msd b/languages/jetbrains.mps.jchr/sandbox/jetbrains.mps.jchr.sandbox.msd
index c26225c0..8787541d 100644
--- a/languages/jetbrains.mps.jchr/sandbox/jetbrains.mps.jchr.sandbox.msd
+++ b/languages/jetbrains.mps.jchr/sandbox/jetbrains.mps.jchr.sandbox.msd
@@ -5,6 +5,9 @@
+
+
+
b984ee52-f34d-4b6d-8812-866c1d3eae31(jetbrains.mps.jchr.runtime)
diff --git a/languages/jetbrains.mps.jchr/sandbox/models/jetbrains/mps/jchr/sandbox.mps b/languages/jetbrains.mps.jchr/sandbox/models/jetbrains/mps/jchr/sandbox.mps
index 7574f7ac..8524cce6 100644
--- a/languages/jetbrains.mps.jchr/sandbox/models/jetbrains/mps/jchr/sandbox.mps
+++ b/languages/jetbrains.mps.jchr/sandbox/models/jetbrains/mps/jchr/sandbox.mps
@@ -13,7 +13,6 @@
-
@@ -79,324 +78,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/languages/jetbrains.mps.jchr/sandbox/runner/jetbrains.mps.jchr.sandbox.runner.msd b/languages/jetbrains.mps.jchr/sandbox/runner/jetbrains.mps.jchr.sandbox.runner.msd
new file mode 100644
index 00000000..f64a794d
--- /dev/null
+++ b/languages/jetbrains.mps.jchr/sandbox/runner/jetbrains.mps.jchr.sandbox.runner.msd
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+ 6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
+ b984ee52-f34d-4b6d-8812-866c1d3eae31(jetbrains.mps.jchr.runtime)
+ 7ab0c079-df36-45eb-a614-81cf81174043(jetbrains.mps.jchr.sandbox)
+
+
+ f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)
+ df345b11-b8c7-4213-ac66-48d2a9b75d88(jetbrains.mps.baseLanguageInternal)
+
+
+ fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)
+
+
+
diff --git a/languages/jetbrains.mps.jchr/sandbox/runner/models/jetbrains/mps/jchr/sandbox/runner/gcd.mps b/languages/jetbrains.mps.jchr/sandbox/runner/models/jetbrains/mps/jchr/sandbox/runner/gcd.mps
new file mode 100644
index 00000000..d6343f71
--- /dev/null
+++ b/languages/jetbrains.mps.jchr/sandbox/runner/models/jetbrains/mps/jchr/sandbox/runner/gcd.mps
@@ -0,0 +1,332 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/languages/jetbrains.mps.logic/generator/template/main@generator.mps b/languages/jetbrains.mps.logic/generator/template/main@generator.mps
index f67c80c4..6db481ef 100644
--- a/languages/jetbrains.mps.logic/generator/template/main@generator.mps
+++ b/languages/jetbrains.mps.logic/generator/template/main@generator.mps
@@ -14,6 +14,7 @@
+
@@ -203,11 +204,69 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
diff --git a/languages/jetbrains.mps.logic/sandbox/jetbrains.mps.logic.sandbox.msd b/languages/jetbrains.mps.logic/sandbox/jetbrains.mps.logic.sandbox.msd
index 6d94a227..b3ad3571 100644
--- a/languages/jetbrains.mps.logic/sandbox/jetbrains.mps.logic.sandbox.msd
+++ b/languages/jetbrains.mps.logic/sandbox/jetbrains.mps.logic.sandbox.msd
@@ -5,11 +5,13 @@
+
+
+
6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
b984ee52-f34d-4b6d-8812-866c1d3eae31(jetbrains.mps.jchr.runtime)
- 7ab0c079-df36-45eb-a614-81cf81174043(jetbrains.mps.jchr.sandbox)
a5478664-6b44-4c62-a9f7-434f8aa57eee(jetbrains.mps.logic.runtime)
7526e0cf-1ce7-46f8-a555-9eca1e06c23b(jetbrains.mps.unification.tree)
diff --git a/languages/jetbrains.mps.logic/sandbox/models/jetbrains/mps/unification/sandbox.mps b/languages/jetbrains.mps.logic/sandbox/models/jetbrains/mps/unification/sandbox.mps
index 5bcb6ccb..5508d45d 100644
--- a/languages/jetbrains.mps.logic/sandbox/models/jetbrains/mps/unification/sandbox.mps
+++ b/languages/jetbrains.mps.logic/sandbox/models/jetbrains/mps/unification/sandbox.mps
@@ -13,9 +13,6 @@
-
-
-
@@ -104,150 +101,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/languages/jetbrains.mps.logic/sandbox/models/jetbrains/mps/unification/util.mps b/languages/jetbrains.mps.logic/sandbox/models/jetbrains/mps/unification/util.mps
index 382a5204..1ce87869 100644
--- a/languages/jetbrains.mps.logic/sandbox/models/jetbrains/mps/unification/util.mps
+++ b/languages/jetbrains.mps.logic/sandbox/models/jetbrains/mps/unification/util.mps
@@ -21,7 +21,6 @@
-
@@ -41,6 +40,12 @@
+
+
+
+
+
+
@@ -48,12 +53,6 @@
-
-
-
-
-
-
@@ -72,20 +71,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -105,6 +90,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -129,7 +127,6 @@
-
diff --git a/languages/jetbrains.mps.logic/sandbox/runner/jetbrains.mps.logic.sandbox.runner.msd b/languages/jetbrains.mps.logic/sandbox/runner/jetbrains.mps.logic.sandbox.runner.msd
new file mode 100644
index 00000000..edcb582f
--- /dev/null
+++ b/languages/jetbrains.mps.logic/sandbox/runner/jetbrains.mps.logic.sandbox.runner.msd
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+ 6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
+ a5478664-6b44-4c62-a9f7-434f8aa57eee(jetbrains.mps.logic.runtime)
+ eaa96e7c-030a-4e4f-8ae7-a24dff1e0572(jetbrains.mps.logic.sandbox)
+
+
+ f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)
+ df345b11-b8c7-4213-ac66-48d2a9b75d88(jetbrains.mps.baseLanguageInternal)
+
+
+
diff --git a/languages/jetbrains.mps.logic/sandbox/runner/models/jetbrains/mps/logic/sandbox/runner/typeof.mps b/languages/jetbrains.mps.logic/sandbox/runner/models/jetbrains/mps/logic/sandbox/runner/typeof.mps
new file mode 100644
index 00000000..19daef17
--- /dev/null
+++ b/languages/jetbrains.mps.logic/sandbox/runner/models/jetbrains/mps/logic/sandbox/runner/typeof.mps
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+