diff --git a/code/shadowmodels/solutions/de.q60.mps.polymorphicfunctions.runtime/models/de.q60.mps.polymorphicfunctions.runtime.mps b/code/shadowmodels/solutions/de.q60.mps.polymorphicfunctions.runtime/models/de.q60.mps.polymorphicfunctions.runtime.mps
index 9667dadc4c..d47602ce2c 100644
--- a/code/shadowmodels/solutions/de.q60.mps.polymorphicfunctions.runtime/models/de.q60.mps.polymorphicfunctions.runtime.mps
+++ b/code/shadowmodels/solutions/de.q60.mps.polymorphicfunctions.runtime/models/de.q60.mps.polymorphicfunctions.runtime.mps
@@ -28,6 +28,11 @@
+
+
+
+
+
@@ -131,6 +136,9 @@
+
+
+
@@ -197,6 +205,9 @@
+
+
+
@@ -210,6 +221,7 @@
+
@@ -316,10 +328,17 @@
+
+
+
+
+
+
+
@@ -336,13 +355,6 @@
-
-
-
-
-
-
-
@@ -414,10 +426,7 @@
-
-
-
-
+
@@ -970,232 +979,403 @@
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -4706,7 +4886,7 @@
-
+
@@ -4715,17 +4895,7 @@
-
-
-
-
-
-
-
-
-
-
-
+
@@ -4734,11 +4904,72 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4773,42 +5004,25 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4821,6 +5035,14 @@
+
+
+
+
+
+
+
+
@@ -4850,12 +5072,6 @@
-
-
-
-
-
-
@@ -4867,72 +5083,30 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -4940,114 +5114,32 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
@@ -5099,27 +5191,35 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
@@ -5134,7 +5234,7 @@
-
+
@@ -5149,8 +5249,8 @@
-
-
+
+
@@ -5167,13 +5267,8 @@
-
-
-
-
-
-
-
+
+
@@ -5192,7 +5287,7 @@
-
+
@@ -5231,7 +5326,7 @@
-
+
@@ -5254,7 +5349,7 @@
-
+
@@ -5270,6 +5365,7 @@
+
@@ -5281,232 +5377,241 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
-
diff --git a/code/shadowmodels/solutions/de.q60.mps.polymorphicfunctions.runtime/models/plugin.mps b/code/shadowmodels/solutions/de.q60.mps.polymorphicfunctions.runtime/models/plugin.mps
index f530eb2194..ca5b3f604e 100644
--- a/code/shadowmodels/solutions/de.q60.mps.polymorphicfunctions.runtime/models/plugin.mps
+++ b/code/shadowmodels/solutions/de.q60.mps.polymorphicfunctions.runtime/models/plugin.mps
@@ -9,7 +9,8 @@
-
+
+
@@ -18,11 +19,14 @@
+
+
+
@@ -56,6 +60,10 @@
+
+
+
+
@@ -109,6 +117,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/shadowmodels/solutions/de.q60.mps.polymorphicfunctions.sandbox/models/functions@tests.mps b/code/shadowmodels/solutions/de.q60.mps.polymorphicfunctions.sandbox/models/functions@tests.mps
index 9c8f2a974b..aabb492bb4 100644
--- a/code/shadowmodels/solutions/de.q60.mps.polymorphicfunctions.sandbox/models/functions@tests.mps
+++ b/code/shadowmodels/solutions/de.q60.mps.polymorphicfunctions.sandbox/models/functions@tests.mps
@@ -46,6 +46,9 @@
+
+
+
@@ -197,20 +200,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -373,20 +369,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+