diff --git a/.mps/modules.xml b/.mps/modules.xml
index e67f3015..e7400f0d 100644
--- a/.mps/modules.xml
+++ b/.mps/modules.xml
@@ -35,11 +35,13 @@
+
+
diff --git a/samples/mpscore/build.xml b/samples/mpscore/build.xml
index c35f3355..00bec313 100644
--- a/samples/mpscore/build.xml
+++ b/samples/mpscore/build.xml
@@ -729,6 +729,164 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -912,6 +1070,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -994,7 +1206,7 @@
-
+
@@ -1149,6 +1361,8 @@
+
+
@@ -2111,6 +2325,205 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2258,6 +2671,9 @@
+
+
+
@@ -2324,6 +2740,9 @@
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/generator/templates/main@generator.mps b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/generator/templates/main@generator.mps
new file mode 100644
index 00000000..3947f2b3
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/generator/templates/main@generator.mps
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/jetbrains.mps.baseLanguage.closuresExt.mpl b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/jetbrains.mps.baseLanguage.closuresExt.mpl
new file mode 100644
index 00000000..90e42eeb
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/jetbrains.mps.baseLanguage.closuresExt.mpl
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ fd392034-7849-419d-9071-12563d152375(jetbrains.mps.baseLanguage.closures)
+ 0fda14cc-a416-4c81-869a-2175d8b3325d(jetbrains.mps.baseLanguageExt)
+ 88dcbb14-19c3-4776-8f81-33611ca4d87c(jetbrains.mps.baseLanguage.sequence)
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.behavior.mps b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.behavior.mps
new file mode 100644
index 00000000..0e090553
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.behavior.mps
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.constraints.mps b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.constraints.mps
new file mode 100644
index 00000000..d93983c0
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.constraints.mps
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.editor.mps b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.editor.mps
new file mode 100644
index 00000000..5a114d75
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.editor.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.structure.mps b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.structure.mps
new file mode 100644
index 00000000..84f1c56c
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.structure.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.types.mps b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.types.mps
new file mode 100644
index 00000000..1d5c2b56
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.types.mps
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.typesystem.mps b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.typesystem.mps
new file mode 100644
index 00000000..73f1b310
--- /dev/null
+++ b/samples/mpscore/languages/jetbrains.mps.baseLanguage.closuresExt/models/jetbrains.mps.baseLanguage.closuresExt.typesystem.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/solutions/jetbrains.mps.baseLanguage.closuresExt.test/jetbrains.mps.baseLanguage.closuresExt.test.msd b/samples/mpscore/solutions/jetbrains.mps.baseLanguage.closuresExt.test/jetbrains.mps.baseLanguage.closuresExt.test.msd
new file mode 100644
index 00000000..6ac86c6a
--- /dev/null
+++ b/samples/mpscore/solutions/jetbrains.mps.baseLanguage.closuresExt.test/jetbrains.mps.baseLanguage.closuresExt.test.msd
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)
+ f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)
+ 6998f568-f0e9-473b-b4a8-9efb6499fc8d(jetbrains.mps.coderules.typechecking)
+ fd392034-7849-419d-9071-12563d152375(jetbrains.mps.baseLanguage.closures)
+ 9e36d2ee-c59c-4580-9e81-646748d0614b(jetbrains.mps.baseLanguage.closuresExt)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/solutions/jetbrains.mps.baseLanguage.closuresExt.test/models/jetbrains.mps.baseLanguage.closuresExt.test.closures.mps b/samples/mpscore/solutions/jetbrains.mps.baseLanguage.closuresExt.test/models/jetbrains.mps.baseLanguage.closuresExt.test.closures.mps
new file mode 100644
index 00000000..0ef2d11f
--- /dev/null
+++ b/samples/mpscore/solutions/jetbrains.mps.baseLanguage.closuresExt.test/models/jetbrains.mps.baseLanguage.closuresExt.test.closures.mps
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/solutions/jetbrains.mps.baseLanguage.closuresExt.test/models/jetbrains.mps.baseLanguage.closuresExt.test.closures@tests.mps b/samples/mpscore/solutions/jetbrains.mps.baseLanguage.closuresExt.test/models/jetbrains.mps.baseLanguage.closuresExt.test.closures@tests.mps
new file mode 100644
index 00000000..dbbd7a1c
--- /dev/null
+++ b/samples/mpscore/solutions/jetbrains.mps.baseLanguage.closuresExt.test/models/jetbrains.mps.baseLanguage.closuresExt.test.closures@tests.mps
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/mpscore/solutions/samples.mpscore.build/models/samples.mpscore.build.mps b/samples/mpscore/solutions/samples.mpscore.build/models/samples.mpscore.build.mps
index d91561f4..2989d82f 100644
--- a/samples/mpscore/solutions/samples.mpscore.build/models/samples.mpscore.build.mps
+++ b/samples/mpscore/solutions/samples.mpscore.build/models/samples.mpscore.build.mps
@@ -199,6 +199,9 @@
+
+
+
@@ -208,6 +211,9 @@
+
+
+
@@ -1032,6 +1038,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+