[580363] Regen
diff --git a/plugins/org.eclipse.ocl.pivot/.settings/.api_filters b/plugins/org.eclipse.ocl.pivot/.settings/.api_filters
index 08a9dcb..be5c6ce 100644
--- a/plugins/org.eclipse.ocl.pivot/.settings/.api_filters
+++ b/plugins/org.eclipse.ocl.pivot/.settings/.api_filters
@@ -208,18 +208,6 @@
         <filter id="336658481">
             <message_arguments>
                 <message_argument value="org.eclipse.ocl.pivot.PivotTables"/>
-                <message_argument value="BOOLid_false"/>
-            </message_arguments>
-        </filter>
-        <filter id="336658481">
-            <message_arguments>
-                <message_argument value="org.eclipse.ocl.pivot.PivotTables"/>
-                <message_argument value="BOOLid_true"/>
-            </message_arguments>
-        </filter>
-        <filter id="336658481">
-            <message_arguments>
-                <message_argument value="org.eclipse.ocl.pivot.PivotTables"/>
                 <message_argument value="CLSSid_BooleanType"/>
             </message_arguments>
         </filter>
@@ -238,18 +226,6 @@
         <filter id="336658481">
             <message_arguments>
                 <message_argument value="org.eclipse.ocl.pivot.PivotTables"/>
-                <message_argument value="INTid_0"/>
-            </message_arguments>
-        </filter>
-        <filter id="336658481">
-            <message_arguments>
-                <message_argument value="org.eclipse.ocl.pivot.PivotTables"/>
-                <message_argument value="INTid_1"/>
-            </message_arguments>
-        </filter>
-        <filter id="336658481">
-            <message_arguments>
-                <message_argument value="org.eclipse.ocl.pivot.PivotTables"/>
                 <message_argument value="ORD_CLSSid_IteratorVariable"/>
             </message_arguments>
         </filter>
@@ -259,12 +235,6 @@
                 <message_argument value="SET_CLSSid_Region_0"/>
             </message_arguments>
         </filter>
-        <filter id="336658481">
-            <message_arguments>
-                <message_argument value="org.eclipse.ocl.pivot.PivotTables"/>
-                <message_argument value="UNLid__a"/>
-            </message_arguments>
-        </filter>
         <filter id="1143996420">
             <message_arguments>
                 <message_argument value="BAG_CLSSid_Property_0"/>
@@ -272,16 +242,6 @@
         </filter>
         <filter id="1143996420">
             <message_arguments>
-                <message_argument value="BOOLid_false"/>
-            </message_arguments>
-        </filter>
-        <filter id="1143996420">
-            <message_arguments>
-                <message_argument value="BOOLid_true"/>
-            </message_arguments>
-        </filter>
-        <filter id="1143996420">
-            <message_arguments>
                 <message_argument value="CLSSid_BooleanType"/>
             </message_arguments>
         </filter>
@@ -297,16 +257,6 @@
         </filter>
         <filter id="1143996420">
             <message_arguments>
-                <message_argument value="INTid_0"/>
-            </message_arguments>
-        </filter>
-        <filter id="1143996420">
-            <message_arguments>
-                <message_argument value="INTid_1"/>
-            </message_arguments>
-        </filter>
-        <filter id="1143996420">
-            <message_arguments>
                 <message_argument value="ORD_CLSSid_IteratorVariable"/>
             </message_arguments>
         </filter>
@@ -315,11 +265,6 @@
                 <message_argument value="SET_CLSSid_Region_0"/>
             </message_arguments>
         </filter>
-        <filter id="1143996420">
-            <message_arguments>
-                <message_argument value="UNLid__a"/>
-            </message_arguments>
-        </filter>
     </resource>
     <resource path="emf-gen/org/eclipse/ocl/pivot/PivotTables.java" type="org.eclipse.ocl.pivot.PivotTables$FragmentOperations1">
         <filter id="1143996420">
@@ -676,6 +621,129 @@
             </message_arguments>
         </filter>
     </resource>
+    <resource path="emf-gen/org/eclipse/ocl/pivot/oclstdlib/OCLstdlibTables.java" type="org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables$TypeParameters">
+        <filter id="336658481">
+            <message_arguments>
+                <message_argument value="org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables.TypeParameters"/>
+                <message_argument value="_0_K"/>
+            </message_arguments>
+        </filter>
+        <filter id="336658481">
+            <message_arguments>
+                <message_argument value="org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables.TypeParameters"/>
+                <message_argument value="_0_T"/>
+            </message_arguments>
+        </filter>
+        <filter id="336658481">
+            <message_arguments>
+                <message_argument value="org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables.TypeParameters"/>
+                <message_argument value="_0_TT"/>
+            </message_arguments>
+        </filter>
+        <filter id="336658481">
+            <message_arguments>
+                <message_argument value="org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables.TypeParameters"/>
+                <message_argument value="_1_T2"/>
+            </message_arguments>
+        </filter>
+        <filter id="336658481">
+            <message_arguments>
+                <message_argument value="org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables.TypeParameters"/>
+                <message_argument value="_1_TT"/>
+            </message_arguments>
+        </filter>
+        <filter id="336658481">
+            <message_arguments>
+                <message_argument value="org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables.TypeParameters"/>
+                <message_argument value="_1_Tacc"/>
+            </message_arguments>
+        </filter>
+        <filter id="336658481">
+            <message_arguments>
+                <message_argument value="org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables.TypeParameters"/>
+                <message_argument value="_1_V"/>
+            </message_arguments>
+        </filter>
+        <filter id="336658481">
+            <message_arguments>
+                <message_argument value="org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables.TypeParameters"/>
+                <message_argument value="_2_K2"/>
+            </message_arguments>
+        </filter>
+        <filter id="336658481">
+            <message_arguments>
+                <message_argument value="org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables.TypeParameters"/>
+                <message_argument value="_2_Tacc"/>
+            </message_arguments>
+        </filter>
+        <filter id="336658481">
+            <message_arguments>
+                <message_argument value="org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables.TypeParameters"/>
+                <message_argument value="_2_V2"/>
+            </message_arguments>
+        </filter>
+        <filter id="336658481">
+            <message_arguments>
+                <message_argument value="org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables.TypeParameters"/>
+                <message_argument value="_3_V2"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="_0_K"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="_0_T"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="_0_TT"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="_1_T2"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="_1_TT"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="_1_Tacc"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="_1_V"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="_2_K2"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="_2_Tacc"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="_2_V2"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="_3_V2"/>
+            </message_arguments>
+        </filter>
+    </resource>
     <resource path="emf-gen/org/eclipse/ocl/pivot/oclstdlib/OCLstdlibTables.java" type="org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables$Types">
         <filter id="388161617">
             <message_arguments>
@@ -796,14 +864,6 @@
             </message_arguments>
         </filter>
     </resource>
-    <resource path="emf-gen/org/eclipse/ocl/pivot/util/DerivedConstants.java" type="org.eclipse.ocl.pivot.util.DerivedConstants">
-        <filter id="403767336">
-            <message_arguments>
-                <message_argument value="org.eclipse.ocl.pivot.util.DerivedConstants"/>
-                <message_argument value="VALIDATE_RECURSIVELY"/>
-            </message_arguments>
-        </filter>
-    </resource>
     <resource path="emf-gen/org/eclipse/ocl/pivot/util/PivotAdapterFactory.java" type="org.eclipse.ocl.pivot.util.PivotAdapterFactory">
         <filter id="1143996420">
             <message_arguments>
@@ -1644,12 +1704,6 @@
         <filter id="403804204">
             <message_arguments>
                 <message_argument value="org.eclipse.ocl.pivot.ids.IdResolver"/>
-                <message_argument value="createMapOfAll(TypeId, boolean, TypeId, boolean, Map&lt;?,?&gt;)"/>
-            </message_arguments>
-        </filter>
-        <filter id="403804204">
-            <message_arguments>
-                <message_argument value="org.eclipse.ocl.pivot.ids.IdResolver"/>
                 <message_argument value="getType(TypeId)"/>
             </message_arguments>
         </filter>
@@ -1658,13 +1712,12 @@
         <filter id="403804204">
             <message_arguments>
                 <message_argument value="org.eclipse.ocl.pivot.ids.IdVisitor"/>
-                <message_argument value="visitIntegerLiteralId(IntegerLiteralId)"/>
+                <message_argument value="visitWildcardId(WildcardId)"/>
             </message_arguments>
         </filter>
-        <filter id="403804204">
+        <filter id="1211105284">
             <message_arguments>
-                <message_argument value="org.eclipse.ocl.pivot.ids.IdVisitor"/>
-                <message_argument value="visitUnlimitedNaturalLiteralId(UnlimitedNaturalLiteralId)"/>
+                <message_argument value="visitWildcardId(WildcardId)"/>
             </message_arguments>
         </filter>
         <filter id="403804204">
@@ -1767,12 +1820,6 @@
         <filter id="403767336">
             <message_arguments>
                 <message_argument value="org.eclipse.ocl.pivot.ids.TypeId"/>
-                <message_argument value="T_4"/>
-            </message_arguments>
-        </filter>
-        <filter id="403767336">
-            <message_arguments>
-                <message_argument value="org.eclipse.ocl.pivot.ids.TypeId"/>
                 <message_argument value="VOID_TYPE_NAME"/>
             </message_arguments>
         </filter>
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/PivotTables.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/PivotTables.java
index 8049832..779e2e3 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/PivotTables.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/PivotTables.java
@@ -21,7 +21,11 @@
  *******************************************************************************/
 package org.eclipse.ocl.pivot;
 
+import java.lang.String;
 import org.eclipse.jdt.annotation.NonNull;
+// import org.eclipse.ocl.pivot.ParameterTypes;
+// import org.eclipse.ocl.pivot.PivotTables;
+// import org.eclipse.ocl.pivot.TemplateParameters;
 import org.eclipse.ocl.pivot.ids.ClassId;
 import org.eclipse.ocl.pivot.ids.CollectionTypeId;
 import org.eclipse.ocl.pivot.ids.DataTypeId;
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/BooleanLiteralExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/BooleanLiteralExpImpl.java
index 2db0cff..f6d7cbd 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/BooleanLiteralExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/BooleanLiteralExpImpl.java
@@ -201,19 +201,18 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.BOOLEAN_LITERAL_EXP___VALIDATE_TYPE_IS_BOOLEAN__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @NonNull BooleanType TYP_Boolean = (@NonNull BooleanType)idResolver.getClass(TypeId.BOOLEAN, null);
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
-				final /*@NonInvalid*/ @NonNull BooleanType symbol_0 = TYP_Boolean;
-				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() == symbol_0.getTypeId()) : false;
+				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() == TYP_Boolean.getTypeId()) : false;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CallExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CallExpImpl.java
index 1ce727d..dc0349a 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CallExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CallExpImpl.java
@@ -235,9 +235,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.CALL_EXP___VALIDATE_SAFE_SOURCE_CAN_BE_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -264,9 +264,8 @@
 									final /*@Thrown*/ @Nullable Type type_0 = ownedSource.getType();
 									safe_type_source = type_0;
 								}
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_CollectionType;
 								@SuppressWarnings("null")
-								final /*@Thrown*/ @NonNull CollectionType oclAsType = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0);
+								final /*@Thrown*/ @NonNull CollectionType oclAsType = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_CollectionType);
 								final /*@Thrown*/ boolean isNullFree = oclAsType.isIsNullFree();
 								CAUGHT_isNullFree = isNullFree;
 							}
@@ -314,9 +313,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -353,9 +352,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.CALL_EXP___VALIDATE_SAFE_SOURCE_CANNOT_BE_MAP__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -410,8 +409,7 @@
 										if (CAUGHT_safe_type_source instanceof InvalidValueException) {
 											throw (InvalidValueException)CAUGHT_safe_type_source;
 										}
-										final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_MapType;
-										final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, CAUGHT_safe_type_source, symbol_0).booleanValue();
+										final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, CAUGHT_safe_type_source, TYP_MapType).booleanValue();
 										CAUGHT_oclIsKindOf = oclIsKindOf;
 									}
 									catch (Exception e) {
@@ -481,9 +479,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -517,19 +515,18 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.CALL_EXP___VALIDATE_TYPE_IS_NOT_INVALID__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @NonNull InvalidType TYP_OclInvalid = (@NonNull InvalidType)idResolver.getClass(TypeId.OCL_INVALID, null);
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
-				final /*@NonInvalid*/ @NonNull InvalidType symbol_0 = TYP_OclInvalid;
-				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != symbol_0.getTypeId()) : true;
+				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != TYP_OclInvalid.getTypeId()) : true;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ClassImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ClassImpl.java
index 51aea77..20c19a5 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ClassImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ClassImpl.java
@@ -700,9 +700,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.CLASS___VALIDATE_UNIQUE_INVARIANT_NAME__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @NonNull Object CAUGHT_result;
@@ -738,9 +738,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -1311,17 +1311,17 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.CLASS___VALIDATE_NAME_IS_NOT_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @Nullable String name = this.getName();
 				final /*@NonInvalid*/ boolean result = name != null;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CollectionItemImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CollectionItemImpl.java
index 019058b..bcf2095 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CollectionItemImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CollectionItemImpl.java
@@ -178,9 +178,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.COLLECTION_ITEM___VALIDATE_TYPE_IS_ITEM_TYPE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
@@ -189,9 +189,9 @@
 				final /*@NonInvalid*/ @Nullable Type type_0 = ownedItem.getType();
 				final /*@NonInvalid*/ boolean result = (type != null) && (type_0 != null) ? (type.getTypeId() == type_0.getTypeId()) : false;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CollectionLiteralExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CollectionLiteralExpImpl.java
index e3e82ca..2e618d5 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CollectionLiteralExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CollectionLiteralExpImpl.java
@@ -229,9 +229,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.COLLECTION_LITERAL_EXP___VALIDATE_COLLECTION_KIND_IS_CONCRETE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				@SuppressWarnings("null")
@@ -239,9 +239,9 @@
 				final /*@NonInvalid*/ @NonNull EnumerationLiteralId BOXED_kind = PivotTables.ENUMid_CollectionKind.getEnumerationLiteralId(ClassUtil.nonNullState(kind.getName()));
 				final /*@NonInvalid*/ boolean result = BOXED_kind != PivotTables.ELITid_Collection;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -276,9 +276,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.COLLECTION_LITERAL_EXP___VALIDATE_SET_KIND_IS_SET__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -296,8 +296,7 @@
 						try {
 							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_SetType = idResolver.getClass(PivotTables.CLSSid_SetType, null);
 							final /*@NonInvalid*/ @Nullable Type type = this.getType();
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_SetType;
-							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type, symbol_0).booleanValue();
+							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type, TYP_SetType).booleanValue();
 							CAUGHT_oclIsKindOf = oclIsKindOf;
 						}
 						catch (Exception e) {
@@ -319,9 +318,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -356,9 +355,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.COLLECTION_LITERAL_EXP___VALIDATE_ORDERED_SET_KIND_IS_ORDERED_SET__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -376,8 +375,7 @@
 						try {
 							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_OrderedSetType = idResolver.getClass(PivotTables.CLSSid_OrderedSetType, null);
 							final /*@NonInvalid*/ @Nullable Type type = this.getType();
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_OrderedSetType;
-							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type, symbol_0).booleanValue();
+							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type, TYP_OrderedSetType).booleanValue();
 							CAUGHT_oclIsKindOf = oclIsKindOf;
 						}
 						catch (Exception e) {
@@ -399,9 +397,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -436,9 +434,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.COLLECTION_LITERAL_EXP___VALIDATE_SEQUENCE_KIND_IS_SEQUENCE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -456,8 +454,7 @@
 						try {
 							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_SequenceType = idResolver.getClass(PivotTables.CLSSid_SequenceType, null);
 							final /*@NonInvalid*/ @Nullable Type type = this.getType();
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_SequenceType;
-							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type, symbol_0).booleanValue();
+							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type, TYP_SequenceType).booleanValue();
 							CAUGHT_oclIsKindOf = oclIsKindOf;
 						}
 						catch (Exception e) {
@@ -479,9 +476,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -516,9 +513,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.COLLECTION_LITERAL_EXP___VALIDATE_BAG_KIND_IS_BAG__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -536,8 +533,7 @@
 						try {
 							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_BagType = idResolver.getClass(PivotTables.CLSSid_BagType, null);
 							final /*@NonInvalid*/ @Nullable Type type = this.getType();
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_BagType;
-							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type, symbol_0).booleanValue();
+							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type, TYP_BagType).booleanValue();
 							CAUGHT_oclIsKindOf = oclIsKindOf;
 						}
 						catch (Exception e) {
@@ -559,9 +555,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CollectionLiteralPartImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CollectionLiteralPartImpl.java
index 4290183..f881627 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CollectionLiteralPartImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/CollectionLiteralPartImpl.java
@@ -109,19 +109,18 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.COLLECTION_LITERAL_PART___VALIDATE_TYPE_IS_NOT_INVALID__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @NonNull InvalidType TYP_OclInvalid_0 = (@NonNull InvalidType)idResolver.getClass(TypeId.OCL_INVALID, null);
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
-				final /*@NonInvalid*/ @NonNull InvalidType symbol_0 = TYP_OclInvalid_0;
-				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != symbol_0.getTypeId()) : true;
+				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != TYP_OclInvalid_0.getTypeId()) : true;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ConstraintImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ConstraintImpl.java
index 1b8753c..28730ab 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ConstraintImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ConstraintImpl.java
@@ -474,9 +474,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.CONSTRAINT___VALIDATE_BOOLEAN_VALUED__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_2;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_2 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -494,15 +494,13 @@
 						result = ValueUtil.TRUE_VALUE;
 					}
 					else {
-						final /*@NonInvalid*/ @NonNull BooleanType symbol_0 = TYP_Boolean_0;
-						final /*@NonInvalid*/ boolean eq = (type_0 != null) ? (type_0.getTypeId() == symbol_0.getTypeId()) : false;
+						final /*@NonInvalid*/ boolean eq = (type_0 != null) ? (type_0.getTypeId() == TYP_Boolean_0.getTypeId()) : false;
 						final /*@NonInvalid*/ @Nullable Boolean or;
 						if (eq) {
 							or = ValueUtil.TRUE_VALUE;
 						}
 						else {
-							final /*@NonInvalid*/ @NonNull VoidType symbol_1 = TYP_OclVoid;
-							final /*@NonInvalid*/ boolean eq_0 = (type_0 != null) ? (type_0.getTypeId() == symbol_1.getTypeId()) : false;
+							final /*@NonInvalid*/ boolean eq_0 = (type_0 != null) ? (type_0.getTypeId() == TYP_OclVoid.getTypeId()) : false;
 							if (eq_0) {
 								or = ValueUtil.TRUE_VALUE;
 							}
@@ -528,9 +526,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_2 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_2;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/DataTypeImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/DataTypeImpl.java
index 04cf922..9876991 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/DataTypeImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/DataTypeImpl.java
@@ -634,9 +634,9 @@
 			final /*@NonInvalid*/ @NonNull StandardLibrary standardLibrary = idResolver.getStandardLibrary();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.DATA_TYPE___VALIDATE_BEHAVIORAL_CLASS_HAS_DISTINCT_NAME__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -665,11 +665,11 @@
 								 */
 								@Override
 								public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object BOXED_superClasses, final /*@NonInvalid*/ @Nullable Object _1) {
-									final /*@NonInvalid*/ org.eclipse.ocl.pivot.@Nullable Class symbol_0 = (org.eclipse.ocl.pivot.Class)_1;
-									if (symbol_0 == null) {
+									final /*@NonInvalid*/ org.eclipse.ocl.pivot.@Nullable Class CAST_null = (org.eclipse.ocl.pivot.Class)_1;
+									if (CAST_null == null) {
 										throw new InvalidValueException("Null source for \'Class::superClasses\'");
 									}
-									final /*@Thrown*/ @NonNull List<org.eclipse.ocl.pivot.Class> superClasses_0 = symbol_0.getSuperClasses();
+									final /*@Thrown*/ @NonNull List<org.eclipse.ocl.pivot.Class> superClasses_0 = CAST_null.getSuperClasses();
 									final /*@Thrown*/ @NonNull SetValue BOXED_superClasses_0 = idResolver.createSetOfAll(PivotTables.SET_CLSSid_Class, superClasses_0);
 									return BOXED_superClasses_0;
 								}
@@ -736,9 +736,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -773,9 +773,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.DATA_TYPE___VALIDATE_BEHAVIORAL_CLASS_IS_PRIMITIVE_TYPE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -790,8 +790,7 @@
 						/*@Caught*/ @NonNull Object CAUGHT_oclIsKindOf;
 						try {
 							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_PrimitiveType = idResolver.getClass(PivotTables.CLSSid_PrimitiveType, null);
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_PrimitiveType;
-							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, behavioralClass, symbol_0).booleanValue();
+							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, behavioralClass, TYP_PrimitiveType).booleanValue();
 							CAUGHT_oclIsKindOf = oclIsKindOf;
 						}
 						catch (Exception e) {
@@ -813,9 +812,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -850,9 +849,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.DATA_TYPE___VALIDATE_BEHAVIORAL_CLASS_IS_SUPER_CLASS__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -890,9 +889,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ElementImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ElementImpl.java
index 59e26ff..b1d8a2b 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ElementImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ElementImpl.java
@@ -231,13 +231,12 @@
 			@Override
 			public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object oclAsSet, final /*@NonInvalid*/ @Nullable Object _1) {
 				final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_Element_0 = idResolver.getClass(PivotTables.CLSSid_Element, null);
-				final /*@NonInvalid*/ @Nullable Element symbol_0 = (Element)_1;
-				if (symbol_0 == null) {
+				final /*@NonInvalid*/ @Nullable Element CAST_null = (Element)_1;
+				if (CAST_null == null) {
 					throw new InvalidValueException("Null \'\'OclElement\'\' rather than \'\'OclVoid\'\' value required");
 				}
-				final /*@Thrown*/ @NonNull SetValue oclContents = ClassifierOclContentsOperation.INSTANCE.evaluate(executor, PivotTables.SET_CLSSid_OclElement, symbol_0);
-				final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_1 = TYP_Element_0;
-				final /*@Thrown*/ @NonNull SetValue selectByKind = (@Nullable SetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, oclContents, symbol_1);
+				final /*@Thrown*/ @NonNull SetValue oclContents = ClassifierOclContentsOperation.INSTANCE.evaluate(executor, PivotTables.SET_CLSSid_OclElement, CAST_null);
+				final /*@Thrown*/ @NonNull SetValue selectByKind = (@Nullable SetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, oclContents, TYP_Element_0);
 				return selectByKind;
 			}
 		};
@@ -245,7 +244,7 @@
 		@SuppressWarnings("null")
 		final /*@Thrown*/ @NonNull SetValue closure = (@NonNull SetValue)IMPL_closure_0.evaluateIteration(MGR_closure_0);
 		final /*@Thrown*/ @NonNull List<Element> ECORE_closure = ((IdResolverExtension)idResolver).ecoreValueOfAll(Element.class, closure);
-		return ECORE_closure;
+		return (List<Element>)ECORE_closure;
 	}
 
 	/**
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/EnumLiteralExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/EnumLiteralExpImpl.java
index 857d937..4e52c64 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/EnumLiteralExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/EnumLiteralExpImpl.java
@@ -172,9 +172,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ENUM_LITERAL_EXP___VALIDATE_TYPE_IS_ENUMERATION_TYPE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @NonNull Object CAUGHT_result;
@@ -199,9 +199,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/FeatureImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/FeatureImpl.java
index 49fa150..b2e0fc7 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/FeatureImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/FeatureImpl.java
@@ -229,17 +229,17 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.FEATURE___VALIDATE_NAME_IS_NOT_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @Nullable String name = this.getName();
 				final /*@NonInvalid*/ boolean result = name != null;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -273,19 +273,18 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.FEATURE___VALIDATE_TYPE_IS_NOT_INVALID__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @NonNull InvalidType TYP_OclInvalid_0 = (@NonNull InvalidType)idResolver.getClass(TypeId.OCL_INVALID, null);
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
-				final /*@NonInvalid*/ @NonNull InvalidType symbol_0 = TYP_OclInvalid_0;
-				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != symbol_0.getTypeId()) : true;
+				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != TYP_OclInvalid_0.getTypeId()) : true;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -319,17 +318,17 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.FEATURE___VALIDATE_TYPE_IS_NOT_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
 				final /*@NonInvalid*/ boolean result = type != null;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IfExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IfExpImpl.java
index d5d3047..537cf49 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IfExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IfExpImpl.java
@@ -353,21 +353,20 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.IF_EXP___VALIDATE_CONDITION_TYPE_IS_BOOLEAN__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @NonNull BooleanType TYP_Boolean_0 = (@NonNull BooleanType)idResolver.getClass(TypeId.BOOLEAN, null);
 				@SuppressWarnings("null")
 				final /*@NonInvalid*/ @NonNull OCLExpression ownedCondition = this.getOwnedCondition();
 				final /*@NonInvalid*/ @Nullable Type type = ownedCondition.getType();
-				final /*@NonInvalid*/ @NonNull BooleanType symbol_0 = TYP_Boolean_0;
-				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() == symbol_0.getTypeId()) : false;
+				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() == TYP_Boolean_0.getTypeId()) : false;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -401,19 +400,18 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.IF_EXP___VALIDATE_TYPE_IS_NOT_INVALID__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @NonNull InvalidType TYP_OclInvalid_0 = (@NonNull InvalidType)idResolver.getClass(TypeId.OCL_INVALID, null);
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
-				final /*@NonInvalid*/ @NonNull InvalidType symbol_0 = TYP_OclInvalid_0;
-				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != symbol_0.getTypeId()) : true;
+				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != TYP_OclInvalid_0.getTypeId()) : true;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IntegerLiteralExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IntegerLiteralExpImpl.java
index 07e7ae0..012ef3a 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IntegerLiteralExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IntegerLiteralExpImpl.java
@@ -166,19 +166,18 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.INTEGER_LITERAL_EXP___VALIDATE_TYPE_IS_INTEGER__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @NonNull PrimitiveType TYP_Integer = (@NonNull PrimitiveType)idResolver.getClass(TypeId.INTEGER, null);
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
-				final /*@NonInvalid*/ @NonNull PrimitiveType symbol_0 = TYP_Integer;
-				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() == symbol_0.getTypeId()) : false;
+				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() == TYP_Integer.getTypeId()) : false;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IterateExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IterateExpImpl.java
index 4c78e32..8600bf9 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IterateExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IterateExpImpl.java
@@ -580,9 +580,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATE_EXP___VALIDATE_UNSAFE_SOURCE_CAN_NOT_BE_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_4;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_4 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -663,7 +663,7 @@
 						result = ValueUtil.TRUE_VALUE;
 					}
 					else {
-						/*@Caught*/ @NonNull Object CAUGHT_symbol_3;
+						/*@Caught*/ @NonNull Object CAUGHT_IF_oclIsKindOf;
 						try {
 							final /*@NonInvalid*/ @Nullable OCLExpression ownedSource = this.getOwnedSource();
 							final /*@NonInvalid*/ @NonNull Object type = ownedSource == null;
@@ -677,37 +677,35 @@
 								safe_type_source = type_0;
 							}
 							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_MapType_0 = idResolver.getClass(PivotTables.CLSSid_MapType, null);
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_MapType_0;
-							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0).booleanValue();
-							/*@Thrown*/ boolean symbol_3;
+							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_MapType_0).booleanValue();
+							/*@Thrown*/ boolean IF_oclIsKindOf;
 							if (oclIsKindOf) {
 								@SuppressWarnings("null")
-								final /*@Thrown*/ @NonNull MapType oclAsType = (@NonNull MapType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0);
+								final /*@Thrown*/ @NonNull MapType oclAsType = (@NonNull MapType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_MapType_0);
 								final /*@Thrown*/ boolean keysAreNullFree = oclAsType.isKeysAreNullFree();
-								symbol_3 = keysAreNullFree;
+								IF_oclIsKindOf = keysAreNullFree;
 							}
 							else {
 								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_CollectionType_0 = idResolver.getClass(PivotTables.CLSSid_CollectionType, null);
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_2 = TYP_CollectionType_0;
 								@SuppressWarnings("null")
-								final /*@Thrown*/ @NonNull CollectionType oclAsType_0 = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_2);
+								final /*@Thrown*/ @NonNull CollectionType oclAsType_0 = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_CollectionType_0);
 								final /*@Thrown*/ boolean isNullFree = oclAsType_0.isIsNullFree();
-								symbol_3 = isNullFree;
+								IF_oclIsKindOf = isNullFree;
 							}
-							CAUGHT_symbol_3 = symbol_3;
+							CAUGHT_IF_oclIsKindOf = IF_oclIsKindOf;
 						}
 						catch (Exception e) {
-							CAUGHT_symbol_3 = ValueUtil.createInvalidValue(e);
+							CAUGHT_IF_oclIsKindOf = ValueUtil.createInvalidValue(e);
 						}
-						if (CAUGHT_symbol_3 == ValueUtil.TRUE_VALUE) {
+						if (CAUGHT_IF_oclIsKindOf == ValueUtil.TRUE_VALUE) {
 							result = ValueUtil.TRUE_VALUE;
 						}
 						else {
 							if (CAUGHT_and instanceof InvalidValueException) {
 								throw (InvalidValueException)CAUGHT_and;
 							}
-							if (CAUGHT_symbol_3 instanceof InvalidValueException) {
-								throw (InvalidValueException)CAUGHT_symbol_3;
+							if (CAUGHT_IF_oclIsKindOf instanceof InvalidValueException) {
+								throw (InvalidValueException)CAUGHT_IF_oclIsKindOf;
 							}
 							if (CAUGHT_and == null) {
 								result = null;
@@ -723,9 +721,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_4 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_4;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -788,9 +786,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATE_EXP___VALIDATE_SAFE_ITERATOR_IS_REQUIRED__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -853,9 +851,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -895,9 +893,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATE_EXP___VALIDATE_SAFE_SOURCE_CAN_BE_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_4;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_4 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -910,7 +908,7 @@
 					else {
 						/*@Caught*/ @Nullable Object CAUGHT_not;
 						try {
-							/*@Caught*/ @NonNull Object CAUGHT_symbol_3;
+							/*@Caught*/ @NonNull Object CAUGHT_IF_oclIsKindOf;
 							try {
 								final /*@NonInvalid*/ @Nullable OCLExpression ownedSource = this.getOwnedSource();
 								final /*@NonInvalid*/ @NonNull Object type = ownedSource == null;
@@ -924,37 +922,35 @@
 									safe_type_source = type_0;
 								}
 								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_MapType_0 = idResolver.getClass(PivotTables.CLSSid_MapType, null);
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_MapType_0;
-								final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0).booleanValue();
-								/*@Thrown*/ boolean symbol_3;
+								final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_MapType_0).booleanValue();
+								/*@Thrown*/ boolean IF_oclIsKindOf;
 								if (oclIsKindOf) {
 									@SuppressWarnings("null")
-									final /*@Thrown*/ @NonNull MapType oclAsType = (@NonNull MapType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0);
+									final /*@Thrown*/ @NonNull MapType oclAsType = (@NonNull MapType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_MapType_0);
 									final /*@Thrown*/ boolean keysAreNullFree = oclAsType.isKeysAreNullFree();
-									symbol_3 = keysAreNullFree;
+									IF_oclIsKindOf = keysAreNullFree;
 								}
 								else {
 									final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_CollectionType_0 = idResolver.getClass(PivotTables.CLSSid_CollectionType, null);
-									final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_2 = TYP_CollectionType_0;
 									@SuppressWarnings("null")
-									final /*@Thrown*/ @NonNull CollectionType oclAsType_0 = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_2);
+									final /*@Thrown*/ @NonNull CollectionType oclAsType_0 = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_CollectionType_0);
 									final /*@Thrown*/ boolean isNullFree = oclAsType_0.isIsNullFree();
-									symbol_3 = isNullFree;
+									IF_oclIsKindOf = isNullFree;
 								}
-								CAUGHT_symbol_3 = symbol_3;
+								CAUGHT_IF_oclIsKindOf = IF_oclIsKindOf;
 							}
 							catch (Exception e) {
-								CAUGHT_symbol_3 = ValueUtil.createInvalidValue(e);
+								CAUGHT_IF_oclIsKindOf = ValueUtil.createInvalidValue(e);
 							}
-							if (CAUGHT_symbol_3 instanceof InvalidValueException) {
-								throw (InvalidValueException)CAUGHT_symbol_3;
+							if (CAUGHT_IF_oclIsKindOf instanceof InvalidValueException) {
+								throw (InvalidValueException)CAUGHT_IF_oclIsKindOf;
 							}
 							final /*@Thrown*/ @Nullable Boolean not;
-							if (CAUGHT_symbol_3 == ValueUtil.FALSE_VALUE) {
+							if (CAUGHT_IF_oclIsKindOf == ValueUtil.FALSE_VALUE) {
 								not = ValueUtil.TRUE_VALUE;
 							}
 							else {
-								if (CAUGHT_symbol_3 == ValueUtil.TRUE_VALUE) {
+								if (CAUGHT_IF_oclIsKindOf == ValueUtil.TRUE_VALUE) {
 									not = ValueUtil.FALSE_VALUE;
 								}
 								else {
@@ -987,9 +983,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_4 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_4;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IteratorExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IteratorExpImpl.java
index d5f4c40..7152e1d 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IteratorExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IteratorExpImpl.java
@@ -217,9 +217,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATOR_EXP___VALIDATE_UNSAFE_SOURCE_CAN_NOT_BE_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_4;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_4 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -300,7 +300,7 @@
 						result = ValueUtil.TRUE_VALUE;
 					}
 					else {
-						/*@Caught*/ @NonNull Object CAUGHT_symbol_3;
+						/*@Caught*/ @NonNull Object CAUGHT_IF_oclIsKindOf;
 						try {
 							final /*@NonInvalid*/ @Nullable OCLExpression ownedSource = this.getOwnedSource();
 							final /*@NonInvalid*/ @NonNull Object type = ownedSource == null;
@@ -314,37 +314,35 @@
 								safe_type_source = type_0;
 							}
 							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_MapType_0 = idResolver.getClass(PivotTables.CLSSid_MapType, null);
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_MapType_0;
-							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0).booleanValue();
-							/*@Thrown*/ boolean symbol_3;
+							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_MapType_0).booleanValue();
+							/*@Thrown*/ boolean IF_oclIsKindOf;
 							if (oclIsKindOf) {
 								@SuppressWarnings("null")
-								final /*@Thrown*/ @NonNull MapType oclAsType = (@NonNull MapType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0);
+								final /*@Thrown*/ @NonNull MapType oclAsType = (@NonNull MapType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_MapType_0);
 								final /*@Thrown*/ boolean keysAreNullFree = oclAsType.isKeysAreNullFree();
-								symbol_3 = keysAreNullFree;
+								IF_oclIsKindOf = keysAreNullFree;
 							}
 							else {
 								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_CollectionType_0 = idResolver.getClass(PivotTables.CLSSid_CollectionType, null);
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_2 = TYP_CollectionType_0;
 								@SuppressWarnings("null")
-								final /*@Thrown*/ @NonNull CollectionType oclAsType_0 = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_2);
+								final /*@Thrown*/ @NonNull CollectionType oclAsType_0 = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_CollectionType_0);
 								final /*@Thrown*/ boolean isNullFree = oclAsType_0.isIsNullFree();
-								symbol_3 = isNullFree;
+								IF_oclIsKindOf = isNullFree;
 							}
-							CAUGHT_symbol_3 = symbol_3;
+							CAUGHT_IF_oclIsKindOf = IF_oclIsKindOf;
 						}
 						catch (Exception e) {
-							CAUGHT_symbol_3 = ValueUtil.createInvalidValue(e);
+							CAUGHT_IF_oclIsKindOf = ValueUtil.createInvalidValue(e);
 						}
-						if (CAUGHT_symbol_3 == ValueUtil.TRUE_VALUE) {
+						if (CAUGHT_IF_oclIsKindOf == ValueUtil.TRUE_VALUE) {
 							result = ValueUtil.TRUE_VALUE;
 						}
 						else {
 							if (CAUGHT_and instanceof InvalidValueException) {
 								throw (InvalidValueException)CAUGHT_and;
 							}
-							if (CAUGHT_symbol_3 instanceof InvalidValueException) {
-								throw (InvalidValueException)CAUGHT_symbol_3;
+							if (CAUGHT_IF_oclIsKindOf instanceof InvalidValueException) {
+								throw (InvalidValueException)CAUGHT_IF_oclIsKindOf;
 							}
 							if (CAUGHT_and == null) {
 								result = null;
@@ -360,9 +358,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_4 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_4;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -437,9 +435,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATOR_EXP___VALIDATE_CLOSURE_BODY_ELEMENT_TYPE_IS_ITERATOR_TYPE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_5;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_5 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -456,31 +454,29 @@
 							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_CollectionType_0 = idResolver.getClass(PivotTables.CLSSid_CollectionType, null);
 							@SuppressWarnings("null")
 							final /*@NonInvalid*/ @NonNull OCLExpression ownedBody_3 = this.getOwnedBody();
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_CollectionType_0;
 							final /*@NonInvalid*/ @Nullable Type type_3 = ownedBody_3.getType();
-							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_3, symbol_0).booleanValue();
+							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_3, TYP_CollectionType_0).booleanValue();
 							/*@Thrown*/ @Nullable Type bodyElementType;
 							if (oclIsKindOf) {
 								@SuppressWarnings("null")
-								final /*@Thrown*/ @NonNull CollectionType oclAsType = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, type_3, symbol_0);
+								final /*@Thrown*/ @NonNull CollectionType oclAsType = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, type_3, TYP_CollectionType_0);
 								final /*@Thrown*/ @NonNull Type elementType = CollectionElementTypeProperty.INSTANCE.evaluate(executor, PivotTables.CLSSid_Type, oclAsType);
 								bodyElementType = elementType;
 							}
 							else {
 								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_MapType_0 = idResolver.getClass(PivotTables.CLSSid_MapType, null);
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_2 = TYP_MapType_0;
-								final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_3, symbol_2).booleanValue();
-								/*@Thrown*/ @Nullable Type symbol_4;
+								final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_3, TYP_MapType_0).booleanValue();
+								/*@Thrown*/ @Nullable Type IF_oclIsKindOf_0;
 								if (oclIsKindOf_0) {
 									@SuppressWarnings("null")
-									final /*@Thrown*/ @NonNull MapType oclAsType_0 = (@NonNull MapType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, type_3, symbol_2);
+									final /*@Thrown*/ @NonNull MapType oclAsType_0 = (@NonNull MapType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, type_3, TYP_MapType_0);
 									final /*@Thrown*/ @NonNull Type keyType = MapKeyTypeProperty.INSTANCE.evaluate(executor, PivotTables.CLSSid_Type, oclAsType_0);
-									symbol_4 = keyType;
+									IF_oclIsKindOf_0 = keyType;
 								}
 								else {
-									symbol_4 = type_3;
+									IF_oclIsKindOf_0 = type_3;
 								}
-								bodyElementType = symbol_4;
+								bodyElementType = IF_oclIsKindOf_0;
 							}
 							@SuppressWarnings("null")
 							final /*@NonInvalid*/ @NonNull List<Variable> ownedIterators = this.getOwnedIterators();
@@ -535,9 +531,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_5 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_5;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -605,9 +601,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATOR_EXP___VALIDATE_CLOSURE_RESULT_ELEMENT_TYPE_IS_ITERATOR_TYPE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -623,9 +619,8 @@
 						try {
 							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_CollectionType_0 = idResolver.getClass(PivotTables.CLSSid_CollectionType, null);
 							final /*@NonInvalid*/ @Nullable Type type = this.getType();
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_CollectionType_0;
 							@SuppressWarnings("null")
-							final /*@Thrown*/ @NonNull CollectionType oclAsType = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, type, symbol_0);
+							final /*@Thrown*/ @NonNull CollectionType oclAsType = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, type, TYP_CollectionType_0);
 							final /*@Thrown*/ @NonNull Type resultElementType = CollectionElementTypeProperty.INSTANCE.evaluate(executor, PivotTables.CLSSid_Type, oclAsType);
 							@SuppressWarnings("null")
 							final /*@NonInvalid*/ @NonNull List<Variable> ownedIterators = this.getOwnedIterators();
@@ -680,9 +675,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -722,9 +717,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATOR_EXP___VALIDATE_CLOSURE_TYPE_IS_UNIQUE_COLLECTION__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_5;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_5 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -736,7 +731,7 @@
 						result = ValueUtil.TRUE_VALUE;
 					}
 					else {
-						/*@Caught*/ @NonNull Object CAUGHT_symbol_4;
+						/*@Caught*/ @NonNull Object CAUGHT_IF_or;
 						try {
 							final /*@NonInvalid*/ @Nullable Type type_4 = this.getType();
 							/*@Caught*/ @Nullable Object CAUGHT_safe_oclIsKindOf_source;
@@ -766,8 +761,7 @@
 								}
 								else {
 									final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_SequenceType_0 = idResolver.getClass(PivotTables.CLSSid_SequenceType, null);
-									final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_SequenceType_0;
-									final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0).booleanValue();
+									final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_SequenceType_0).booleanValue();
 									safe_oclIsKindOf_source = oclIsKindOf_0;
 								}
 								CAUGHT_safe_oclIsKindOf_source = safe_oclIsKindOf_source;
@@ -794,8 +788,7 @@
 										final /*@Thrown*/ @Nullable Type type_2 = ownedSource_0.getType();
 										safe_type_source_0 = type_2;
 									}
-									final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_1 = TYP_OrderedSetType_0;
-									final /*@Thrown*/ boolean oclIsKindOf_1 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source_0, symbol_1).booleanValue();
+									final /*@Thrown*/ boolean oclIsKindOf_1 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source_0, TYP_OrderedSetType_0).booleanValue();
 									CAUGHT_oclIsKindOf_1 = oclIsKindOf_1;
 								}
 								catch (Exception e) {
@@ -822,30 +815,28 @@
 							if (or == null) {
 								throw new InvalidValueException("Null if condition");
 							}
-							/*@Thrown*/ boolean symbol_4;
+							/*@Thrown*/ boolean IF_or;
 							if (or) {
 								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_OrderedSetType_1 = idResolver.getClass(PivotTables.CLSSid_OrderedSetType, null);
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_2 = TYP_OrderedSetType_1;
-								final /*@Thrown*/ boolean oclIsKindOf_2 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_4, symbol_2).booleanValue();
-								symbol_4 = oclIsKindOf_2;
+								final /*@Thrown*/ boolean oclIsKindOf_2 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_4, TYP_OrderedSetType_1).booleanValue();
+								IF_or = oclIsKindOf_2;
 							}
 							else {
 								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_SetType_0 = idResolver.getClass(PivotTables.CLSSid_SetType, null);
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_3 = TYP_SetType_0;
-								final /*@Thrown*/ boolean oclIsKindOf_3 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_4, symbol_3).booleanValue();
-								symbol_4 = oclIsKindOf_3;
+								final /*@Thrown*/ boolean oclIsKindOf_3 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_4, TYP_SetType_0).booleanValue();
+								IF_or = oclIsKindOf_3;
 							}
-							CAUGHT_symbol_4 = symbol_4;
+							CAUGHT_IF_or = IF_or;
 						}
 						catch (Exception e) {
-							CAUGHT_symbol_4 = ValueUtil.createInvalidValue(e);
+							CAUGHT_IF_or = ValueUtil.createInvalidValue(e);
 						}
-						if (CAUGHT_symbol_4 == ValueUtil.TRUE_VALUE) {
+						if (CAUGHT_IF_or == ValueUtil.TRUE_VALUE) {
 							result = ValueUtil.TRUE_VALUE;
 						}
 						else {
-							if (CAUGHT_symbol_4 instanceof InvalidValueException) {
-								throw (InvalidValueException)CAUGHT_symbol_4;
+							if (CAUGHT_IF_or instanceof InvalidValueException) {
+								throw (InvalidValueException)CAUGHT_IF_or;
 							}
 							result = ValueUtil.FALSE_VALUE;
 						}
@@ -856,9 +847,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_5 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_5;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -894,9 +885,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATOR_EXP___VALIDATE_COLLECT_ELEMENT_TYPE_IS_FLATTENED_BODY_TYPE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -912,9 +903,8 @@
 						try {
 							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_CollectionType_0 = idResolver.getClass(PivotTables.CLSSid_CollectionType, null);
 							final /*@NonInvalid*/ @Nullable Type type = this.getType();
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_CollectionType_0;
 							@SuppressWarnings("null")
-							final /*@Thrown*/ @NonNull CollectionType oclAsType = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, type, symbol_0);
+							final /*@Thrown*/ @NonNull CollectionType oclAsType = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, type, TYP_CollectionType_0);
 							final /*@Thrown*/ @NonNull Type elementType = CollectionElementTypeProperty.INSTANCE.evaluate(executor, PivotTables.CLSSid_Type, oclAsType);
 							@SuppressWarnings("null")
 							final /*@NonInvalid*/ @NonNull OCLExpression ownedBody = this.getOwnedBody();
@@ -952,9 +942,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -1022,9 +1012,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATOR_EXP___VALIDATE_COLLECT_TYPE_IS_UNORDERED__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_5;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_5 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -1036,7 +1026,7 @@
 						result = ValueUtil.TRUE_VALUE;
 					}
 					else {
-						/*@Caught*/ @NonNull Object CAUGHT_symbol_4;
+						/*@Caught*/ @NonNull Object CAUGHT_IF_or;
 						try {
 							final /*@NonInvalid*/ @Nullable Type type_4 = this.getType();
 							/*@Caught*/ @NonNull Object CAUGHT_oclIsKindOf;
@@ -1053,8 +1043,7 @@
 									final /*@Thrown*/ @Nullable Type type_0 = ownedSource.getType();
 									safe_type_source = type_0;
 								}
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_SequenceType_0;
-								final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0).booleanValue();
+								final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_SequenceType_0).booleanValue();
 								CAUGHT_oclIsKindOf = oclIsKindOf;
 							}
 							catch (Exception e) {
@@ -1079,8 +1068,7 @@
 										final /*@Thrown*/ @Nullable Type type_2 = ownedSource_0.getType();
 										safe_type_source_0 = type_2;
 									}
-									final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_1 = TYP_OrderedSetType_0;
-									final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source_0, symbol_1).booleanValue();
+									final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source_0, TYP_OrderedSetType_0).booleanValue();
 									CAUGHT_oclIsKindOf_0 = oclIsKindOf_0;
 								}
 								catch (Exception e) {
@@ -1102,30 +1090,28 @@
 							if (or == null) {
 								throw new InvalidValueException("Null if condition");
 							}
-							/*@Thrown*/ boolean symbol_4;
+							/*@Thrown*/ boolean IF_or;
 							if (or) {
 								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_SequenceType_1 = idResolver.getClass(PivotTables.CLSSid_SequenceType, null);
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_2 = TYP_SequenceType_1;
-								final /*@Thrown*/ boolean oclIsKindOf_1 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_4, symbol_2).booleanValue();
-								symbol_4 = oclIsKindOf_1;
+								final /*@Thrown*/ boolean oclIsKindOf_1 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_4, TYP_SequenceType_1).booleanValue();
+								IF_or = oclIsKindOf_1;
 							}
 							else {
 								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_BagType_0 = idResolver.getClass(PivotTables.CLSSid_BagType, null);
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_3 = TYP_BagType_0;
-								final /*@Thrown*/ boolean oclIsKindOf_2 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_4, symbol_3).booleanValue();
-								symbol_4 = oclIsKindOf_2;
+								final /*@Thrown*/ boolean oclIsKindOf_2 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_4, TYP_BagType_0).booleanValue();
+								IF_or = oclIsKindOf_2;
 							}
-							CAUGHT_symbol_4 = symbol_4;
+							CAUGHT_IF_or = IF_or;
 						}
 						catch (Exception e) {
-							CAUGHT_symbol_4 = ValueUtil.createInvalidValue(e);
+							CAUGHT_IF_or = ValueUtil.createInvalidValue(e);
 						}
-						if (CAUGHT_symbol_4 == ValueUtil.TRUE_VALUE) {
+						if (CAUGHT_IF_or == ValueUtil.TRUE_VALUE) {
 							result = ValueUtil.TRUE_VALUE;
 						}
 						else {
-							if (CAUGHT_symbol_4 instanceof InvalidValueException) {
-								throw (InvalidValueException)CAUGHT_symbol_4;
+							if (CAUGHT_IF_or instanceof InvalidValueException) {
+								throw (InvalidValueException)CAUGHT_IF_or;
 							}
 							result = ValueUtil.FALSE_VALUE;
 						}
@@ -1136,9 +1122,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_5 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_5;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -1178,9 +1164,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATOR_EXP___VALIDATE_SORTED_BY_IS_ORDERED_IF_SOURCE_IS_ORDERED__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_5;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_5 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -1192,7 +1178,7 @@
 						result = ValueUtil.TRUE_VALUE;
 					}
 					else {
-						/*@Caught*/ @NonNull Object CAUGHT_symbol_4;
+						/*@Caught*/ @NonNull Object CAUGHT_IF_or;
 						try {
 							final /*@NonInvalid*/ @Nullable Type type_4 = this.getType();
 							/*@Caught*/ @NonNull Object CAUGHT_oclIsKindOf;
@@ -1209,8 +1195,7 @@
 									final /*@Thrown*/ @Nullable Type type_0 = ownedSource.getType();
 									safe_type_source = type_0;
 								}
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_SequenceType_0;
-								final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0).booleanValue();
+								final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_SequenceType_0).booleanValue();
 								CAUGHT_oclIsKindOf = oclIsKindOf;
 							}
 							catch (Exception e) {
@@ -1235,8 +1220,7 @@
 										final /*@Thrown*/ @Nullable Type type_2 = ownedSource_0.getType();
 										safe_type_source_0 = type_2;
 									}
-									final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_1 = TYP_BagType_0;
-									final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source_0, symbol_1).booleanValue();
+									final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source_0, TYP_BagType_0).booleanValue();
 									CAUGHT_oclIsKindOf_0 = oclIsKindOf_0;
 								}
 								catch (Exception e) {
@@ -1258,30 +1242,28 @@
 							if (or == null) {
 								throw new InvalidValueException("Null if condition");
 							}
-							/*@Thrown*/ boolean symbol_4;
+							/*@Thrown*/ boolean IF_or;
 							if (or) {
 								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_SequenceType_1 = idResolver.getClass(PivotTables.CLSSid_SequenceType, null);
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_2 = TYP_SequenceType_1;
-								final /*@Thrown*/ boolean oclIsKindOf_1 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_4, symbol_2).booleanValue();
-								symbol_4 = oclIsKindOf_1;
+								final /*@Thrown*/ boolean oclIsKindOf_1 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_4, TYP_SequenceType_1).booleanValue();
+								IF_or = oclIsKindOf_1;
 							}
 							else {
 								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_OrderedSetType_0 = idResolver.getClass(PivotTables.CLSSid_OrderedSetType, null);
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_3 = TYP_OrderedSetType_0;
-								final /*@Thrown*/ boolean oclIsKindOf_2 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_4, symbol_3).booleanValue();
-								symbol_4 = oclIsKindOf_2;
+								final /*@Thrown*/ boolean oclIsKindOf_2 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_4, TYP_OrderedSetType_0).booleanValue();
+								IF_or = oclIsKindOf_2;
 							}
-							CAUGHT_symbol_4 = symbol_4;
+							CAUGHT_IF_or = IF_or;
 						}
 						catch (Exception e) {
-							CAUGHT_symbol_4 = ValueUtil.createInvalidValue(e);
+							CAUGHT_IF_or = ValueUtil.createInvalidValue(e);
 						}
-						if (CAUGHT_symbol_4 == ValueUtil.TRUE_VALUE) {
+						if (CAUGHT_IF_or == ValueUtil.TRUE_VALUE) {
 							result = ValueUtil.TRUE_VALUE;
 						}
 						else {
-							if (CAUGHT_symbol_4 instanceof InvalidValueException) {
-								throw (InvalidValueException)CAUGHT_symbol_4;
+							if (CAUGHT_IF_or instanceof InvalidValueException) {
+								throw (InvalidValueException)CAUGHT_IF_or;
 							}
 							result = ValueUtil.FALSE_VALUE;
 						}
@@ -1292,9 +1274,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_5 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_5;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -1330,9 +1312,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATOR_EXP___VALIDATE_SORTED_BY_ELEMENT_TYPE_IS_SOURCE_ELEMENT_TYPE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_2;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_2 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -1347,10 +1329,9 @@
 						/*@Caught*/ @NonNull Object CAUGHT_eq_0;
 						try {
 							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_CollectionType_1 = idResolver.getClass(PivotTables.CLSSid_CollectionType, null);
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_1 = TYP_CollectionType_1;
 							final /*@NonInvalid*/ @Nullable Type type = this.getType();
 							@SuppressWarnings("null")
-							final /*@Thrown*/ @NonNull CollectionType oclAsType = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, type, symbol_1);
+							final /*@Thrown*/ @NonNull CollectionType oclAsType = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, type, TYP_CollectionType_1);
 							final /*@Thrown*/ @NonNull Type elementType = CollectionElementTypeProperty.INSTANCE.evaluate(executor, PivotTables.CLSSid_Type, oclAsType);
 							final /*@NonInvalid*/ @Nullable OCLExpression ownedSource = this.getOwnedSource();
 							final /*@NonInvalid*/ @NonNull Object type_0 = ownedSource == null;
@@ -1364,7 +1345,7 @@
 								safe_type_source = type_1;
 							}
 							@SuppressWarnings("null")
-							final /*@Thrown*/ @NonNull CollectionType oclAsType_0 = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_1);
+							final /*@Thrown*/ @NonNull CollectionType oclAsType_0 = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_CollectionType_1);
 							final /*@Thrown*/ @NonNull Type elementType_0 = CollectionElementTypeProperty.INSTANCE.evaluate(executor, PivotTables.CLSSid_Type, oclAsType_0);
 							final /*@Thrown*/ boolean eq_0 = elementType.getTypeId() == elementType_0.getTypeId();
 							CAUGHT_eq_0 = eq_0;
@@ -1388,9 +1369,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_2 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_2;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -1432,9 +1413,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATOR_EXP___VALIDATE_ITERATOR_TYPE_IS_SOURCE_ELEMENT_TYPE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_2;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_2 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_implies;
@@ -1463,8 +1444,7 @@
 						if (CAUGHT_safe_type_source instanceof InvalidValueException) {
 							throw (InvalidValueException)CAUGHT_safe_type_source;
 						}
-						final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_CollectionType_0;
-						final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, CAUGHT_safe_type_source, symbol_0).booleanValue();
+						final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, CAUGHT_safe_type_source, TYP_CollectionType_0).booleanValue();
 						CAUGHT_oclIsKindOf = oclIsKindOf;
 					}
 					catch (Exception e) {
@@ -1481,9 +1461,8 @@
 							if (CAUGHT_safe_type_source instanceof InvalidValueException) {
 								throw (InvalidValueException)CAUGHT_safe_type_source;
 							}
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_1 = TYP_CollectionType_1;
 							@SuppressWarnings("null")
-							final /*@Thrown*/ @NonNull CollectionType oclAsType = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, CAUGHT_safe_type_source, symbol_1);
+							final /*@Thrown*/ @NonNull CollectionType oclAsType = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, CAUGHT_safe_type_source, TYP_CollectionType_1);
 							final /*@Thrown*/ @NonNull Type sourceElementType = CollectionElementTypeProperty.INSTANCE.evaluate(executor, PivotTables.CLSSid_Type, oclAsType);
 							@SuppressWarnings("null")
 							final /*@NonInvalid*/ @NonNull List<Variable> ownedIterators = this.getOwnedIterators();
@@ -1559,9 +1538,9 @@
 					CAUGHT_implies = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_implies, PivotTables.INT_0).booleanValue();
-				symbol_2 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_2;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -1603,9 +1582,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATOR_EXP___VALIDATE_ITERATOR_TYPE_IS_SOURCE_KEY_TYPE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_2;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_2 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_implies;
@@ -1634,8 +1613,7 @@
 						if (CAUGHT_safe_type_source instanceof InvalidValueException) {
 							throw (InvalidValueException)CAUGHT_safe_type_source;
 						}
-						final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_MapType_0;
-						final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, CAUGHT_safe_type_source, symbol_0).booleanValue();
+						final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, CAUGHT_safe_type_source, TYP_MapType_0).booleanValue();
 						CAUGHT_oclIsKindOf = oclIsKindOf;
 					}
 					catch (Exception e) {
@@ -1652,9 +1630,8 @@
 							if (CAUGHT_safe_type_source instanceof InvalidValueException) {
 								throw (InvalidValueException)CAUGHT_safe_type_source;
 							}
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_1 = TYP_MapType_1;
 							@SuppressWarnings("null")
-							final /*@Thrown*/ @NonNull MapType oclAsType = (@NonNull MapType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, CAUGHT_safe_type_source, symbol_1);
+							final /*@Thrown*/ @NonNull MapType oclAsType = (@NonNull MapType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, CAUGHT_safe_type_source, TYP_MapType_1);
 							final /*@Thrown*/ @NonNull Type sourceKeyType = MapKeyTypeProperty.INSTANCE.evaluate(executor, PivotTables.CLSSid_Type, oclAsType);
 							@SuppressWarnings("null")
 							final /*@NonInvalid*/ @NonNull List<Variable> ownedIterators = this.getOwnedIterators();
@@ -1730,9 +1707,9 @@
 					CAUGHT_implies = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_implies, PivotTables.INT_0).booleanValue();
-				symbol_2 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_2;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -1767,9 +1744,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATOR_EXP___VALIDATE_SAFE_ITERATOR_IS_REQUIRED__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -1832,9 +1809,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -1874,9 +1851,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATOR_EXP___VALIDATE_SAFE_SOURCE_CAN_BE_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_4;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_4 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -1889,7 +1866,7 @@
 					else {
 						/*@Caught*/ @Nullable Object CAUGHT_not;
 						try {
-							/*@Caught*/ @NonNull Object CAUGHT_symbol_3;
+							/*@Caught*/ @NonNull Object CAUGHT_IF_oclIsKindOf;
 							try {
 								final /*@NonInvalid*/ @Nullable OCLExpression ownedSource = this.getOwnedSource();
 								final /*@NonInvalid*/ @NonNull Object type = ownedSource == null;
@@ -1903,37 +1880,35 @@
 									safe_type_source = type_0;
 								}
 								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_MapType_0 = idResolver.getClass(PivotTables.CLSSid_MapType, null);
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_MapType_0;
-								final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0).booleanValue();
-								/*@Thrown*/ boolean symbol_3;
+								final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_MapType_0).booleanValue();
+								/*@Thrown*/ boolean IF_oclIsKindOf;
 								if (oclIsKindOf) {
 									@SuppressWarnings("null")
-									final /*@Thrown*/ @NonNull MapType oclAsType = (@NonNull MapType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0);
+									final /*@Thrown*/ @NonNull MapType oclAsType = (@NonNull MapType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_MapType_0);
 									final /*@Thrown*/ boolean keysAreNullFree = oclAsType.isKeysAreNullFree();
-									symbol_3 = keysAreNullFree;
+									IF_oclIsKindOf = keysAreNullFree;
 								}
 								else {
 									final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_CollectionType_0 = idResolver.getClass(PivotTables.CLSSid_CollectionType, null);
-									final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_2 = TYP_CollectionType_0;
 									@SuppressWarnings("null")
-									final /*@Thrown*/ @NonNull CollectionType oclAsType_0 = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_2);
+									final /*@Thrown*/ @NonNull CollectionType oclAsType_0 = (@NonNull CollectionType)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_CollectionType_0);
 									final /*@Thrown*/ boolean isNullFree = oclAsType_0.isIsNullFree();
-									symbol_3 = isNullFree;
+									IF_oclIsKindOf = isNullFree;
 								}
-								CAUGHT_symbol_3 = symbol_3;
+								CAUGHT_IF_oclIsKindOf = IF_oclIsKindOf;
 							}
 							catch (Exception e) {
-								CAUGHT_symbol_3 = ValueUtil.createInvalidValue(e);
+								CAUGHT_IF_oclIsKindOf = ValueUtil.createInvalidValue(e);
 							}
-							if (CAUGHT_symbol_3 instanceof InvalidValueException) {
-								throw (InvalidValueException)CAUGHT_symbol_3;
+							if (CAUGHT_IF_oclIsKindOf instanceof InvalidValueException) {
+								throw (InvalidValueException)CAUGHT_IF_oclIsKindOf;
 							}
 							final /*@Thrown*/ @Nullable Boolean not;
-							if (CAUGHT_symbol_3 == ValueUtil.FALSE_VALUE) {
+							if (CAUGHT_IF_oclIsKindOf == ValueUtil.FALSE_VALUE) {
 								not = ValueUtil.TRUE_VALUE;
 							}
 							else {
-								if (CAUGHT_symbol_3 == ValueUtil.TRUE_VALUE) {
+								if (CAUGHT_IF_oclIsKindOf == ValueUtil.TRUE_VALUE) {
 									not = ValueUtil.FALSE_VALUE;
 								}
 								else {
@@ -1966,9 +1941,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_4 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_4;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IteratorVariableImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IteratorVariableImpl.java
index 80b58ba..afe56fb 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IteratorVariableImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/IteratorVariableImpl.java
@@ -108,17 +108,17 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.ITERATOR_VARIABLE___VALIDATE_HAS_NO_INITIALIZER__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @Nullable OCLExpression ownedInit = this.getOwnedInit();
 				final /*@NonInvalid*/ boolean result = ownedInit == null;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/LetExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/LetExpImpl.java
index bb8b2b4..88d8667 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/LetExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/LetExpImpl.java
@@ -244,9 +244,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.LET_EXP___VALIDATE_COMPATIBLE_NULLITY_FOR_IN__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ boolean isRequired = this.isIsRequired();
@@ -255,9 +255,9 @@
 				final /*@NonInvalid*/ boolean isRequired_0 = ownedIn.isIsRequired();
 				final /*@NonInvalid*/ boolean result = isRequired == isRequired_0;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -290,9 +290,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.LET_EXP___VALIDATE_TYPE_IS_IN_TYPE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
@@ -301,9 +301,9 @@
 				final /*@NonInvalid*/ @Nullable Type type_0 = ownedIn.getType();
 				final /*@NonInvalid*/ boolean result = (type != null) && (type_0 != null) ? (type.getTypeId() == type_0.getTypeId()) : false;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -337,19 +337,18 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.LET_EXP___VALIDATE_TYPE_IS_NOT_INVALID__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @NonNull InvalidType TYP_OclInvalid_0 = (@NonNull InvalidType)idResolver.getClass(TypeId.OCL_INVALID, null);
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
-				final /*@NonInvalid*/ @NonNull InvalidType symbol_0 = TYP_OclInvalid_0;
-				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != symbol_0.getTypeId()) : true;
+				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != TYP_OclInvalid_0.getTypeId()) : true;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/LetVariableImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/LetVariableImpl.java
index 5498b60..0ae6437 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/LetVariableImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/LetVariableImpl.java
@@ -110,9 +110,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.LET_VARIABLE___VALIDATE_COMPATIBLE_NULLITY_FOR_INITIALIZER__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @NonNull Object CAUGHT_result;
@@ -136,9 +136,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -172,9 +172,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.LET_VARIABLE___VALIDATE_COMPATIBLE_TYPE_FOR_INITIALIZER__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -238,9 +238,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -273,17 +273,17 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.LET_VARIABLE___VALIDATE_HAS_INITIALIZER__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @Nullable OCLExpression ownedInit = this.getOwnedInit();
 				final /*@NonInvalid*/ boolean result = ownedInit != null;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/LoopExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/LoopExpImpl.java
index 0c305cb..5b78264 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/LoopExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/LoopExpImpl.java
@@ -311,9 +311,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.LOOP_EXP___VALIDATE_MATCHING_MAP_CO_ITERATORS__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -336,8 +336,7 @@
 							final /*@Thrown*/ @Nullable Type type_0 = ownedSource.getType();
 							safe_type_source = type_0;
 						}
-						final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_MapType_0;
-						final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0).booleanValue();
+						final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_MapType_0).booleanValue();
 						CAUGHT_oclIsKindOf = oclIsKindOf;
 					}
 					catch (Exception e) {
@@ -387,9 +386,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -428,9 +427,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.LOOP_EXP___VALIDATE_MATCHING_ORDERED_COLLECTION_CO_ITERATORS__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_2;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_2 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -455,8 +454,7 @@
 								final /*@Thrown*/ @Nullable Type type_0 = ownedSource.getType();
 								safe_type_source = type_0;
 							}
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_OrderedSetType_0;
-							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0).booleanValue();
+							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_OrderedSetType_0).booleanValue();
 							CAUGHT_oclIsKindOf = oclIsKindOf;
 						}
 						catch (Exception e) {
@@ -481,8 +479,7 @@
 									final /*@Thrown*/ @Nullable Type type_2 = ownedSource_0.getType();
 									safe_type_source_0 = type_2;
 								}
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_1 = TYP_SequenceType_0;
-								final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source_0, symbol_1).booleanValue();
+								final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source_0, TYP_SequenceType_0).booleanValue();
 								CAUGHT_oclIsKindOf_0 = oclIsKindOf_0;
 							}
 							catch (Exception e) {
@@ -550,9 +547,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_2 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_2;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -588,9 +585,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.LOOP_EXP___VALIDATE_NO_CO_INITIALIZERS__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -648,9 +645,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -699,9 +696,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.LOOP_EXP___VALIDATE_SOURCE_IS_ITERABLE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @NonNull Object CAUGHT_result;
@@ -718,17 +715,16 @@
 						final /*@Thrown*/ @Nullable Type type_0 = ownedSource.getType();
 						safe_type_source = type_0;
 					}
-					final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_IterableType;
-					final /*@Thrown*/ boolean result = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0).booleanValue();
+					final /*@Thrown*/ boolean result = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_IterableType).booleanValue();
 					CAUGHT_result = result;
 				}
 				catch (Exception e) {
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -764,9 +760,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.LOOP_EXP___VALIDATE_NO_INITIALIZERS__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -823,9 +819,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -862,9 +858,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.LOOP_EXP___VALIDATE_NO_NOT_ORDERED_COLLECTION_CO_ITERATORS__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_2;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_2 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -885,8 +881,7 @@
 								final /*@Thrown*/ @Nullable Type type_0 = ownedSource.getType();
 								safe_type_source = type_0;
 							}
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_BagType_0;
-							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, symbol_0).booleanValue();
+							final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source, TYP_BagType_0).booleanValue();
 							CAUGHT_oclIsKindOf = oclIsKindOf;
 						}
 						catch (Exception e) {
@@ -911,8 +906,7 @@
 									final /*@Thrown*/ @Nullable Type type_2 = ownedSource_0.getType();
 									safe_type_source_0 = type_2;
 								}
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_1 = TYP_SetType_0;
-								final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source_0, symbol_1).booleanValue();
+								final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, safe_type_source_0, TYP_SetType_0).booleanValue();
 								CAUGHT_oclIsKindOf_0 = oclIsKindOf_0;
 							}
 							catch (Exception e) {
@@ -966,9 +960,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_2 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_2;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/MessageExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/MessageExpImpl.java
index 95e6405..b297192 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/MessageExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/MessageExpImpl.java
@@ -341,9 +341,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.MESSAGE_EXP___VALIDATE_ONE_CALL_OR_ONE_SEND__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @NonNull Object CAUGHT_result;
@@ -365,9 +365,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -402,9 +402,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.MESSAGE_EXP___VALIDATE_TARGET_IS_NOT_ACOLLECTION__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -415,8 +415,7 @@
 						@SuppressWarnings("null")
 						final /*@NonInvalid*/ @NonNull OCLExpression ownedTarget = this.getOwnedTarget();
 						final /*@NonInvalid*/ @Nullable Type type = ownedTarget.getType();
-						final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_CollectionType_0;
-						final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type, symbol_0).booleanValue();
+						final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type, TYP_CollectionType_0).booleanValue();
 						CAUGHT_oclIsKindOf = oclIsKindOf;
 					}
 					catch (Exception e) {
@@ -443,9 +442,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OCLExpressionImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OCLExpressionImpl.java
index eea50c7..1389df3 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OCLExpressionImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OCLExpressionImpl.java
@@ -155,17 +155,17 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.OCL_EXPRESSION___VALIDATE_TYPE_IS_NOT_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
 				final /*@NonInvalid*/ boolean result = type != null;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OperationCallExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OperationCallExpImpl.java
index 14ac299..cfd5025 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OperationCallExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OperationCallExpImpl.java
@@ -631,9 +631,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.OPERATION_CALL_EXP___VALIDATE_ARGUMENT_TYPE_IS_CONFORMANT__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_forAll;
@@ -714,8 +714,7 @@
 							/*@Thrown*/ @Nullable Type requiredType;
 							if (isTypeof) {
 								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_Class = idResolver.getClass(PivotTables.CLSSid_Class, null);
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_Class;
-								requiredType = symbol_0;
+								requiredType = TYP_Class;
 							}
 							else {
 								/*@Caught*/ @Nullable Object CAUGHT_parameterType;
@@ -792,9 +791,9 @@
 					CAUGHT_forAll = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_forAll, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -828,9 +827,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.OPERATION_CALL_EXP___VALIDATE_SAFE_SOURCE_CAN_BE_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -909,9 +908,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -946,9 +945,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.OPERATION_CALL_EXP___VALIDATE_UNSAFE_SOURCE_CAN_NOT_BE_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -1073,9 +1072,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -1111,9 +1110,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.OPERATION_CALL_EXP___VALIDATE_ARGUMENT_COUNT__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @NonNull Object CAUGHT_result;
@@ -1145,9 +1144,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OperationImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OperationImpl.java
index 085499e..12e6497 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OperationImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OperationImpl.java
@@ -785,9 +785,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.OPERATION___VALIDATE_COMPATIBLE_RETURN__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -804,9 +804,8 @@
 							/*@Caught*/ @NonNull Object CAUGHT_ne_0;
 							try {
 								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ExpressionInOCL = idResolver.getClass(PivotTables.CLSSid_ExpressionInOCL, null);
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_ExpressionInOCL;
 								@SuppressWarnings("null")
-								final /*@Thrown*/ @NonNull ExpressionInOCL oclAsType = (@NonNull ExpressionInOCL)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, bodyExpression, symbol_0);
+								final /*@Thrown*/ @NonNull ExpressionInOCL oclAsType = (@NonNull ExpressionInOCL)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, bodyExpression, TYP_ExpressionInOCL);
 								final /*@Thrown*/ @Nullable OCLExpression ownedBody = oclAsType.getOwnedBody();
 								final /*@Thrown*/ boolean ne_0 = ownedBody != null;
 								CAUGHT_ne_0 = ne_0;
@@ -867,9 +866,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -917,9 +916,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.OPERATION___VALIDATE_UNIQUE_PRECONDITION_NAME__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @NonNull Object CAUGHT_result;
@@ -955,9 +954,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -991,9 +990,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.OPERATION___VALIDATE_UNIQUE_POSTCONDITION_NAME__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @NonNull Object CAUGHT_result;
@@ -1029,9 +1028,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OppositePropertyCallExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OppositePropertyCallExpImpl.java
index 5dc26d4..2523a05 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OppositePropertyCallExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/OppositePropertyCallExpImpl.java
@@ -178,9 +178,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.OPPOSITE_PROPERTY_CALL_EXP___VALIDATE_SAFE_SOURCE_CAN_BE_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -259,9 +259,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -295,9 +295,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.OPPOSITE_PROPERTY_CALL_EXP___VALIDATE_UNSAFE_SOURCE_CAN_NOT_BE_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -382,9 +382,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ParameterVariableImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ParameterVariableImpl.java
index f1563ce..680f1b2 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ParameterVariableImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ParameterVariableImpl.java
@@ -108,17 +108,17 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.PARAMETER_VARIABLE___VALIDATE_HAS_NO_INITIALIZER__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @Nullable OCLExpression ownedInit = this.getOwnedInit();
 				final /*@NonInvalid*/ boolean result = ownedInit == null;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/PropertyCallExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/PropertyCallExpImpl.java
index dfd6bd5..dbacf11 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/PropertyCallExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/PropertyCallExpImpl.java
@@ -545,9 +545,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.PROPERTY_CALL_EXP___VALIDATE_NON_STATIC_SOURCE_TYPE_IS_CONFORMANT__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -660,9 +660,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -696,9 +696,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.PROPERTY_CALL_EXP___VALIDATE_SAFE_SOURCE_CAN_BE_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -777,9 +777,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -813,9 +813,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.PROPERTY_CALL_EXP___VALIDATE_UNSAFE_SOURCE_CAN_NOT_BE_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -900,9 +900,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -935,9 +935,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.PROPERTY_CALL_EXP___VALIDATE_COMPATIBLE_RESULT_TYPE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
@@ -945,9 +945,9 @@
 				final /*@NonInvalid*/ @NonNull Type getSpecializedReferredPropertyType = this.getSpecializedReferredPropertyType();
 				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() == getSpecializedReferredPropertyType.getTypeId()) : false;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/PropertyImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/PropertyImpl.java
index ae58a38..be40b90 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/PropertyImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/PropertyImpl.java
@@ -1023,8 +1023,7 @@
 		/*@Caught*/ @NonNull Object CAUGHT_oclIsKindOf;
 		try {
 			final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_Class_0 = idResolver.getClass(PivotTables.CLSSid_Class, null);
-			final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_Class_0;
-			final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, container, symbol_0).booleanValue();
+			final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, container, TYP_Class_0).booleanValue();
 			CAUGHT_oclIsKindOf = oclIsKindOf;
 		}
 		catch (Exception e) {
@@ -1038,9 +1037,8 @@
 			/*@Caught*/ @NonNull Object CAUGHT_includes;
 			try {
 				final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_Class_1 = idResolver.getClass(PivotTables.CLSSid_Class, null);
-				final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_1 = TYP_Class_1;
 				@SuppressWarnings("null")
-				final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull Class oclAsType = (org.eclipse.ocl.pivot.@NonNull Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, container, symbol_1);
+				final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull Class oclAsType = (org.eclipse.ocl.pivot.@NonNull Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, container, TYP_Class_1);
 				final /*@Thrown*/ @NonNull List<Property> ownedProperties = oclAsType.getOwnedProperties();
 				final /*@Thrown*/ @NonNull OrderedSetValue BOXED_ownedProperties = idResolver.createOrderedSetOfAll(PivotTables.ORD_CLSSid_Property, ownedProperties);
 				final /*@Thrown*/ boolean includes = CollectionIncludesOperation.INSTANCE.evaluate(BOXED_ownedProperties, this).booleanValue();
@@ -1097,9 +1095,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.PROPERTY___VALIDATE_COMPATIBLE_DEFAULT_EXPRESSION__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -1116,9 +1114,8 @@
 							/*@Caught*/ @NonNull Object CAUGHT_ne_0;
 							try {
 								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ExpressionInOCL_0 = idResolver.getClass(PivotTables.CLSSid_ExpressionInOCL, null);
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_ExpressionInOCL_0;
 								@SuppressWarnings("null")
-								final /*@Thrown*/ @NonNull ExpressionInOCL oclAsType = (@NonNull ExpressionInOCL)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ownedExpression, symbol_0);
+								final /*@Thrown*/ @NonNull ExpressionInOCL oclAsType = (@NonNull ExpressionInOCL)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ownedExpression, TYP_ExpressionInOCL_0);
 								final /*@Thrown*/ @Nullable OCLExpression ownedBody = oclAsType.getOwnedBody();
 								final /*@Thrown*/ boolean ne_0 = ownedBody != null;
 								CAUGHT_ne_0 = ne_0;
@@ -1179,9 +1176,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ResultVariableImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ResultVariableImpl.java
index 2c7f20f..e39b131 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ResultVariableImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ResultVariableImpl.java
@@ -110,9 +110,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.RESULT_VARIABLE___VALIDATE_COMPATIBLE_NULLITY_FOR_INITIALIZER__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -196,9 +196,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -232,9 +232,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.RESULT_VARIABLE___VALIDATE_COMPATIBLE_TYPE_FOR_INITIALIZER__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -298,9 +298,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -333,17 +333,17 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.RESULT_VARIABLE___VALIDATE_HAS_INITIALIZER__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @Nullable OCLExpression ownedInit = this.getOwnedInit();
 				final /*@NonInvalid*/ boolean result = ownedInit != null;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ShadowExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ShadowExpImpl.java
index 96ea7c7..2d36d2c 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ShadowExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ShadowExpImpl.java
@@ -250,9 +250,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.SHADOW_EXP___VALIDATE_DATA_TYPE_HAS_ONE_PART_INITIALIZER__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -261,8 +261,7 @@
 					try {
 						final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_DataType = idResolver.getClass(PivotTables.CLSSid_DataType, null);
 						final /*@NonInvalid*/ @Nullable Type type = this.getType();
-						final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_DataType;
-						final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type, symbol_0).booleanValue();
+						final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type, TYP_DataType).booleanValue();
 						CAUGHT_oclIsKindOf = oclIsKindOf;
 					}
 					catch (Exception e) {
@@ -293,9 +292,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -412,17 +411,16 @@
 			final /*@NonInvalid*/ @NonNull StandardLibrary standardLibrary = idResolver.getStandardLibrary();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.SHADOW_EXP___VALIDATE_INITIALIZES_ALL_CLASS_PROPERTIES__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_10;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_10 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @NonNull Object CAUGHT_result;
 				try {
 					final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_DataType_0 = idResolver.getClass(PivotTables.CLSSid_DataType, null);
 					final /*@NonInvalid*/ @Nullable Type type = this.getType();
-					final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_DataType_0;
-					final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type, symbol_0).booleanValue();
+					final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type, TYP_DataType_0).booleanValue();
 					/*@Thrown*/ @NonNull Object result;
 					if (oclIsKindOf) {
 						result = ValueUtil.TRUE_VALUE;
@@ -450,9 +448,8 @@
 						}
 						final /*@NonInvalid*/ @NonNull SetValue partProperties = CollectionAsSetOperation.INSTANCE.evaluate(collect);
 						final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_Class_0 = idResolver.getClass(PivotTables.CLSSid_Class, null);
-						final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_1 = TYP_Class_0;
 						@SuppressWarnings("null")
-						final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull Class oclAsType = (org.eclipse.ocl.pivot.@NonNull Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, type, symbol_1);
+						final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull Class oclAsType = (org.eclipse.ocl.pivot.@NonNull Class)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, type, TYP_Class_0);
 						final /*@Thrown*/ @NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, PivotTables.SET_CLSSid_Class, oclAsType);
 						final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_0 = executor.getStaticTypeOfValue(null, oclAsSet);
 						final @NonNull LibraryIterationExtension IMPL_closure_0 = (LibraryIterationExtension)TYPE_closure_0.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure);
@@ -467,11 +464,11 @@
 							 */
 							@Override
 							public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object oclAsSet, final /*@NonInvalid*/ @Nullable Object _1_0) {
-								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@Nullable Class symbol_2 = (org.eclipse.ocl.pivot.Class)_1_0;
-								if (symbol_2 == null) {
+								final /*@NonInvalid*/ org.eclipse.ocl.pivot.@Nullable Class CAST_null = (org.eclipse.ocl.pivot.Class)_1_0;
+								if (CAST_null == null) {
 									throw new InvalidValueException("Null source for \'Class::superClasses\'");
 								}
-								final /*@Thrown*/ @NonNull List<org.eclipse.ocl.pivot.Class> superClasses = symbol_2.getSuperClasses();
+								final /*@Thrown*/ @NonNull List<org.eclipse.ocl.pivot.Class> superClasses = CAST_null.getSuperClasses();
 								final /*@Thrown*/ @NonNull SetValue BOXED_superClasses = idResolver.createSetOfAll(PivotTables.SET_CLSSid_Class, superClasses);
 								return BOXED_superClasses;
 							}
@@ -702,8 +699,7 @@
 							 */
 							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_CollectionType_0 = idResolver.getClass(PivotTables.CLSSid_CollectionType, null);
 							final /*@NonInvalid*/ @Nullable Type type_1 = _1_6.getType();
-							final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_3 = TYP_CollectionType_0;
-							final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_1, symbol_3).booleanValue();
+							final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, type_1, TYP_CollectionType_0).booleanValue();
 							//
 							if (oclIsKindOf_0 == ValueUtil.FALSE_VALUE) {
 								accumulator_5.add(_1_6);
@@ -764,7 +760,7 @@
 						final /*@Thrown*/ @NonNull SetValue extraProperties = (@Nullable SetValue)CollectionExcludingAllOperation.INSTANCE.evaluate(partProperties, classProperties);
 						final /*@Thrown*/ @NonNull SetValue missingProperties = (@Nullable SetValue)CollectionExcludingAllOperation.INSTANCE.evaluate(requiredClassProperties, partProperties);
 						final /*@Thrown*/ boolean notEmpty = CollectionNotEmptyOperation.INSTANCE.evaluate(extraProperties).booleanValue();
-						/*@Thrown*/ @NonNull Object symbol_9;
+						/*@Thrown*/ @NonNull Object IF_notEmpty;
 						if (notEmpty) {
 							final org.eclipse.ocl.pivot.@NonNull Class TYPE_sortedBy_1 = executor.getStaticTypeOfValue(null, extraProperties);
 							final @NonNull LibraryIterationExtension IMPL_sortedBy_1 = (LibraryIterationExtension)TYPE_sortedBy_1.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__sortedBy);
@@ -779,11 +775,11 @@
 								 */
 								@Override
 								public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object extraProperties, final /*@NonInvalid*/ @Nullable Object _1_8) {
-									final /*@NonInvalid*/ @Nullable NamedElement symbol_4 = (NamedElement)_1_8;
-									if (symbol_4 == null) {
+									final /*@NonInvalid*/ @Nullable NamedElement CAST_null_0 = (NamedElement)_1_8;
+									if (CAST_null_0 == null) {
 										throw new InvalidValueException("Null source for \'NamedElement::name\'");
 									}
-									final /*@Thrown*/ @Nullable String name_0 = symbol_4.getName();
+									final /*@Thrown*/ @Nullable String name_0 = CAST_null_0.getName();
 									return name_0;
 								}
 							};
@@ -809,12 +805,12 @@
 								//
 								acc = sum_0;
 							}
-							final /*@Thrown*/ @NonNull TupleValue symbol_5 = ValueUtil.createTupleOfEach(PivotTables.TUPLid_, iterate, ValueUtil.FALSE_VALUE);
-							symbol_9 = symbol_5;
+							final /*@Thrown*/ @NonNull TupleValue TUP_ = ValueUtil.createTupleOfEach(PivotTables.TUPLid_, iterate, ValueUtil.FALSE_VALUE);
+							IF_notEmpty = TUP_;
 						}
 						else {
 							final /*@Thrown*/ boolean notEmpty_0 = CollectionNotEmptyOperation.INSTANCE.evaluate(missingProperties).booleanValue();
-							/*@Thrown*/ @NonNull Object symbol_8;
+							/*@Thrown*/ @NonNull Object IF_notEmpty_0;
 							if (notEmpty_0) {
 								final org.eclipse.ocl.pivot.@NonNull Class TYPE_sortedBy_0_0 = executor.getStaticTypeOfValue(null, missingProperties);
 								final @NonNull LibraryIterationExtension IMPL_sortedBy_0_0 = (LibraryIterationExtension)TYPE_sortedBy_0_0.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__sortedBy);
@@ -829,11 +825,11 @@
 									 */
 									@Override
 									public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object missingProperties, final /*@NonInvalid*/ @Nullable Object _1_9) {
-										final /*@NonInvalid*/ @Nullable NamedElement symbol_6 = (NamedElement)_1_9;
-										if (symbol_6 == null) {
+										final /*@NonInvalid*/ @Nullable NamedElement CAST_null_1 = (NamedElement)_1_9;
+										if (CAST_null_1 == null) {
 											throw new InvalidValueException("Null source for \'NamedElement::name\'");
 										}
-										final /*@Thrown*/ @Nullable String name_2 = symbol_6.getName();
+										final /*@Thrown*/ @Nullable String name_2 = CAST_null_1.getName();
 										return name_2;
 									}
 								};
@@ -859,15 +855,15 @@
 									//
 									acc_0 = sum_2;
 								}
-								final /*@Thrown*/ @NonNull TupleValue symbol_7 = ValueUtil.createTupleOfEach(PivotTables.TUPLid_, iterate_0, ValueUtil.FALSE_VALUE);
-								symbol_8 = symbol_7;
+								final /*@Thrown*/ @NonNull TupleValue TUP__0 = ValueUtil.createTupleOfEach(PivotTables.TUPLid_, iterate_0, ValueUtil.FALSE_VALUE);
+								IF_notEmpty_0 = TUP__0;
 							}
 							else {
-								symbol_8 = ValueUtil.TRUE_VALUE;
+								IF_notEmpty_0 = ValueUtil.TRUE_VALUE;
 							}
-							symbol_9 = symbol_8;
+							IF_notEmpty = IF_notEmpty_0;
 						}
-						result = symbol_9;
+						result = IF_notEmpty;
 					}
 					CAUGHT_result = result;
 				}
@@ -875,9 +871,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_10 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_10;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -911,19 +907,18 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.SHADOW_EXP___VALIDATE_TYPE_IS_NOT_INVALID__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @NonNull InvalidType TYP_OclInvalid_0 = (@NonNull InvalidType)idResolver.getClass(TypeId.OCL_INVALID, null);
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
-				final /*@NonInvalid*/ @NonNull InvalidType symbol_0 = TYP_OclInvalid_0;
-				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != symbol_0.getTypeId()) : true;
+				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != TYP_OclInvalid_0.getTypeId()) : true;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ShadowPartImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ShadowPartImpl.java
index 9e29094..86f2f5d 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ShadowPartImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/ShadowPartImpl.java
@@ -194,9 +194,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.SHADOW_PART___VALIDATE_COMPATIBLE_INITIALISER_TYPE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_safe_conformsTo_source;
@@ -223,9 +223,9 @@
 					CAUGHT_safe_conformsTo_source = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_safe_conformsTo_source, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -259,19 +259,18 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.SHADOW_PART___VALIDATE_TYPE_IS_NOT_INVALID__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @NonNull InvalidType TYP_OclInvalid_0 = (@NonNull InvalidType)idResolver.getClass(TypeId.OCL_INVALID, null);
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
-				final /*@NonInvalid*/ @NonNull InvalidType symbol_0 = TYP_OclInvalid_0;
-				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != symbol_0.getTypeId()) : true;
+				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != TYP_OclInvalid_0.getTypeId()) : true;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -305,17 +304,17 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.SHADOW_PART___VALIDATE_TYPE_IS_NOT_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
 				final /*@NonInvalid*/ boolean result = type != null;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/StateExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/StateExpImpl.java
index ae97a52..0345c9a 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/StateExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/StateExpImpl.java
@@ -174,19 +174,18 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.STATE_EXP___VALIDATE_TYPE_IS_NOT_INVALID__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @NonNull InvalidType TYP_OclInvalid_0 = (@NonNull InvalidType)idResolver.getClass(TypeId.OCL_INVALID, null);
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
-				final /*@NonInvalid*/ @NonNull InvalidType symbol_0 = TYP_OclInvalid_0;
-				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != symbol_0.getTypeId()) : true;
+				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != TYP_OclInvalid_0.getTypeId()) : true;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/TupleLiteralPartImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/TupleLiteralPartImpl.java
index ec99577..f21bd24 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/TupleLiteralPartImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/TupleLiteralPartImpl.java
@@ -189,9 +189,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.TUPLE_LITERAL_PART___VALIDATE_COMPATIBLE_INITIALISER_TYPE__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				/*@Caught*/ @Nullable Object CAUGHT_result;
@@ -278,9 +278,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);
 				}
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -314,19 +314,18 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.TUPLE_LITERAL_PART___VALIDATE_TYPE_IS_NOT_INVALID__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @NonNull InvalidType TYP_OclInvalid_0 = (@NonNull InvalidType)idResolver.getClass(TypeId.OCL_INVALID, null);
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
-				final /*@NonInvalid*/ @NonNull InvalidType symbol_0 = TYP_OclInvalid_0;
-				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != symbol_0.getTypeId()) : true;
+				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != TYP_OclInvalid_0.getTypeId()) : true;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/VariableDeclarationImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/VariableDeclarationImpl.java
index 314e8e6..05f6182 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/VariableDeclarationImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/VariableDeclarationImpl.java
@@ -155,17 +155,17 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.VARIABLE_DECLARATION___VALIDATE_NAME_IS_NOT_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @Nullable String name = this.getName();
 				final /*@NonInvalid*/ boolean result = name != null;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -199,19 +199,18 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.VARIABLE_DECLARATION___VALIDATE_TYPE_IS_NOT_INVALID__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @NonNull InvalidType TYP_OclInvalid_0 = (@NonNull InvalidType)idResolver.getClass(TypeId.OCL_INVALID, null);
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
-				final /*@NonInvalid*/ @NonNull InvalidType symbol_0 = TYP_OclInvalid_0;
-				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != symbol_0.getTypeId()) : true;
+				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != TYP_OclInvalid_0.getTypeId()) : true;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
@@ -245,17 +244,17 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.VARIABLE_DECLARATION___VALIDATE_TYPE_IS_NOT_NULL__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_0;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_0 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
 				final /*@NonInvalid*/ boolean result = type != null;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_0 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_0;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/VariableExpImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/VariableExpImpl.java
index 5ce4e13..38f1674 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/VariableExpImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/VariableExpImpl.java
@@ -205,19 +205,18 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();
 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, PivotPackage.Literals.VARIABLE_EXP___VALIDATE_TYPE_IS_NOT_INVALID__DIAGNOSTICCHAIN_MAP);
 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, PivotTables.INT_0).booleanValue();
-			/*@NonInvalid*/ boolean symbol_1;
+			/*@NonInvalid*/ boolean IF_le;
 			if (le) {
-				symbol_1 = true;
+				IF_le = true;
 			}
 			else {
 				final /*@NonInvalid*/ @NonNull InvalidType TYP_OclInvalid_0 = (@NonNull InvalidType)idResolver.getClass(TypeId.OCL_INVALID, null);
 				final /*@NonInvalid*/ @Nullable Type type = this.getType();
-				final /*@NonInvalid*/ @NonNull InvalidType symbol_0 = TYP_OclInvalid_0;
-				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != symbol_0.getTypeId()) : true;
+				final /*@NonInvalid*/ boolean result = (type != null) ? (type.getTypeId() != TYP_OclInvalid_0.getTypeId()) : true;
 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, PivotTables.INT_0).booleanValue();
-				symbol_1 = logDiagnostic;
+				IF_le = logDiagnostic;
 			}
-			return symbol_1;
+			return IF_le;
 		}
 		catch (Throwable e) {
 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLmetamodel.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLmetamodel.java
index 75cc0a0..207bdee 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLmetamodel.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLmetamodel.java
@@ -239,13 +239,13 @@
 	{
 		private final @NonNull Model root;
 		private final @NonNull Package pivot;
-		private final @NonNull Package orphanage;
+		private final @NonNull Package orphanPackage;
 
 		protected Contents(@NonNull Package standardLibrary, @NonNull String name, @Nullable String nsPrefix, @NonNull String nsURI) {
 			super(standardLibrary);
 			root = createModel("http://www.eclipse.org/ocl/2015/Pivot");
 			pivot = createPackage("pivot", "pivot", "http://www.eclipse.org/ocl/2015/Pivot", IdManager.METAMODEL, PivotPackage.eINSTANCE);
-			orphanage = createPackage("$$", "orphanage", "http://www.eclipse.org/ocl/2015/Orphanage", null, null);
+			orphanPackage = createPackage("$$", "orphanage", "http://www.eclipse.org/ocl/2015/Orphanage", null, null);
 			installPackages();
 			installClassTypes();
 			installEnumerations();
@@ -286,7 +286,7 @@
 
 		private void installPackages() {
 			root.getOwnedPackages().add(pivot);
-			root.getOwnedPackages().add(orphanage);
+			root.getOwnedPackages().add(orphanPackage);
 			root.getOwnedImports().add(createImport(null, _ocl));
 		}
 
@@ -450,230 +450,230 @@
 		private final @NonNull EnumerationLiteral el__TransitionKind_local = createEnumerationLiteral(PivotPackage.Literals.TRANSITION_KIND.getEEnumLiteral("local"));
 		private final @NonNull EnumerationLiteral el__TransitionKind_external = createEnumerationLiteral(PivotPackage.Literals.TRANSITION_KIND.getEEnumLiteral("external"));
 
-		private final @NonNull BagType _Bag_Annotation = createBagType(_Bag);
-		private final @NonNull BagType _Bag_AssociationClassCallExp = createBagType(_Bag);
-		private final @NonNull BagType _Bag_CallOperationAction = createBagType(_Bag);
-		private final @NonNull BagType _Bag_Class = createBagType(_Bag);
-		private final @NonNull BagType _Bag_CollectionType = createBagType(_Bag);
-		private final @NonNull BagType _Bag_CompleteClass = createBagType(_Bag);
-		private final @NonNull BagType _Bag_CompleteModel = createBagType(_Bag);
-		private final @NonNull BagType _Bag_CompletePackage = createBagType(_Bag);
-		private final @NonNull BagType _Bag_ConnectionPointReference = createBagType(_Bag);
-		private final @NonNull BagType _Bag_Constraint = createBagType(_Bag);
-		private final @NonNull BagType _Bag_DataType = createBagType(_Bag);
-		private final @NonNull BagType _Bag_DynamicElement = createBagType(_Bag);
-		private final @NonNull BagType _Bag_DynamicProperty = createBagType(_Bag);
-		private final @NonNull BagType _Bag_ElementExtension = createBagType(_Bag);
-		private final @NonNull BagType _Bag_EnumLiteralExp = createBagType(_Bag);
-		private final @NonNull BagType _Bag_Import = createBagType(_Bag);
-		private final @NonNull BagType _Bag_InstanceSpecification = createBagType(_Bag);
-		private final @NonNull BagType _Bag_LambdaType = createBagType(_Bag);
-		private final @NonNull BagType _Bag_LoopExp = createBagType(_Bag);
-		private final @NonNull BagType _Bag_MapType = createBagType(_Bag);
-		private final @NonNull BagType _Bag_MessageType = createBagType(_Bag);
-		private final @NonNull BagType _Bag_NavigationCallExp = createBagType(_Bag);
-		private final @NonNull BagType _Bag_OCLExpression = createBagType(_Bag);
-		private final @NonNull BagType _Bag_Operation = createBagType(_Bag);
-		private final @NonNull BagType _Bag_OperationCallExp = createBagType(_Bag);
-		private final @NonNull BagType _Bag_OppositePropertyCallExp = createBagType(_Bag);
-		private final @NonNull BagType _Bag_Package = createBagType(_Bag);
-		private final @NonNull BagType _Bag_PrimitiveType = createBagType(_Bag);
-		private final @NonNull BagType _Bag_Property = createBagType(_Bag);
-		private final @NonNull BagType _Bag_PropertyCallExp = createBagType(_Bag);
-		private final @NonNull BagType _Bag_Region = createBagType(_Bag);
-		private final @NonNull BagType _Bag_SendSignalAction = createBagType(_Bag);
-		private final @NonNull BagType _Bag_ShadowPart = createBagType(_Bag);
-		private final @NonNull BagType _Bag_Slot = createBagType(_Bag);
-		private final @NonNull BagType _Bag_State = createBagType(_Bag);
-		private final @NonNull BagType _Bag_StateExp = createBagType(_Bag);
-		private final @NonNull BagType _Bag_StateMachine = createBagType(_Bag);
-		private final @NonNull BagType _Bag_TemplateBinding = createBagType(_Bag);
-		private final @NonNull BagType _Bag_TemplateParameter = createBagType(_Bag);
-		private final @NonNull BagType _Bag_TemplateParameterSubstitution = createBagType(_Bag);
-		private final @NonNull BagType _Bag_TemplateableElement = createBagType(_Bag);
-		private final @NonNull BagType _Bag_TypeExp = createBagType(_Bag);
-		private final @NonNull BagType _Bag_TypedElement = createBagType(_Bag);
-		private final @NonNull BagType _Bag_Variable = createBagType(_Bag);
-		private final @NonNull BagType _Bag_VariableDeclaration = createBagType(_Bag);
-		private final @NonNull BagType _Bag_VariableExp = createBagType(_Bag);
-		private final @NonNull BagType _Bag_WildcardType = createBagType(_Bag);
-		private final @NonNull CollectionType _Collection_Annotation = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_AssociationClassCallExp = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Behavior = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_CallOperationAction = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Class = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_CollectionLiteralPart = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_CollectionType = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Comment = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_CompleteClass = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_CompleteModel = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_CompletePackage = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_ConnectionPointReference = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Constraint = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_DataType = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Detail = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_DynamicElement = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_DynamicProperty = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Element = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_ElementExtension = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_EnumLiteralExp = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_EnumerationLiteral = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Import = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_InstanceSpecification = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_IteratorVariable = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_LambdaType = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_LoopExp = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_MapLiteralPart = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_MapType = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_MessageType = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Model = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_NavigationCallExp = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_OCLExpression = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Operation = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_OperationCallExp = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_OppositePropertyCallExp = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Package = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Parameter = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Precedence = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_PrimitiveType = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_ProfileApplication = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Property = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_PropertyCallExp = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Pseudostate = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Region = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_SendSignalAction = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_ShadowPart = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Slot = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_State = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_StateExp = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_StateMachine = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_StereotypeExtender = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_String = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_TemplateBinding = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_TemplateParameter = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_TemplateParameterSubstitution = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_TemplateableElement = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Transition = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Trigger = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_TupleLiteralPart = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Type = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_TypeExp = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_TypedElement = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_ValueSpecification = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Variable = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_VariableDeclaration = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_VariableExp = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_Vertex = createCollectionType(_Collection);
-		private final @NonNull CollectionType _Collection_WildcardType = createCollectionType(_Collection);
-		private final @NonNull CollectionType _OrderedCollection_CollectionLiteralPart = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_Detail = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_Element = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_EnumerationLiteral = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_Import = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_IteratorVariable = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_MapLiteralPart = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_OCLExpression = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_Operation = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_Parameter = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_Precedence = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_Property = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_ShadowPart = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_TemplateParameter = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_TupleLiteralPart = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_Type = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_ValueSpecification = createCollectionType(_OrderedCollection);
-		private final @NonNull CollectionType _OrderedCollection_Variable = createCollectionType(_OrderedCollection);
-		private final @NonNull OrderedSetType _OrderedSet_CollectionLiteralPart_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_Detail_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_Element_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_EnumerationLiteral_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_Import_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_IteratorVariable = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_MapLiteralPart_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_OCLExpression_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_Operation_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_Parameter_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_Precedence_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_Property_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_ShadowPart_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_TemplateParameter_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_TupleLiteralPart_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_ValueSpecification_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull OrderedSetType _OrderedSet_Variable_NullFree = createOrderedSetType(_OrderedSet);
-		private final @NonNull SequenceType _Sequence_Type_NullFree = createSequenceType(_Sequence);
-		private final @NonNull SetType _Set_Behavior_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Class_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Comment_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_CompleteClass_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_CompletePackage_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_ConnectionPointReference_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Constraint_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_DynamicProperty_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Element_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_ElementExtension_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_InstanceSpecification_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Model_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Operation_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Package_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_ProfileApplication_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Property_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Pseudostate_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Region_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Region_NullFree_1 = createSetType(_Set);
-		private final @NonNull SetType _Set_Slot_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_State_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_StateMachine_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_StereotypeExtender_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_String_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_TemplateBinding_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_TemplateParameterSubstitution_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Transition_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Trigger_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Type_NullFree = createSetType(_Set);
-		private final @NonNull SetType _Set_Vertex_NullFree = createSetType(_Set);
-		private final @NonNull CollectionType _UniqueCollection_Behavior = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Class = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_CollectionLiteralPart = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Comment = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_CompleteClass = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_CompletePackage = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_ConnectionPointReference = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Constraint = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Detail = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_DynamicProperty = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Element = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_ElementExtension = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_EnumerationLiteral = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Import = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_InstanceSpecification = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_IteratorVariable = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_MapLiteralPart = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Model = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_OCLExpression = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Operation = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Package = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Parameter = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Precedence = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_ProfileApplication = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Property = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Pseudostate = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Region = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_ShadowPart = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Slot = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_State = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_StateMachine = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_StereotypeExtender = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_String = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_TemplateBinding = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_TemplateParameter = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_TemplateParameterSubstitution = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Transition = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Trigger = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_TupleLiteralPart = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Type = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_ValueSpecification = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Variable = createCollectionType(_UniqueCollection);
-		private final @NonNull CollectionType _UniqueCollection_Vertex = createCollectionType(_UniqueCollection);
+		private final @NonNull BagType _Bag_Annotation_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_AssociationClassCallExp_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_CallOperationAction_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_Class_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_CollectionType_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_CompleteClass_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_CompleteModel_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_CompletePackage_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_ConnectionPointReference_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_Constraint_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_DataType_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_DynamicElement_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_DynamicProperty_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_ElementExtension_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_EnumLiteralExp_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_Import_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_InstanceSpecification_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_LambdaType_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_LoopExp_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_MapType_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_MessageType_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_NavigationCallExp_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_OCLExpression_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_Operation_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_OperationCallExp_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_OppositePropertyCallExp_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_Package_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_PrimitiveType_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_Property_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_PropertyCallExp_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_Region_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_SendSignalAction_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_ShadowPart_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_Slot_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_State_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_StateExp_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_StateMachine_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_TemplateBinding_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_TemplateParameter_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_TemplateParameterSubstitution_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_TemplateableElement_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_TypeExp_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_TypedElement_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_Variable_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_VariableDeclaration_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_VariableExp_F = createBagType(_Bag);
+		private final @NonNull BagType _Bag_WildcardType_F = createBagType(_Bag);
+		private final @NonNull CollectionType _Collection_Annotation_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_AssociationClassCallExp_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Behavior_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_CallOperationAction_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Class_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_CollectionLiteralPart_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_CollectionType_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Comment_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_CompleteClass_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_CompleteModel_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_CompletePackage_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_ConnectionPointReference_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Constraint_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_DataType_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Detail_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_DynamicElement_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_DynamicProperty_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Element_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_ElementExtension_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_EnumLiteralExp_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_EnumerationLiteral_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Import_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_InstanceSpecification_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_IteratorVariable_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_LambdaType_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_LoopExp_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_MapLiteralPart_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_MapType_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_MessageType_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Model_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_NavigationCallExp_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_OCLExpression_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Operation_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_OperationCallExp_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_OppositePropertyCallExp_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Package_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Parameter_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Precedence_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_PrimitiveType_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_ProfileApplication_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Property_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_PropertyCallExp_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Pseudostate_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Region_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_SendSignalAction_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_ShadowPart_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Slot_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_State_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_StateExp_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_StateMachine_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_StereotypeExtender_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_String_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_TemplateBinding_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_TemplateParameter_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_TemplateParameterSubstitution_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_TemplateableElement_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Transition_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Trigger_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_TupleLiteralPart_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Type_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_TypeExp_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_TypedElement_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_ValueSpecification_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Variable_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_VariableDeclaration_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_VariableExp_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_Vertex_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _Collection_WildcardType_F = createCollectionType(_Collection);
+		private final @NonNull CollectionType _OrderedCollection_CollectionLiteralPart_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_Detail_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_Element_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_EnumerationLiteral_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_Import_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_IteratorVariable_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_MapLiteralPart_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_OCLExpression_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_Operation_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_Parameter_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_Precedence_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_Property_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_ShadowPart_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_TemplateParameter_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_TupleLiteralPart_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_Type_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_ValueSpecification_F = createCollectionType(_OrderedCollection);
+		private final @NonNull CollectionType _OrderedCollection_Variable_F = createCollectionType(_OrderedCollection);
+		private final @NonNull OrderedSetType _OrderedSet_CollectionLiteralPart_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_Detail_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_Element_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_EnumerationLiteral_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_Import_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_IteratorVariable_F = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_MapLiteralPart_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_OCLExpression_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_Operation_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_Parameter_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_Precedence_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_Property_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_ShadowPart_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_TemplateParameter_T_L1 = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_TupleLiteralPart_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_ValueSpecification_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull OrderedSetType _OrderedSet_Variable_T = createOrderedSetType(_OrderedSet);
+		private final @NonNull SequenceType _Sequence_Type_T = createSequenceType(_Sequence);
+		private final @NonNull SetType _Set_Behavior_T = createSetType(_Set);
+		private final @NonNull SetType _Set_Class_T = createSetType(_Set);
+		private final @NonNull SetType _Set_Comment_T = createSetType(_Set);
+		private final @NonNull SetType _Set_CompleteClass_T = createSetType(_Set);
+		private final @NonNull SetType _Set_CompletePackage_T = createSetType(_Set);
+		private final @NonNull SetType _Set_ConnectionPointReference_T = createSetType(_Set);
+		private final @NonNull SetType _Set_Constraint_T = createSetType(_Set);
+		private final @NonNull SetType _Set_DynamicProperty_T = createSetType(_Set);
+		private final @NonNull SetType _Set_Element_T = createSetType(_Set);
+		private final @NonNull SetType _Set_ElementExtension_T = createSetType(_Set);
+		private final @NonNull SetType _Set_InstanceSpecification_T = createSetType(_Set);
+		private final @NonNull SetType _Set_Model_T = createSetType(_Set);
+		private final @NonNull SetType _Set_Operation_T = createSetType(_Set);
+		private final @NonNull SetType _Set_Package_T = createSetType(_Set);
+		private final @NonNull SetType _Set_ProfileApplication_T = createSetType(_Set);
+		private final @NonNull SetType _Set_Property_T = createSetType(_Set);
+		private final @NonNull SetType _Set_Pseudostate_T = createSetType(_Set);
+		private final @NonNull SetType _Set_Region_T = createSetType(_Set);
+		private final @NonNull SetType _Set_Region_T_L1 = createSetType(_Set);
+		private final @NonNull SetType _Set_Slot_T = createSetType(_Set);
+		private final @NonNull SetType _Set_State_T = createSetType(_Set);
+		private final @NonNull SetType _Set_StateMachine_T = createSetType(_Set);
+		private final @NonNull SetType _Set_StereotypeExtender_T = createSetType(_Set);
+		private final @NonNull SetType _Set_String_T_L1 = createSetType(_Set);
+		private final @NonNull SetType _Set_TemplateBinding_T = createSetType(_Set);
+		private final @NonNull SetType _Set_TemplateParameterSubstitution_T_L1 = createSetType(_Set);
+		private final @NonNull SetType _Set_Transition_T = createSetType(_Set);
+		private final @NonNull SetType _Set_Trigger_T = createSetType(_Set);
+		private final @NonNull SetType _Set_Type_T = createSetType(_Set);
+		private final @NonNull SetType _Set_Vertex_T = createSetType(_Set);
+		private final @NonNull CollectionType _UniqueCollection_Behavior_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Class_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_CollectionLiteralPart_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Comment_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_CompleteClass_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_CompletePackage_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_ConnectionPointReference_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Constraint_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Detail_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_DynamicProperty_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Element_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_ElementExtension_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_EnumerationLiteral_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Import_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_InstanceSpecification_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_IteratorVariable_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_MapLiteralPart_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Model_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_OCLExpression_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Operation_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Package_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Parameter_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Precedence_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_ProfileApplication_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Property_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Pseudostate_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Region_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_ShadowPart_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Slot_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_State_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_StateMachine_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_StereotypeExtender_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_String_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_TemplateBinding_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_TemplateParameter_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_TemplateParameterSubstitution_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Transition_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Trigger_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_TupleLiteralPart_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Type_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_ValueSpecification_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Variable_F = createCollectionType(_UniqueCollection);
+		private final @NonNull CollectionType _UniqueCollection_Vertex_F = createCollectionType(_UniqueCollection);
 
 		private void installClassTypes() {
 			List<Class> ownedClasses;
@@ -917,7 +917,7 @@
 			ownedClasses.add(type);
 			type = _LibraryFeature;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
 			type = _LiteralExp;
 			type.setIsAbstract(true);
@@ -994,7 +994,7 @@
 			ownedClasses.add(type);
 			type = _Object;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
 			type = _Operation;
 			superClasses = type.getSuperClasses();
@@ -1175,7 +1175,7 @@
 			ownedClasses.add(type);
 			type = _Throwable;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
 			type = _Transition;
 			superClasses = type.getSuperClasses();
@@ -1308,976 +1308,976 @@
 			List<Class> superClasses;
 			CollectionType type;
 
-			ownedClasses = orphanage.getOwnedClasses();
-			type = _Bag_Annotation;
+			ownedClasses = orphanPackage.getOwnedClasses();
+			type = _Bag_Annotation_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Annotation);
+			superClasses.add(_Collection_Annotation_F);
 			ownedClasses.add(type);
-			type = _Bag_AssociationClassCallExp;
+			type = _Bag_AssociationClassCallExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_AssociationClassCallExp);
+			superClasses.add(_Collection_AssociationClassCallExp_F);
 			ownedClasses.add(type);
-			type = _Bag_CallOperationAction;
+			type = _Bag_CallOperationAction_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_CallOperationAction);
+			superClasses.add(_Collection_CallOperationAction_F);
 			ownedClasses.add(type);
-			type = _Bag_Class;
+			type = _Bag_Class_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Class);
+			superClasses.add(_Collection_Class_F);
 			ownedClasses.add(type);
-			type = _Bag_CollectionType;
+			type = _Bag_CollectionType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_CollectionType);
+			superClasses.add(_Collection_CollectionType_F);
 			ownedClasses.add(type);
-			type = _Bag_CompleteClass;
+			type = _Bag_CompleteClass_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_CompleteClass);
+			superClasses.add(_Collection_CompleteClass_F);
 			ownedClasses.add(type);
-			type = _Bag_CompleteModel;
+			type = _Bag_CompleteModel_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_CompleteModel);
+			superClasses.add(_Collection_CompleteModel_F);
 			ownedClasses.add(type);
-			type = _Bag_CompletePackage;
+			type = _Bag_CompletePackage_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_CompletePackage);
+			superClasses.add(_Collection_CompletePackage_F);
 			ownedClasses.add(type);
-			type = _Bag_ConnectionPointReference;
+			type = _Bag_ConnectionPointReference_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_ConnectionPointReference);
+			superClasses.add(_Collection_ConnectionPointReference_F);
 			ownedClasses.add(type);
-			type = _Bag_Constraint;
+			type = _Bag_Constraint_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Constraint);
+			superClasses.add(_Collection_Constraint_F);
 			ownedClasses.add(type);
-			type = _Bag_DataType;
+			type = _Bag_DataType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_DataType);
+			superClasses.add(_Collection_DataType_F);
 			ownedClasses.add(type);
-			type = _Bag_DynamicElement;
+			type = _Bag_DynamicElement_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_DynamicElement);
+			superClasses.add(_Collection_DynamicElement_F);
 			ownedClasses.add(type);
-			type = _Bag_DynamicProperty;
+			type = _Bag_DynamicProperty_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_DynamicProperty);
+			superClasses.add(_Collection_DynamicProperty_F);
 			ownedClasses.add(type);
-			type = _Bag_ElementExtension;
+			type = _Bag_ElementExtension_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_ElementExtension);
+			superClasses.add(_Collection_ElementExtension_F);
 			ownedClasses.add(type);
-			type = _Bag_EnumLiteralExp;
+			type = _Bag_EnumLiteralExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_EnumLiteralExp);
+			superClasses.add(_Collection_EnumLiteralExp_F);
 			ownedClasses.add(type);
-			type = _Bag_Import;
+			type = _Bag_Import_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Import);
+			superClasses.add(_Collection_Import_F);
 			ownedClasses.add(type);
-			type = _Bag_InstanceSpecification;
+			type = _Bag_InstanceSpecification_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_InstanceSpecification);
+			superClasses.add(_Collection_InstanceSpecification_F);
 			ownedClasses.add(type);
-			type = _Bag_LambdaType;
+			type = _Bag_LambdaType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_LambdaType);
+			superClasses.add(_Collection_LambdaType_F);
 			ownedClasses.add(type);
-			type = _Bag_LoopExp;
+			type = _Bag_LoopExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_LoopExp);
+			superClasses.add(_Collection_LoopExp_F);
 			ownedClasses.add(type);
-			type = _Bag_MapType;
+			type = _Bag_MapType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_MapType);
+			superClasses.add(_Collection_MapType_F);
 			ownedClasses.add(type);
-			type = _Bag_MessageType;
+			type = _Bag_MessageType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_MessageType);
+			superClasses.add(_Collection_MessageType_F);
 			ownedClasses.add(type);
-			type = _Bag_NavigationCallExp;
+			type = _Bag_NavigationCallExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_NavigationCallExp);
+			superClasses.add(_Collection_NavigationCallExp_F);
 			ownedClasses.add(type);
-			type = _Bag_OCLExpression;
+			type = _Bag_OCLExpression_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OCLExpression);
+			superClasses.add(_Collection_OCLExpression_F);
 			ownedClasses.add(type);
-			type = _Bag_Operation;
+			type = _Bag_Operation_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Operation);
+			superClasses.add(_Collection_Operation_F);
 			ownedClasses.add(type);
-			type = _Bag_OperationCallExp;
+			type = _Bag_OperationCallExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OperationCallExp);
+			superClasses.add(_Collection_OperationCallExp_F);
 			ownedClasses.add(type);
-			type = _Bag_OppositePropertyCallExp;
+			type = _Bag_OppositePropertyCallExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OppositePropertyCallExp);
+			superClasses.add(_Collection_OppositePropertyCallExp_F);
 			ownedClasses.add(type);
-			type = _Bag_Package;
+			type = _Bag_Package_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Package);
+			superClasses.add(_Collection_Package_F);
 			ownedClasses.add(type);
-			type = _Bag_PrimitiveType;
+			type = _Bag_PrimitiveType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_PrimitiveType);
+			superClasses.add(_Collection_PrimitiveType_F);
 			ownedClasses.add(type);
-			type = _Bag_Property;
+			type = _Bag_Property_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Property);
+			superClasses.add(_Collection_Property_F);
 			ownedClasses.add(type);
-			type = _Bag_PropertyCallExp;
+			type = _Bag_PropertyCallExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_PropertyCallExp);
+			superClasses.add(_Collection_PropertyCallExp_F);
 			ownedClasses.add(type);
-			type = _Bag_Region;
+			type = _Bag_Region_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Region);
+			superClasses.add(_Collection_Region_F);
 			ownedClasses.add(type);
-			type = _Bag_SendSignalAction;
+			type = _Bag_SendSignalAction_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_SendSignalAction);
+			superClasses.add(_Collection_SendSignalAction_F);
 			ownedClasses.add(type);
-			type = _Bag_ShadowPart;
+			type = _Bag_ShadowPart_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_ShadowPart);
+			superClasses.add(_Collection_ShadowPart_F);
 			ownedClasses.add(type);
-			type = _Bag_Slot;
+			type = _Bag_Slot_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Slot);
+			superClasses.add(_Collection_Slot_F);
 			ownedClasses.add(type);
-			type = _Bag_State;
+			type = _Bag_State_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_State);
+			superClasses.add(_Collection_State_F);
 			ownedClasses.add(type);
-			type = _Bag_StateExp;
+			type = _Bag_StateExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_StateExp);
+			superClasses.add(_Collection_StateExp_F);
 			ownedClasses.add(type);
-			type = _Bag_StateMachine;
+			type = _Bag_StateMachine_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_StateMachine);
+			superClasses.add(_Collection_StateMachine_F);
 			ownedClasses.add(type);
-			type = _Bag_TemplateBinding;
+			type = _Bag_TemplateBinding_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_TemplateBinding);
+			superClasses.add(_Collection_TemplateBinding_F);
 			ownedClasses.add(type);
-			type = _Bag_TemplateParameter;
+			type = _Bag_TemplateParameter_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_TemplateParameter);
+			superClasses.add(_Collection_TemplateParameter_F);
 			ownedClasses.add(type);
-			type = _Bag_TemplateParameterSubstitution;
+			type = _Bag_TemplateParameterSubstitution_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_TemplateParameterSubstitution);
+			superClasses.add(_Collection_TemplateParameterSubstitution_F);
 			ownedClasses.add(type);
-			type = _Bag_TemplateableElement;
+			type = _Bag_TemplateableElement_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_TemplateableElement);
+			superClasses.add(_Collection_TemplateableElement_F);
 			ownedClasses.add(type);
-			type = _Bag_TypeExp;
+			type = _Bag_TypeExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_TypeExp);
+			superClasses.add(_Collection_TypeExp_F);
 			ownedClasses.add(type);
-			type = _Bag_TypedElement;
+			type = _Bag_TypedElement_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_TypedElement);
+			superClasses.add(_Collection_TypedElement_F);
 			ownedClasses.add(type);
-			type = _Bag_Variable;
+			type = _Bag_Variable_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Variable);
+			superClasses.add(_Collection_Variable_F);
 			ownedClasses.add(type);
-			type = _Bag_VariableDeclaration;
+			type = _Bag_VariableDeclaration_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_VariableDeclaration);
+			superClasses.add(_Collection_VariableDeclaration_F);
 			ownedClasses.add(type);
-			type = _Bag_VariableExp;
+			type = _Bag_VariableExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_VariableExp);
+			superClasses.add(_Collection_VariableExp_F);
 			ownedClasses.add(type);
-			type = _Bag_WildcardType;
+			type = _Bag_WildcardType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_WildcardType);
+			superClasses.add(_Collection_WildcardType_F);
 			ownedClasses.add(type);
-			type = _Collection_Annotation;
+			type = _Collection_Annotation_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_AssociationClassCallExp;
+			type = _Collection_AssociationClassCallExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Behavior;
+			type = _Collection_Behavior_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_CallOperationAction;
+			type = _Collection_CallOperationAction_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Class;
+			type = _Collection_Class_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_CollectionLiteralPart;
+			type = _Collection_CollectionLiteralPart_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_CollectionType;
+			type = _Collection_CollectionType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Comment;
+			type = _Collection_Comment_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_CompleteClass;
+			type = _Collection_CompleteClass_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_CompleteModel;
+			type = _Collection_CompleteModel_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_CompletePackage;
+			type = _Collection_CompletePackage_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_ConnectionPointReference;
+			type = _Collection_ConnectionPointReference_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Constraint;
+			type = _Collection_Constraint_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_DataType;
+			type = _Collection_DataType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Detail;
+			type = _Collection_Detail_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_DynamicElement;
+			type = _Collection_DynamicElement_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_DynamicProperty;
+			type = _Collection_DynamicProperty_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Element;
+			type = _Collection_Element_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_ElementExtension;
+			type = _Collection_ElementExtension_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_EnumLiteralExp;
+			type = _Collection_EnumLiteralExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_EnumerationLiteral;
+			type = _Collection_EnumerationLiteral_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Import;
+			type = _Collection_Import_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_InstanceSpecification;
+			type = _Collection_InstanceSpecification_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_IteratorVariable;
+			type = _Collection_IteratorVariable_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_LambdaType;
+			type = _Collection_LambdaType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_LoopExp;
+			type = _Collection_LoopExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_MapLiteralPart;
+			type = _Collection_MapLiteralPart_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_MapType;
+			type = _Collection_MapType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_MessageType;
+			type = _Collection_MessageType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Model;
+			type = _Collection_Model_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_NavigationCallExp;
+			type = _Collection_NavigationCallExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_OCLExpression;
+			type = _Collection_OCLExpression_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Operation;
+			type = _Collection_Operation_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_OperationCallExp;
+			type = _Collection_OperationCallExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_OppositePropertyCallExp;
+			type = _Collection_OppositePropertyCallExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Package;
+			type = _Collection_Package_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Parameter;
+			type = _Collection_Parameter_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Precedence;
+			type = _Collection_Precedence_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_PrimitiveType;
+			type = _Collection_PrimitiveType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_ProfileApplication;
+			type = _Collection_ProfileApplication_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Property;
+			type = _Collection_Property_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_PropertyCallExp;
+			type = _Collection_PropertyCallExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Pseudostate;
+			type = _Collection_Pseudostate_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Region;
+			type = _Collection_Region_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_SendSignalAction;
+			type = _Collection_SendSignalAction_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_ShadowPart;
+			type = _Collection_ShadowPart_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Slot;
+			type = _Collection_Slot_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_State;
+			type = _Collection_State_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_StateExp;
+			type = _Collection_StateExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_StateMachine;
+			type = _Collection_StateMachine_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_StereotypeExtender;
+			type = _Collection_StereotypeExtender_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_String;
+			type = _Collection_String_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_TemplateBinding;
+			type = _Collection_TemplateBinding_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_TemplateParameter;
+			type = _Collection_TemplateParameter_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_TemplateParameterSubstitution;
+			type = _Collection_TemplateParameterSubstitution_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_TemplateableElement;
+			type = _Collection_TemplateableElement_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Transition;
+			type = _Collection_Transition_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Trigger;
+			type = _Collection_Trigger_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_TupleLiteralPart;
+			type = _Collection_TupleLiteralPart_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Type;
+			type = _Collection_Type_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_TypeExp;
+			type = _Collection_TypeExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_TypedElement;
+			type = _Collection_TypedElement_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_ValueSpecification;
+			type = _Collection_ValueSpecification_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Variable;
+			type = _Collection_Variable_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_VariableDeclaration;
+			type = _Collection_VariableDeclaration_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_VariableExp;
+			type = _Collection_VariableExp_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Vertex;
+			type = _Collection_Vertex_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_WildcardType;
+			type = _Collection_WildcardType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclElement);
+			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _OrderedCollection_CollectionLiteralPart;
+			type = _OrderedCollection_CollectionLiteralPart_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_CollectionLiteralPart);
+			superClasses.add(_Collection_CollectionLiteralPart_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Detail;
+			type = _OrderedCollection_Detail_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Detail);
+			superClasses.add(_Collection_Detail_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Element;
+			type = _OrderedCollection_Element_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Element);
+			superClasses.add(_Collection_Element_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_EnumerationLiteral;
+			type = _OrderedCollection_EnumerationLiteral_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_EnumerationLiteral);
+			superClasses.add(_Collection_EnumerationLiteral_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Import;
+			type = _OrderedCollection_Import_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Import);
+			superClasses.add(_Collection_Import_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_IteratorVariable;
+			type = _OrderedCollection_IteratorVariable_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_IteratorVariable);
+			superClasses.add(_Collection_IteratorVariable_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_MapLiteralPart;
+			type = _OrderedCollection_MapLiteralPart_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_MapLiteralPart);
+			superClasses.add(_Collection_MapLiteralPart_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_OCLExpression;
+			type = _OrderedCollection_OCLExpression_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OCLExpression);
+			superClasses.add(_Collection_OCLExpression_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Operation;
+			type = _OrderedCollection_Operation_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Operation);
+			superClasses.add(_Collection_Operation_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Parameter;
+			type = _OrderedCollection_Parameter_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Parameter);
+			superClasses.add(_Collection_Parameter_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Precedence;
+			type = _OrderedCollection_Precedence_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Precedence);
+			superClasses.add(_Collection_Precedence_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Property;
+			type = _OrderedCollection_Property_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Property);
+			superClasses.add(_Collection_Property_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_ShadowPart;
+			type = _OrderedCollection_ShadowPart_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_ShadowPart);
+			superClasses.add(_Collection_ShadowPart_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_TemplateParameter;
+			type = _OrderedCollection_TemplateParameter_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_TemplateParameter);
+			superClasses.add(_Collection_TemplateParameter_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_TupleLiteralPart;
+			type = _OrderedCollection_TupleLiteralPart_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_TupleLiteralPart);
+			superClasses.add(_Collection_TupleLiteralPart_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Type;
+			type = _OrderedCollection_Type_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Type);
+			superClasses.add(_Collection_Type_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_ValueSpecification;
+			type = _OrderedCollection_ValueSpecification_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_ValueSpecification);
+			superClasses.add(_Collection_ValueSpecification_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Variable;
+			type = _OrderedCollection_Variable_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Variable);
+			superClasses.add(_Collection_Variable_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_CollectionLiteralPart_NullFree;
+			type = _OrderedSet_CollectionLiteralPart_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_CollectionLiteralPart);
-			superClasses.add(_UniqueCollection_CollectionLiteralPart);
+			superClasses.add(_OrderedCollection_CollectionLiteralPart_F);
+			superClasses.add(_UniqueCollection_CollectionLiteralPart_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_Detail_NullFree;
+			type = _OrderedSet_Detail_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Detail);
-			superClasses.add(_UniqueCollection_Detail);
+			superClasses.add(_OrderedCollection_Detail_F);
+			superClasses.add(_UniqueCollection_Detail_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_Element_NullFree;
+			type = _OrderedSet_Element_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Element);
-			superClasses.add(_UniqueCollection_Element);
+			superClasses.add(_OrderedCollection_Element_F);
+			superClasses.add(_UniqueCollection_Element_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_EnumerationLiteral_NullFree;
+			type = _OrderedSet_EnumerationLiteral_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_EnumerationLiteral);
-			superClasses.add(_UniqueCollection_EnumerationLiteral);
+			superClasses.add(_OrderedCollection_EnumerationLiteral_F);
+			superClasses.add(_UniqueCollection_EnumerationLiteral_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_Import_NullFree;
+			type = _OrderedSet_Import_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Import);
-			superClasses.add(_UniqueCollection_Import);
+			superClasses.add(_OrderedCollection_Import_F);
+			superClasses.add(_UniqueCollection_Import_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_IteratorVariable;
+			type = _OrderedSet_IteratorVariable_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_IteratorVariable);
-			superClasses.add(_UniqueCollection_IteratorVariable);
+			superClasses.add(_OrderedCollection_IteratorVariable_F);
+			superClasses.add(_UniqueCollection_IteratorVariable_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_MapLiteralPart_NullFree;
+			type = _OrderedSet_MapLiteralPart_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_MapLiteralPart);
-			superClasses.add(_UniqueCollection_MapLiteralPart);
+			superClasses.add(_OrderedCollection_MapLiteralPart_F);
+			superClasses.add(_UniqueCollection_MapLiteralPart_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_OCLExpression_NullFree;
+			type = _OrderedSet_OCLExpression_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_OCLExpression);
-			superClasses.add(_UniqueCollection_OCLExpression);
+			superClasses.add(_OrderedCollection_OCLExpression_F);
+			superClasses.add(_UniqueCollection_OCLExpression_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_Operation_NullFree;
+			type = _OrderedSet_Operation_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Operation);
-			superClasses.add(_UniqueCollection_Operation);
+			superClasses.add(_OrderedCollection_Operation_F);
+			superClasses.add(_UniqueCollection_Operation_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_Parameter_NullFree;
+			type = _OrderedSet_Parameter_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Parameter);
-			superClasses.add(_UniqueCollection_Parameter);
+			superClasses.add(_OrderedCollection_Parameter_F);
+			superClasses.add(_UniqueCollection_Parameter_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_Precedence_NullFree;
+			type = _OrderedSet_Precedence_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Precedence);
-			superClasses.add(_UniqueCollection_Precedence);
+			superClasses.add(_OrderedCollection_Precedence_F);
+			superClasses.add(_UniqueCollection_Precedence_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_Property_NullFree;
+			type = _OrderedSet_Property_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Property);
-			superClasses.add(_UniqueCollection_Property);
+			superClasses.add(_OrderedCollection_Property_F);
+			superClasses.add(_UniqueCollection_Property_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_ShadowPart_NullFree;
+			type = _OrderedSet_ShadowPart_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_ShadowPart);
-			superClasses.add(_UniqueCollection_ShadowPart);
+			superClasses.add(_OrderedCollection_ShadowPart_F);
+			superClasses.add(_UniqueCollection_ShadowPart_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_TemplateParameter_NullFree;
+			type = _OrderedSet_TemplateParameter_T_L1;
 			type.setLower(1);
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_TemplateParameter);
-			superClasses.add(_UniqueCollection_TemplateParameter);
+			superClasses.add(_OrderedCollection_TemplateParameter_F);
+			superClasses.add(_UniqueCollection_TemplateParameter_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_TupleLiteralPart_NullFree;
+			type = _OrderedSet_TupleLiteralPart_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_TupleLiteralPart);
-			superClasses.add(_UniqueCollection_TupleLiteralPart);
+			superClasses.add(_OrderedCollection_TupleLiteralPart_F);
+			superClasses.add(_UniqueCollection_TupleLiteralPart_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_ValueSpecification_NullFree;
+			type = _OrderedSet_ValueSpecification_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_ValueSpecification);
-			superClasses.add(_UniqueCollection_ValueSpecification);
+			superClasses.add(_OrderedCollection_ValueSpecification_F);
+			superClasses.add(_UniqueCollection_ValueSpecification_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_Variable_NullFree;
+			type = _OrderedSet_Variable_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Variable);
-			superClasses.add(_UniqueCollection_Variable);
+			superClasses.add(_OrderedCollection_Variable_F);
+			superClasses.add(_UniqueCollection_Variable_F);
 			ownedClasses.add(type);
-			type = _Sequence_Type_NullFree;
+			type = _Sequence_Type_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Type);
+			superClasses.add(_OrderedCollection_Type_F);
 			ownedClasses.add(type);
-			type = _Set_Behavior_NullFree;
+			type = _Set_Behavior_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Behavior);
+			superClasses.add(_UniqueCollection_Behavior_F);
 			ownedClasses.add(type);
-			type = _Set_Class_NullFree;
+			type = _Set_Class_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Class);
+			superClasses.add(_UniqueCollection_Class_F);
 			ownedClasses.add(type);
-			type = _Set_Comment_NullFree;
+			type = _Set_Comment_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Comment);
+			superClasses.add(_UniqueCollection_Comment_F);
 			ownedClasses.add(type);
-			type = _Set_CompleteClass_NullFree;
+			type = _Set_CompleteClass_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_CompleteClass);
+			superClasses.add(_UniqueCollection_CompleteClass_F);
 			ownedClasses.add(type);
-			type = _Set_CompletePackage_NullFree;
+			type = _Set_CompletePackage_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_CompletePackage);
+			superClasses.add(_UniqueCollection_CompletePackage_F);
 			ownedClasses.add(type);
-			type = _Set_ConnectionPointReference_NullFree;
+			type = _Set_ConnectionPointReference_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_ConnectionPointReference);
+			superClasses.add(_UniqueCollection_ConnectionPointReference_F);
 			ownedClasses.add(type);
-			type = _Set_Constraint_NullFree;
+			type = _Set_Constraint_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Constraint);
+			superClasses.add(_UniqueCollection_Constraint_F);
 			ownedClasses.add(type);
-			type = _Set_DynamicProperty_NullFree;
+			type = _Set_DynamicProperty_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_DynamicProperty);
+			superClasses.add(_UniqueCollection_DynamicProperty_F);
 			ownedClasses.add(type);
-			type = _Set_Element_NullFree;
+			type = _Set_Element_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Element);
+			superClasses.add(_UniqueCollection_Element_F);
 			ownedClasses.add(type);
-			type = _Set_ElementExtension_NullFree;
+			type = _Set_ElementExtension_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_ElementExtension);
+			superClasses.add(_UniqueCollection_ElementExtension_F);
 			ownedClasses.add(type);
-			type = _Set_InstanceSpecification_NullFree;
+			type = _Set_InstanceSpecification_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_InstanceSpecification);
+			superClasses.add(_UniqueCollection_InstanceSpecification_F);
 			ownedClasses.add(type);
-			type = _Set_Model_NullFree;
+			type = _Set_Model_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Model);
+			superClasses.add(_UniqueCollection_Model_F);
 			ownedClasses.add(type);
-			type = _Set_Operation_NullFree;
+			type = _Set_Operation_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Operation);
+			superClasses.add(_UniqueCollection_Operation_F);
 			ownedClasses.add(type);
-			type = _Set_Package_NullFree;
+			type = _Set_Package_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Package);
+			superClasses.add(_UniqueCollection_Package_F);
 			ownedClasses.add(type);
-			type = _Set_ProfileApplication_NullFree;
+			type = _Set_ProfileApplication_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_ProfileApplication);
+			superClasses.add(_UniqueCollection_ProfileApplication_F);
 			ownedClasses.add(type);
-			type = _Set_Property_NullFree;
+			type = _Set_Property_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Property);
+			superClasses.add(_UniqueCollection_Property_F);
 			ownedClasses.add(type);
-			type = _Set_Pseudostate_NullFree;
+			type = _Set_Pseudostate_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Pseudostate);
+			superClasses.add(_UniqueCollection_Pseudostate_F);
 			ownedClasses.add(type);
-			type = _Set_Region_NullFree;
+			type = _Set_Region_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Region);
+			superClasses.add(_UniqueCollection_Region_F);
 			ownedClasses.add(type);
-			type = _Set_Region_NullFree_1;
+			type = _Set_Region_T_L1;
 			type.setLower(1);
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Region);
+			superClasses.add(_UniqueCollection_Region_F);
 			ownedClasses.add(type);
-			type = _Set_Slot_NullFree;
+			type = _Set_Slot_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Slot);
+			superClasses.add(_UniqueCollection_Slot_F);
 			ownedClasses.add(type);
-			type = _Set_State_NullFree;
+			type = _Set_State_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_State);
+			superClasses.add(_UniqueCollection_State_F);
 			ownedClasses.add(type);
-			type = _Set_StateMachine_NullFree;
+			type = _Set_StateMachine_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_StateMachine);
+			superClasses.add(_UniqueCollection_StateMachine_F);
 			ownedClasses.add(type);
-			type = _Set_StereotypeExtender_NullFree;
+			type = _Set_StereotypeExtender_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_StereotypeExtender);
+			superClasses.add(_UniqueCollection_StereotypeExtender_F);
 			ownedClasses.add(type);
-			type = _Set_String_NullFree;
+			type = _Set_String_T_L1;
 			type.setLower(1);
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_String);
+			superClasses.add(_UniqueCollection_String_F);
 			ownedClasses.add(type);
-			type = _Set_TemplateBinding_NullFree;
+			type = _Set_TemplateBinding_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_TemplateBinding);
+			superClasses.add(_UniqueCollection_TemplateBinding_F);
 			ownedClasses.add(type);
-			type = _Set_TemplateParameterSubstitution_NullFree;
+			type = _Set_TemplateParameterSubstitution_T_L1;
 			type.setLower(1);
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_TemplateParameterSubstitution);
+			superClasses.add(_UniqueCollection_TemplateParameterSubstitution_F);
 			ownedClasses.add(type);
-			type = _Set_Transition_NullFree;
+			type = _Set_Transition_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Transition);
+			superClasses.add(_UniqueCollection_Transition_F);
 			ownedClasses.add(type);
-			type = _Set_Trigger_NullFree;
+			type = _Set_Trigger_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Trigger);
+			superClasses.add(_UniqueCollection_Trigger_F);
 			ownedClasses.add(type);
-			type = _Set_Type_NullFree;
+			type = _Set_Type_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Type);
+			superClasses.add(_UniqueCollection_Type_F);
 			ownedClasses.add(type);
-			type = _Set_Vertex_NullFree;
+			type = _Set_Vertex_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Vertex);
+			superClasses.add(_UniqueCollection_Vertex_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Behavior;
+			type = _UniqueCollection_Behavior_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Behavior);
+			superClasses.add(_Collection_Behavior_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Class;
+			type = _UniqueCollection_Class_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Class);
+			superClasses.add(_Collection_Class_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_CollectionLiteralPart;
+			type = _UniqueCollection_CollectionLiteralPart_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_CollectionLiteralPart);
+			superClasses.add(_Collection_CollectionLiteralPart_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Comment;
+			type = _UniqueCollection_Comment_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Comment);
+			superClasses.add(_Collection_Comment_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_CompleteClass;
+			type = _UniqueCollection_CompleteClass_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_CompleteClass);
+			superClasses.add(_Collection_CompleteClass_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_CompletePackage;
+			type = _UniqueCollection_CompletePackage_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_CompletePackage);
+			superClasses.add(_Collection_CompletePackage_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_ConnectionPointReference;
+			type = _UniqueCollection_ConnectionPointReference_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_ConnectionPointReference);
+			superClasses.add(_Collection_ConnectionPointReference_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Constraint;
+			type = _UniqueCollection_Constraint_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Constraint);
+			superClasses.add(_Collection_Constraint_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Detail;
+			type = _UniqueCollection_Detail_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Detail);
+			superClasses.add(_Collection_Detail_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_DynamicProperty;
+			type = _UniqueCollection_DynamicProperty_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_DynamicProperty);
+			superClasses.add(_Collection_DynamicProperty_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Element;
+			type = _UniqueCollection_Element_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Element);
+			superClasses.add(_Collection_Element_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_ElementExtension;
+			type = _UniqueCollection_ElementExtension_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_ElementExtension);
+			superClasses.add(_Collection_ElementExtension_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_EnumerationLiteral;
+			type = _UniqueCollection_EnumerationLiteral_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_EnumerationLiteral);
+			superClasses.add(_Collection_EnumerationLiteral_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Import;
+			type = _UniqueCollection_Import_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Import);
+			superClasses.add(_Collection_Import_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_InstanceSpecification;
+			type = _UniqueCollection_InstanceSpecification_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_InstanceSpecification);
+			superClasses.add(_Collection_InstanceSpecification_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_IteratorVariable;
+			type = _UniqueCollection_IteratorVariable_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_IteratorVariable);
+			superClasses.add(_Collection_IteratorVariable_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_MapLiteralPart;
+			type = _UniqueCollection_MapLiteralPart_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_MapLiteralPart);
+			superClasses.add(_Collection_MapLiteralPart_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Model;
+			type = _UniqueCollection_Model_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Model);
+			superClasses.add(_Collection_Model_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_OCLExpression;
+			type = _UniqueCollection_OCLExpression_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OCLExpression);
+			superClasses.add(_Collection_OCLExpression_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Operation;
+			type = _UniqueCollection_Operation_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Operation);
+			superClasses.add(_Collection_Operation_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Package;
+			type = _UniqueCollection_Package_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Package);
+			superClasses.add(_Collection_Package_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Parameter;
+			type = _UniqueCollection_Parameter_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Parameter);
+			superClasses.add(_Collection_Parameter_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Precedence;
+			type = _UniqueCollection_Precedence_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Precedence);
+			superClasses.add(_Collection_Precedence_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_ProfileApplication;
+			type = _UniqueCollection_ProfileApplication_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_ProfileApplication);
+			superClasses.add(_Collection_ProfileApplication_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Property;
+			type = _UniqueCollection_Property_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Property);
+			superClasses.add(_Collection_Property_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Pseudostate;
+			type = _UniqueCollection_Pseudostate_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Pseudostate);
+			superClasses.add(_Collection_Pseudostate_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Region;
+			type = _UniqueCollection_Region_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Region);
+			superClasses.add(_Collection_Region_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_ShadowPart;
+			type = _UniqueCollection_ShadowPart_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_ShadowPart);
+			superClasses.add(_Collection_ShadowPart_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Slot;
+			type = _UniqueCollection_Slot_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Slot);
+			superClasses.add(_Collection_Slot_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_State;
+			type = _UniqueCollection_State_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_State);
+			superClasses.add(_Collection_State_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_StateMachine;
+			type = _UniqueCollection_StateMachine_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_StateMachine);
+			superClasses.add(_Collection_StateMachine_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_StereotypeExtender;
+			type = _UniqueCollection_StereotypeExtender_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_StereotypeExtender);
+			superClasses.add(_Collection_StereotypeExtender_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_String;
+			type = _UniqueCollection_String_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_String);
+			superClasses.add(_Collection_String_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_TemplateBinding;
+			type = _UniqueCollection_TemplateBinding_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_TemplateBinding);
+			superClasses.add(_Collection_TemplateBinding_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_TemplateParameter;
+			type = _UniqueCollection_TemplateParameter_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_TemplateParameter);
+			superClasses.add(_Collection_TemplateParameter_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_TemplateParameterSubstitution;
+			type = _UniqueCollection_TemplateParameterSubstitution_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_TemplateParameterSubstitution);
+			superClasses.add(_Collection_TemplateParameterSubstitution_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Transition;
+			type = _UniqueCollection_Transition_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Transition);
+			superClasses.add(_Collection_Transition_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Trigger;
+			type = _UniqueCollection_Trigger_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Trigger);
+			superClasses.add(_Collection_Trigger_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_TupleLiteralPart;
+			type = _UniqueCollection_TupleLiteralPart_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_TupleLiteralPart);
+			superClasses.add(_Collection_TupleLiteralPart_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Type;
+			type = _UniqueCollection_Type_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Type);
+			superClasses.add(_Collection_Type_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_ValueSpecification;
+			type = _UniqueCollection_ValueSpecification_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_ValueSpecification);
+			superClasses.add(_Collection_ValueSpecification_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Variable;
+			type = _UniqueCollection_Variable_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Variable);
+			superClasses.add(_Collection_Variable_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Vertex;
+			type = _UniqueCollection_Vertex_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Vertex);
+			superClasses.add(_Collection_Vertex_F);
 			ownedClasses.add(type);
 		}
 
 		private final @NonNull Operation op_CompleteModel_getOwnedCompletePackage = createOperation(PivotPackage.Literals.COMPLETE_MODEL___GET_OWNED_COMPLETE_PACKAGE__STRING, _CompletePackage, null, null);
 		private final @NonNull Operation op_CompletePackage_getOwnedCompleteClass = createOperation(PivotPackage.Literals.COMPLETE_PACKAGE___GET_OWNED_COMPLETE_CLASS__STRING, _CompleteClass, null, null);
-		private final @NonNull Operation op_Element_allOwnedElements = createOperation(PivotPackage.Literals.ELEMENT___ALL_OWNED_ELEMENTS, _Set_Element_NullFree, null, null);
+		private final @NonNull Operation op_Element_allOwnedElements = createOperation(PivotPackage.Literals.ELEMENT___ALL_OWNED_ELEMENTS, _Set_Element_T, null, null);
 		private final @NonNull Operation op_Element_getValue = createOperation(PivotPackage.Literals.ELEMENT___GET_VALUE__TYPE_STRING, _Element, null, null);
 		private final @NonNull Operation op_OCLExpression_isNonNull = createOperation(PivotPackage.Literals.OCL_EXPRESSION___IS_NON_NULL, _Boolean, null, null);
 		private final @NonNull Operation op_OCLExpression_isNull = createOperation(PivotPackage.Literals.OCL_EXPRESSION___IS_NULL, _Boolean, null, null);
@@ -2319,7 +2319,7 @@
 
 			ownedOperations = _Element.getOwnedOperations();
 			ownedOperations.add(operation = op_Element_allOwnedElements);
-			createBodyExpression(operation, _Element, "self->closure(oclContents()->selectByKind(Element))", _Set_Element_NullFree);
+			createBodyExpression(operation, _Element, "self->closure(oclContents()->selectByKind(Element))", _Set_Element_T);
 			ownedOperations.add(operation = op_Element_getValue);
 			operation.setIsRequired(false);
 			createBodyExpression(operation, _Element, "null", _Element);
@@ -2390,11 +2390,11 @@
 		}
 
 
-		private final @NonNull Property pr_Annotation_ownedContents = createProperty(PivotPackage.Literals.ANNOTATION__OWNED_CONTENTS, _OrderedSet_Element_NullFree);
-		private final @NonNull Property pr_Annotation_ownedDetails = createProperty(PivotPackage.Literals.ANNOTATION__OWNED_DETAILS, _OrderedSet_Detail_NullFree);
-		private final @NonNull Property pr_Annotation_references = createProperty(PivotPackage.Literals.ANNOTATION__REFERENCES, _OrderedSet_Element_NullFree);
-		private final @NonNull Property pr_AssociationClass_unownedAttributes = createProperty(PivotPackage.Literals.ASSOCIATION_CLASS__UNOWNED_ATTRIBUTES, _Set_Property_NullFree);
-		private final @NonNull Property pr_AssociationClass_AssociationClassCallExp_referredAssociationClass = createProperty("AssociationClassCallExp", _Bag_AssociationClassCallExp);
+		private final @NonNull Property pr_Annotation_ownedContents = createProperty(PivotPackage.Literals.ANNOTATION__OWNED_CONTENTS, _OrderedSet_Element_T);
+		private final @NonNull Property pr_Annotation_ownedDetails = createProperty(PivotPackage.Literals.ANNOTATION__OWNED_DETAILS, _OrderedSet_Detail_T);
+		private final @NonNull Property pr_Annotation_references = createProperty(PivotPackage.Literals.ANNOTATION__REFERENCES, _OrderedSet_Element_T);
+		private final @NonNull Property pr_AssociationClass_unownedAttributes = createProperty(PivotPackage.Literals.ASSOCIATION_CLASS__UNOWNED_ATTRIBUTES, _Set_Property_T);
+		private final @NonNull Property pr_AssociationClass_AssociationClassCallExp_referredAssociationClass = createProperty("AssociationClassCallExp", _Bag_AssociationClassCallExp_F);
 		private final @NonNull Property pr_AssociationClassCallExp_referredAssociationClass = createProperty(PivotPackage.Literals.ASSOCIATION_CLASS_CALL_EXP__REFERRED_ASSOCIATION_CLASS, _AssociationClass);
 		private final @NonNull Property pr_Behavior_owningTransition = createProperty(PivotPackage.Literals.BEHAVIOR__OWNING_TRANSITION, _Transition);
 		private final @NonNull Property pr_Behavior_Class_ownedBehaviors = createProperty("Class", _Class);
@@ -2407,26 +2407,26 @@
 		private final @NonNull Property pr_CallExp_ownedSource = createProperty(PivotPackage.Literals.CALL_EXP__OWNED_SOURCE, _OCLExpression);
 		private final @NonNull Property pr_CallOperationAction_operation = createProperty(PivotPackage.Literals.CALL_OPERATION_ACTION__OPERATION, _Operation);
 		private final @NonNull Property pr_CallOperationAction_MessageExp_ownedCalledOperation = createProperty("MessageExp", _MessageExp);
-		private final @NonNull Property pr_Class_extenders = createProperty(PivotPackage.Literals.CLASS__EXTENDERS, _Set_StereotypeExtender_NullFree);
+		private final @NonNull Property pr_Class_extenders = createProperty(PivotPackage.Literals.CLASS__EXTENDERS, _Set_StereotypeExtender_T);
 		private final @NonNull Property pr_Class_instanceClassName = createProperty(PivotPackage.Literals.CLASS__INSTANCE_CLASS_NAME, _String);
 		private final @NonNull Property pr_Class_isAbstract = createProperty(PivotPackage.Literals.CLASS__IS_ABSTRACT, _Boolean);
 		private final @NonNull Property pr_Class_isActive = createProperty(PivotPackage.Literals.CLASS__IS_ACTIVE, _Boolean);
 		private final @NonNull Property pr_Class_isInterface = createProperty(PivotPackage.Literals.CLASS__IS_INTERFACE, _Boolean);
-		private final @NonNull Property pr_Class_ownedBehaviors = createProperty(PivotPackage.Literals.CLASS__OWNED_BEHAVIORS, _Set_Behavior_NullFree);
-		private final @NonNull Property pr_Class_ownedInvariants = createProperty(PivotPackage.Literals.CLASS__OWNED_INVARIANTS, _Set_Constraint_NullFree);
-		private final @NonNull Property pr_Class_ownedOperations = createProperty(PivotPackage.Literals.CLASS__OWNED_OPERATIONS, _OrderedSet_Operation_NullFree);
-		private final @NonNull Property pr_Class_ownedProperties = createProperty(PivotPackage.Literals.CLASS__OWNED_PROPERTIES, _OrderedSet_Property_NullFree);
+		private final @NonNull Property pr_Class_ownedBehaviors = createProperty(PivotPackage.Literals.CLASS__OWNED_BEHAVIORS, _Set_Behavior_T);
+		private final @NonNull Property pr_Class_ownedInvariants = createProperty(PivotPackage.Literals.CLASS__OWNED_INVARIANTS, _Set_Constraint_T);
+		private final @NonNull Property pr_Class_ownedOperations = createProperty(PivotPackage.Literals.CLASS__OWNED_OPERATIONS, _OrderedSet_Operation_T);
+		private final @NonNull Property pr_Class_ownedProperties = createProperty(PivotPackage.Literals.CLASS__OWNED_PROPERTIES, _OrderedSet_Property_T);
 		private final @NonNull Property pr_Class_owningPackage = createProperty(PivotPackage.Literals.CLASS__OWNING_PACKAGE, _Package);
-		private final @NonNull Property pr_Class_superClasses = createProperty(PivotPackage.Literals.CLASS__SUPER_CLASSES, _Set_Class_NullFree);
-		private final @NonNull Property pr_Class_Class_superClasses = createProperty("Class", _Bag_Class);
-		private final @NonNull Property pr_Class_CompleteClass_partialClasses = createProperty("CompleteClass", _Bag_CompleteClass);
-		private final @NonNull Property pr_Class_DataType_behavioralClass = createProperty("DataType", _Bag_DataType);
-		private final @NonNull Property pr_Class_InstanceSpecification_classes = createProperty("InstanceSpecification", _Bag_InstanceSpecification);
-		private final @NonNull Property pr_Class_MapType_entryClass = createProperty("MapType", _Bag_MapType);
-		private final @NonNull Property pr_Class_TemplateParameter_constrainingClasses = createProperty("TemplateParameter", _Bag_TemplateParameter);
+		private final @NonNull Property pr_Class_superClasses = createProperty(PivotPackage.Literals.CLASS__SUPER_CLASSES, _Set_Class_T);
+		private final @NonNull Property pr_Class_Class_superClasses = createProperty("Class", _Bag_Class_F);
+		private final @NonNull Property pr_Class_CompleteClass_partialClasses = createProperty("CompleteClass", _Bag_CompleteClass_F);
+		private final @NonNull Property pr_Class_DataType_behavioralClass = createProperty("DataType", _Bag_DataType_F);
+		private final @NonNull Property pr_Class_InstanceSpecification_classes = createProperty("InstanceSpecification", _Bag_InstanceSpecification_F);
+		private final @NonNull Property pr_Class_MapType_entryClass = createProperty("MapType", _Bag_MapType_F);
+		private final @NonNull Property pr_Class_TemplateParameter_constrainingClasses = createProperty("TemplateParameter", _Bag_TemplateParameter_F);
 		private final @NonNull Property pr_CollectionItem_ownedItem = createProperty(PivotPackage.Literals.COLLECTION_ITEM__OWNED_ITEM, _OCLExpression);
 		private final @NonNull Property pr_CollectionLiteralExp_kind = createProperty(PivotPackage.Literals.COLLECTION_LITERAL_EXP__KIND, _CollectionKind);
-		private final @NonNull Property pr_CollectionLiteralExp_ownedParts = createProperty(PivotPackage.Literals.COLLECTION_LITERAL_EXP__OWNED_PARTS, _OrderedSet_CollectionLiteralPart_NullFree);
+		private final @NonNull Property pr_CollectionLiteralExp_ownedParts = createProperty(PivotPackage.Literals.COLLECTION_LITERAL_EXP__OWNED_PARTS, _OrderedSet_CollectionLiteralPart_T);
 		private final @NonNull Property pr_CollectionLiteralPart_CollectionLiteralExp_ownedParts = createProperty("CollectionLiteralExp", _CollectionLiteralExp);
 		private final @NonNull Property pr_CollectionRange_ownedFirst = createProperty(PivotPackage.Literals.COLLECTION_RANGE__OWNED_FIRST, _OCLExpression);
 		private final @NonNull Property pr_CollectionRange_ownedLast = createProperty(PivotPackage.Literals.COLLECTION_RANGE__OWNED_LAST, _OCLExpression);
@@ -2434,27 +2434,27 @@
 		private final @NonNull Property pr_CollectionType_isNullFree = createProperty(PivotPackage.Literals.COLLECTION_TYPE__IS_NULL_FREE, _Boolean);
 		private final @NonNull Property pr_CollectionType_lower = createProperty(PivotPackage.Literals.COLLECTION_TYPE__LOWER, _Integer);
 		private final @NonNull Property pr_CollectionType_upper = createProperty(PivotPackage.Literals.COLLECTION_TYPE__UPPER, _UnlimitedNatural);
-		private final @NonNull Property pr_Comment_annotatedElements = createProperty(PivotPackage.Literals.COMMENT__ANNOTATED_ELEMENTS, _Set_Element_NullFree);
+		private final @NonNull Property pr_Comment_annotatedElements = createProperty(PivotPackage.Literals.COMMENT__ANNOTATED_ELEMENTS, _Set_Element_T);
 		private final @NonNull Property pr_Comment_body = createProperty(PivotPackage.Literals.COMMENT__BODY, _String);
 		private final @NonNull Property pr_Comment_owningElement = createProperty(PivotPackage.Literals.COMMENT__OWNING_ELEMENT, _Element);
 		private final @NonNull Property pr_CompleteClass_owningCompletePackage = createProperty(PivotPackage.Literals.COMPLETE_CLASS__OWNING_COMPLETE_PACKAGE, _CompletePackage);
-		private final @NonNull Property pr_CompleteClass_partialClasses = createProperty(PivotPackage.Literals.COMPLETE_CLASS__PARTIAL_CLASSES, _Set_Class_NullFree);
+		private final @NonNull Property pr_CompleteClass_partialClasses = createProperty(PivotPackage.Literals.COMPLETE_CLASS__PARTIAL_CLASSES, _Set_Class_T);
 		private final @NonNull Property pr_CompleteEnvironment_ownedCompleteModel = createProperty(PivotPackage.Literals.COMPLETE_ENVIRONMENT__OWNED_COMPLETE_MODEL, _CompleteModel);
 		private final @NonNull Property pr_CompleteEnvironment_ownedStandardLibrary = createProperty(PivotPackage.Literals.COMPLETE_ENVIRONMENT__OWNED_STANDARD_LIBRARY, _StandardLibrary);
 		private final @NonNull Property pr_CompleteModel_orphanCompletePackage = createProperty(PivotPackage.Literals.COMPLETE_MODEL__ORPHAN_COMPLETE_PACKAGE, _OrphanCompletePackage);
-		private final @NonNull Property pr_CompleteModel_ownedCompletePackages = createProperty(PivotPackage.Literals.COMPLETE_MODEL__OWNED_COMPLETE_PACKAGES, _Set_CompletePackage_NullFree);
+		private final @NonNull Property pr_CompleteModel_ownedCompletePackages = createProperty(PivotPackage.Literals.COMPLETE_MODEL__OWNED_COMPLETE_PACKAGES, _Set_CompletePackage_T);
 		private final @NonNull Property pr_CompleteModel_owningCompleteEnvironment = createProperty(PivotPackage.Literals.COMPLETE_MODEL__OWNING_COMPLETE_ENVIRONMENT, _CompleteEnvironment);
-		private final @NonNull Property pr_CompleteModel_partialModels = createProperty(PivotPackage.Literals.COMPLETE_MODEL__PARTIAL_MODELS, _Set_Model_NullFree);
+		private final @NonNull Property pr_CompleteModel_partialModels = createProperty(PivotPackage.Literals.COMPLETE_MODEL__PARTIAL_MODELS, _Set_Model_T);
 		private final @NonNull Property pr_CompleteModel_primitiveCompletePackage = createProperty(PivotPackage.Literals.COMPLETE_MODEL__PRIMITIVE_COMPLETE_PACKAGE, _PrimitiveCompletePackage);
-		private final @NonNull Property pr_CompletePackage_ownedCompleteClasses = createProperty(PivotPackage.Literals.COMPLETE_PACKAGE__OWNED_COMPLETE_CLASSES, _Set_CompleteClass_NullFree);
-		private final @NonNull Property pr_CompletePackage_ownedCompletePackages = createProperty(PivotPackage.Literals.COMPLETE_PACKAGE__OWNED_COMPLETE_PACKAGES, _Set_CompletePackage_NullFree);
+		private final @NonNull Property pr_CompletePackage_ownedCompleteClasses = createProperty(PivotPackage.Literals.COMPLETE_PACKAGE__OWNED_COMPLETE_CLASSES, _Set_CompleteClass_T);
+		private final @NonNull Property pr_CompletePackage_ownedCompletePackages = createProperty(PivotPackage.Literals.COMPLETE_PACKAGE__OWNED_COMPLETE_PACKAGES, _Set_CompletePackage_T);
 		private final @NonNull Property pr_CompletePackage_owningCompleteModel = createProperty(PivotPackage.Literals.COMPLETE_PACKAGE__OWNING_COMPLETE_MODEL, _CompleteModel);
 		private final @NonNull Property pr_CompletePackage_owningCompletePackage = createProperty(PivotPackage.Literals.COMPLETE_PACKAGE__OWNING_COMPLETE_PACKAGE, _CompletePackage);
-		private final @NonNull Property pr_CompletePackage_partialPackages = createProperty(PivotPackage.Literals.COMPLETE_PACKAGE__PARTIAL_PACKAGES, _Set_Package_NullFree);
-		private final @NonNull Property pr_ConnectionPointReference_entries = createProperty(PivotPackage.Literals.CONNECTION_POINT_REFERENCE__ENTRIES, _Set_Pseudostate_NullFree);
-		private final @NonNull Property pr_ConnectionPointReference_exits = createProperty(PivotPackage.Literals.CONNECTION_POINT_REFERENCE__EXITS, _Set_Pseudostate_NullFree);
+		private final @NonNull Property pr_CompletePackage_partialPackages = createProperty(PivotPackage.Literals.COMPLETE_PACKAGE__PARTIAL_PACKAGES, _Set_Package_T);
+		private final @NonNull Property pr_ConnectionPointReference_entries = createProperty(PivotPackage.Literals.CONNECTION_POINT_REFERENCE__ENTRIES, _Set_Pseudostate_T);
+		private final @NonNull Property pr_ConnectionPointReference_exits = createProperty(PivotPackage.Literals.CONNECTION_POINT_REFERENCE__EXITS, _Set_Pseudostate_T);
 		private final @NonNull Property pr_ConnectionPointReference_owningState = createProperty(PivotPackage.Literals.CONNECTION_POINT_REFERENCE__OWNING_STATE, _State);
-		private final @NonNull Property pr_Constraint_constrainedElements = createProperty(PivotPackage.Literals.CONSTRAINT__CONSTRAINED_ELEMENTS, _OrderedSet_Element_NullFree);
+		private final @NonNull Property pr_Constraint_constrainedElements = createProperty(PivotPackage.Literals.CONSTRAINT__CONSTRAINED_ELEMENTS, _OrderedSet_Element_T);
 		private final @NonNull Property pr_Constraint_context = createProperty(PivotPackage.Literals.CONSTRAINT__CONTEXT, _Namespace);
 		private final @NonNull Property pr_Constraint_isCallable = createProperty(PivotPackage.Literals.CONSTRAINT__IS_CALLABLE, _Boolean);
 		private final @NonNull Property pr_Constraint_ownedSpecification = createProperty(PivotPackage.Literals.CONSTRAINT__OWNED_SPECIFICATION, _LanguageExpression);
@@ -2462,41 +2462,41 @@
 		private final @NonNull Property pr_Constraint_owningPreContext = createProperty(PivotPackage.Literals.CONSTRAINT__OWNING_PRE_CONTEXT, _Operation);
 		private final @NonNull Property pr_Constraint_owningState = createProperty(PivotPackage.Literals.CONSTRAINT__OWNING_STATE, _State);
 		private final @NonNull Property pr_Constraint_owningTransition = createProperty(PivotPackage.Literals.CONSTRAINT__OWNING_TRANSITION, _Transition);
-		private final @NonNull Property pr_Constraint_redefinedConstraints = createProperty(PivotPackage.Literals.CONSTRAINT__REDEFINED_CONSTRAINTS, _Set_Constraint_NullFree);
+		private final @NonNull Property pr_Constraint_redefinedConstraints = createProperty(PivotPackage.Literals.CONSTRAINT__REDEFINED_CONSTRAINTS, _Set_Constraint_T);
 		private final @NonNull Property pr_Constraint_Class_ownedInvariants = createProperty("Class", _Class);
-		private final @NonNull Property pr_Constraint_Constraint_redefinedConstraints = createProperty("Constraint", _Bag_Constraint);
+		private final @NonNull Property pr_Constraint_Constraint_redefinedConstraints = createProperty("Constraint", _Bag_Constraint_F);
 		private final @NonNull Property pr_Constraint_Namespace_ownedConstraints = createProperty("Namespace", _Namespace);
 		private final @NonNull Property pr_DataType_behavioralClass = createProperty(PivotPackage.Literals.DATA_TYPE__BEHAVIORAL_CLASS, _Class);
 		private final @NonNull Property pr_DataType_isSerializable = createProperty(PivotPackage.Literals.DATA_TYPE__IS_SERIALIZABLE, _Boolean);
 		private final @NonNull Property pr_DataType_value = createProperty(PivotPackage.Literals.DATA_TYPE__VALUE, _String);
-		private final @NonNull Property pr_Detail_values = createProperty(PivotPackage.Literals.DETAIL__VALUES, _Set_String_NullFree);
+		private final @NonNull Property pr_Detail_values = createProperty(PivotPackage.Literals.DETAIL__VALUES, _Set_String_T_L1);
 		private final @NonNull Property pr_Detail_Annotation_ownedDetails = createProperty("Annotation", _Annotation);
 		private final @NonNull Property pr_DynamicElement_metaType = createProperty(PivotPackage.Literals.DYNAMIC_ELEMENT__META_TYPE, _Type);
 		private final @NonNull Property pr_DynamicProperty_default = createProperty(PivotPackage.Literals.DYNAMIC_PROPERTY__DEFAULT, _String);
 		private final @NonNull Property pr_DynamicProperty_referredProperty = createProperty(PivotPackage.Literals.DYNAMIC_PROPERTY__REFERRED_PROPERTY, _Property);
 		private final @NonNull Property pr_DynamicProperty_DynamicType_ownedDynamicProperties = createProperty("DynamicType", _DynamicType);
-		private final @NonNull Property pr_DynamicType_ownedDynamicProperties = createProperty(PivotPackage.Literals.DYNAMIC_TYPE__OWNED_DYNAMIC_PROPERTIES, _Set_DynamicProperty_NullFree);
-		private final @NonNull Property pr_Element_annotatingComments = createProperty(PivotPackage.Literals.ELEMENT__ANNOTATING_COMMENTS, _Set_Comment_NullFree);
-		private final @NonNull Property pr_Element_ownedAnnotations = createProperty(PivotPackage.Literals.ELEMENT__OWNED_ANNOTATIONS, _OrderedSet_Element_NullFree);
-		private final @NonNull Property pr_Element_ownedComments = createProperty(PivotPackage.Literals.ELEMENT__OWNED_COMMENTS, _Set_Comment_NullFree);
-		private final @NonNull Property pr_Element_ownedExtensions = createProperty(PivotPackage.Literals.ELEMENT__OWNED_EXTENSIONS, _Set_ElementExtension_NullFree);
+		private final @NonNull Property pr_DynamicType_ownedDynamicProperties = createProperty(PivotPackage.Literals.DYNAMIC_TYPE__OWNED_DYNAMIC_PROPERTIES, _Set_DynamicProperty_T);
+		private final @NonNull Property pr_Element_annotatingComments = createProperty(PivotPackage.Literals.ELEMENT__ANNOTATING_COMMENTS, _Set_Comment_T);
+		private final @NonNull Property pr_Element_ownedAnnotations = createProperty(PivotPackage.Literals.ELEMENT__OWNED_ANNOTATIONS, _OrderedSet_Element_T);
+		private final @NonNull Property pr_Element_ownedComments = createProperty(PivotPackage.Literals.ELEMENT__OWNED_COMMENTS, _Set_Comment_T);
+		private final @NonNull Property pr_Element_ownedExtensions = createProperty(PivotPackage.Literals.ELEMENT__OWNED_EXTENSIONS, _Set_ElementExtension_T);
 		private final @NonNull Property pr_Element_Annotation_ownedContents = createProperty("Annotation", _Annotation);
-		private final @NonNull Property pr_Element_Annotation_references = createProperty("Annotation", _Bag_Annotation);
-		private final @NonNull Property pr_Element_Constraint_constrainedElements = createProperty("Constraint", _Bag_Constraint);
+		private final @NonNull Property pr_Element_Annotation_references = createProperty("Annotation", _Bag_Annotation_F);
+		private final @NonNull Property pr_Element_Constraint_constrainedElements = createProperty("Constraint", _Bag_Constraint_F);
 		private final @NonNull Property pr_Element_Element_ownedAnnotations = createProperty("Element", _Element);
 		private final @NonNull Property pr_ElementExtension_base = createProperty(PivotPackage.Literals.ELEMENT_EXTENSION__BASE, _Element);
 		private final @NonNull Property pr_ElementExtension_isApplied = createProperty(PivotPackage.Literals.ELEMENT_EXTENSION__IS_APPLIED, _Boolean);
 		private final @NonNull Property pr_ElementExtension_isRequired = createProperty(PivotPackage.Literals.ELEMENT_EXTENSION__IS_REQUIRED, _Boolean);
 		private final @NonNull Property pr_ElementExtension_stereotype = createProperty(PivotPackage.Literals.ELEMENT_EXTENSION__STEREOTYPE, _Stereotype);
 		private final @NonNull Property pr_EnumLiteralExp_referredLiteral = createProperty(PivotPackage.Literals.ENUM_LITERAL_EXP__REFERRED_LITERAL, _EnumerationLiteral);
-		private final @NonNull Property pr_Enumeration_ownedLiterals = createProperty(PivotPackage.Literals.ENUMERATION__OWNED_LITERALS, _OrderedSet_EnumerationLiteral_NullFree);
+		private final @NonNull Property pr_Enumeration_ownedLiterals = createProperty(PivotPackage.Literals.ENUMERATION__OWNED_LITERALS, _OrderedSet_EnumerationLiteral_T);
 		private final @NonNull Property pr_EnumerationLiteral_literal = createProperty(PivotPackage.Literals.ENUMERATION_LITERAL__LITERAL, _String);
 		private final @NonNull Property pr_EnumerationLiteral_owningEnumeration = createProperty(PivotPackage.Literals.ENUMERATION_LITERAL__OWNING_ENUMERATION, _Enumeration);
 		private final @NonNull Property pr_EnumerationLiteral_value = createProperty(PivotPackage.Literals.ENUMERATION_LITERAL__VALUE, _Integer);
-		private final @NonNull Property pr_EnumerationLiteral_EnumLiteralExp_referredLiteral = createProperty("EnumLiteralExp", _Bag_EnumLiteralExp);
+		private final @NonNull Property pr_EnumerationLiteral_EnumLiteralExp_referredLiteral = createProperty("EnumLiteralExp", _Bag_EnumLiteralExp_F);
 		private final @NonNull Property pr_ExpressionInOCL_ownedBody = createProperty(PivotPackage.Literals.EXPRESSION_IN_OCL__OWNED_BODY, _OCLExpression);
 		private final @NonNull Property pr_ExpressionInOCL_ownedContext = createProperty(PivotPackage.Literals.EXPRESSION_IN_OCL__OWNED_CONTEXT, _Variable);
-		private final @NonNull Property pr_ExpressionInOCL_ownedParameters = createProperty(PivotPackage.Literals.EXPRESSION_IN_OCL__OWNED_PARAMETERS, _OrderedSet_Variable_NullFree);
+		private final @NonNull Property pr_ExpressionInOCL_ownedParameters = createProperty(PivotPackage.Literals.EXPRESSION_IN_OCL__OWNED_PARAMETERS, _OrderedSet_Variable_T);
 		private final @NonNull Property pr_ExpressionInOCL_ownedResult = createProperty(PivotPackage.Literals.EXPRESSION_IN_OCL__OWNED_RESULT, _Variable);
 		private final @NonNull Property pr_Feature_implementation = createProperty(PivotPackage.Literals.FEATURE__IMPLEMENTATION, _LibraryFeature);
 		private final @NonNull Property pr_Feature_implementationClass = createProperty(PivotPackage.Literals.FEATURE__IMPLEMENTATION_CLASS, _String);
@@ -2509,18 +2509,18 @@
 		private final @NonNull Property pr_Import_importedNamespace = createProperty(PivotPackage.Literals.IMPORT__IMPORTED_NAMESPACE, _Namespace);
 		private final @NonNull Property pr_Import_xmiidVersion = createProperty(PivotPackage.Literals.IMPORT__XMIID_VERSION, _Integer);
 		private final @NonNull Property pr_Import_Model_ownedImports = createProperty("Model", _Model);
-		private final @NonNull Property pr_InstanceSpecification_classes = createProperty(PivotPackage.Literals.INSTANCE_SPECIFICATION__CLASSES, _Set_Class_NullFree);
-		private final @NonNull Property pr_InstanceSpecification_ownedSlots = createProperty(PivotPackage.Literals.INSTANCE_SPECIFICATION__OWNED_SLOTS, _Set_Slot_NullFree);
+		private final @NonNull Property pr_InstanceSpecification_classes = createProperty(PivotPackage.Literals.INSTANCE_SPECIFICATION__CLASSES, _Set_Class_T);
+		private final @NonNull Property pr_InstanceSpecification_ownedSlots = createProperty(PivotPackage.Literals.INSTANCE_SPECIFICATION__OWNED_SLOTS, _Set_Slot_T);
 		private final @NonNull Property pr_InstanceSpecification_ownedSpecification = createProperty(PivotPackage.Literals.INSTANCE_SPECIFICATION__OWNED_SPECIFICATION, _LanguageExpression);
 		private final @NonNull Property pr_InstanceSpecification_owningPackage = createProperty(PivotPackage.Literals.INSTANCE_SPECIFICATION__OWNING_PACKAGE, _Package);
 		private final @NonNull Property pr_IntegerLiteralExp_integerSymbol = createProperty(PivotPackage.Literals.INTEGER_LITERAL_EXP__INTEGER_SYMBOL, _Integer);
 		private final @NonNull Property pr_IterateExp_ownedResult = createProperty(PivotPackage.Literals.ITERATE_EXP__OWNED_RESULT, _Variable);
-		private final @NonNull Property pr_Iteration_ownedAccumulators = createProperty(PivotPackage.Literals.ITERATION__OWNED_ACCUMULATORS, _OrderedSet_Parameter_NullFree);
-		private final @NonNull Property pr_Iteration_ownedIterators = createProperty(PivotPackage.Literals.ITERATION__OWNED_ITERATORS, _OrderedSet_Parameter_NullFree);
-		private final @NonNull Property pr_Iteration_LoopExp_referredIteration = createProperty("LoopExp", _Bag_LoopExp);
+		private final @NonNull Property pr_Iteration_ownedAccumulators = createProperty(PivotPackage.Literals.ITERATION__OWNED_ACCUMULATORS, _OrderedSet_Parameter_T);
+		private final @NonNull Property pr_Iteration_ownedIterators = createProperty(PivotPackage.Literals.ITERATION__OWNED_ITERATORS, _OrderedSet_Parameter_T);
+		private final @NonNull Property pr_Iteration_LoopExp_referredIteration = createProperty("LoopExp", _Bag_LoopExp_F);
 		private final @NonNull Property pr_IteratorVariable_LoopExp_ownedCoIterators = createProperty("LoopExp", _LoopExp);
 		private final @NonNull Property pr_LambdaType_contextType = createProperty(PivotPackage.Literals.LAMBDA_TYPE__CONTEXT_TYPE, _Type);
-		private final @NonNull Property pr_LambdaType_parameterType = createProperty(PivotPackage.Literals.LAMBDA_TYPE__PARAMETER_TYPE, _Sequence_Type_NullFree);
+		private final @NonNull Property pr_LambdaType_parameterType = createProperty(PivotPackage.Literals.LAMBDA_TYPE__PARAMETER_TYPE, _Sequence_Type_T);
 		private final @NonNull Property pr_LambdaType_resultType = createProperty(PivotPackage.Literals.LAMBDA_TYPE__RESULT_TYPE, _Type);
 		private final @NonNull Property pr_LanguageExpression_body = createProperty(PivotPackage.Literals.LANGUAGE_EXPRESSION__BODY, _String);
 		private final @NonNull Property pr_LanguageExpression_language = createProperty(PivotPackage.Literals.LANGUAGE_EXPRESSION__LANGUAGE, _String);
@@ -2530,12 +2530,12 @@
 		private final @NonNull Property pr_LanguageExpression_Property_ownedExpression = createProperty("Property", _Property);
 		private final @NonNull Property pr_LetExp_ownedIn = createProperty(PivotPackage.Literals.LET_EXP__OWNED_IN, _OCLExpression);
 		private final @NonNull Property pr_LetExp_ownedVariable = createProperty(PivotPackage.Literals.LET_EXP__OWNED_VARIABLE, _Variable);
-		private final @NonNull Property pr_Library_ownedPrecedences = createProperty(PivotPackage.Literals.LIBRARY__OWNED_PRECEDENCES, _OrderedSet_Precedence_NullFree);
+		private final @NonNull Property pr_Library_ownedPrecedences = createProperty(PivotPackage.Literals.LIBRARY__OWNED_PRECEDENCES, _OrderedSet_Precedence_T);
 		private final @NonNull Property pr_LoopExp_ownedBody = createProperty(PivotPackage.Literals.LOOP_EXP__OWNED_BODY, _OCLExpression);
-		private final @NonNull Property pr_LoopExp_ownedCoIterators = createProperty(PivotPackage.Literals.LOOP_EXP__OWNED_CO_ITERATORS, _OrderedSet_IteratorVariable);
-		private final @NonNull Property pr_LoopExp_ownedIterators = createProperty(PivotPackage.Literals.LOOP_EXP__OWNED_ITERATORS, _OrderedSet_Variable_NullFree);
+		private final @NonNull Property pr_LoopExp_ownedCoIterators = createProperty(PivotPackage.Literals.LOOP_EXP__OWNED_CO_ITERATORS, _OrderedSet_IteratorVariable_F);
+		private final @NonNull Property pr_LoopExp_ownedIterators = createProperty(PivotPackage.Literals.LOOP_EXP__OWNED_ITERATORS, _OrderedSet_Variable_T);
 		private final @NonNull Property pr_LoopExp_referredIteration = createProperty(PivotPackage.Literals.LOOP_EXP__REFERRED_ITERATION, _Iteration);
-		private final @NonNull Property pr_MapLiteralExp_ownedParts = createProperty(PivotPackage.Literals.MAP_LITERAL_EXP__OWNED_PARTS, _OrderedSet_MapLiteralPart_NullFree);
+		private final @NonNull Property pr_MapLiteralExp_ownedParts = createProperty(PivotPackage.Literals.MAP_LITERAL_EXP__OWNED_PARTS, _OrderedSet_MapLiteralPart_T);
 		private final @NonNull Property pr_MapLiteralPart_ownedKey = createProperty(PivotPackage.Literals.MAP_LITERAL_PART__OWNED_KEY, _OCLExpression);
 		private final @NonNull Property pr_MapLiteralPart_ownedValue = createProperty(PivotPackage.Literals.MAP_LITERAL_PART__OWNED_VALUE, _OCLExpression);
 		private final @NonNull Property pr_MapLiteralPart_MapLiteralExp_ownedParts = createProperty("MapLiteralExp", _MapLiteralExp);
@@ -2544,23 +2544,23 @@
 		private final @NonNull Property pr_MapType_keysAreNullFree = createProperty(PivotPackage.Literals.MAP_TYPE__KEYS_ARE_NULL_FREE, _Boolean);
 		private final @NonNull Property pr_MapType_valueType = createProperty(PivotPackage.Literals.MAP_TYPE__VALUE_TYPE, _Type);
 		private final @NonNull Property pr_MapType_valuesAreNullFree = createProperty(PivotPackage.Literals.MAP_TYPE__VALUES_ARE_NULL_FREE, _Boolean);
-		private final @NonNull Property pr_MessageExp_ownedArguments = createProperty(PivotPackage.Literals.MESSAGE_EXP__OWNED_ARGUMENTS, _OrderedSet_OCLExpression_NullFree);
+		private final @NonNull Property pr_MessageExp_ownedArguments = createProperty(PivotPackage.Literals.MESSAGE_EXP__OWNED_ARGUMENTS, _OrderedSet_OCLExpression_T);
 		private final @NonNull Property pr_MessageExp_ownedCalledOperation = createProperty(PivotPackage.Literals.MESSAGE_EXP__OWNED_CALLED_OPERATION, _CallOperationAction);
 		private final @NonNull Property pr_MessageExp_ownedSentSignal = createProperty(PivotPackage.Literals.MESSAGE_EXP__OWNED_SENT_SIGNAL, _SendSignalAction);
 		private final @NonNull Property pr_MessageExp_ownedTarget = createProperty(PivotPackage.Literals.MESSAGE_EXP__OWNED_TARGET, _OCLExpression);
 		private final @NonNull Property pr_MessageType_referredOperation = createProperty(PivotPackage.Literals.MESSAGE_TYPE__REFERRED_OPERATION, _Operation);
 		private final @NonNull Property pr_MessageType_referredSignal = createProperty(PivotPackage.Literals.MESSAGE_TYPE__REFERRED_SIGNAL, _Signal);
 		private final @NonNull Property pr_Model_externalURI = createProperty(PivotPackage.Literals.MODEL__EXTERNAL_URI, _String);
-		private final @NonNull Property pr_Model_ownedImports = createProperty(PivotPackage.Literals.MODEL__OWNED_IMPORTS, _OrderedSet_Import_NullFree);
-		private final @NonNull Property pr_Model_ownedPackages = createProperty(PivotPackage.Literals.MODEL__OWNED_PACKAGES, _Set_Package_NullFree);
+		private final @NonNull Property pr_Model_ownedImports = createProperty(PivotPackage.Literals.MODEL__OWNED_IMPORTS, _OrderedSet_Import_T);
+		private final @NonNull Property pr_Model_ownedPackages = createProperty(PivotPackage.Literals.MODEL__OWNED_PACKAGES, _Set_Package_T);
 		private final @NonNull Property pr_Model_xmiidVersion = createProperty(PivotPackage.Literals.MODEL__XMIID_VERSION, _Integer);
-		private final @NonNull Property pr_Model_CompleteModel_partialModels = createProperty("CompleteModel", _Bag_CompleteModel);
+		private final @NonNull Property pr_Model_CompleteModel_partialModels = createProperty("CompleteModel", _Bag_CompleteModel_F);
 		private final @NonNull Property pr_NamedElement_name = createProperty(PivotPackage.Literals.NAMED_ELEMENT__NAME, _String);
-		private final @NonNull Property pr_Namespace_ownedConstraints = createProperty(PivotPackage.Literals.NAMESPACE__OWNED_CONSTRAINTS, _Set_Constraint_NullFree);
-		private final @NonNull Property pr_Namespace_Constraint_context = createProperty("Constraint", _Bag_Constraint);
-		private final @NonNull Property pr_Namespace_Import_importedNamespace = createProperty("Import", _Bag_Import);
+		private final @NonNull Property pr_Namespace_ownedConstraints = createProperty(PivotPackage.Literals.NAMESPACE__OWNED_CONSTRAINTS, _Set_Constraint_T);
+		private final @NonNull Property pr_Namespace_Constraint_context = createProperty("Constraint", _Bag_Constraint_F);
+		private final @NonNull Property pr_Namespace_Import_importedNamespace = createProperty("Import", _Bag_Import_F);
 		private final @NonNull Property pr_NavigationCallExp_navigationSource = createProperty(PivotPackage.Literals.NAVIGATION_CALL_EXP__NAVIGATION_SOURCE, _Property);
-		private final @NonNull Property pr_NavigationCallExp_qualifiers = createProperty(PivotPackage.Literals.NAVIGATION_CALL_EXP__QUALIFIERS, _OrderedSet_OCLExpression_NullFree);
+		private final @NonNull Property pr_NavigationCallExp_qualifiers = createProperty(PivotPackage.Literals.NAVIGATION_CALL_EXP__QUALIFIERS, _OrderedSet_OCLExpression_T);
 		private final @NonNull Property pr_OCLExpression_typeValue = createProperty(PivotPackage.Literals.OCL_EXPRESSION__TYPE_VALUE, _Type);
 		private final @NonNull Property pr_OCLExpression_CallExp_ownedSource = createProperty("CallExp", _CallExp);
 		private final @NonNull Property pr_OCLExpression_CollectionItem_ownedItem = createProperty("CollectionItem", _CollectionItem);
@@ -2576,7 +2576,7 @@
 		private final @NonNull Property pr_OCLExpression_MapLiteralPart_ownedValue = createProperty("MapLiteralPart", _MapLiteralPart);
 		private final @NonNull Property pr_OCLExpression_MessageExp_ownedArguments = createProperty("MessageExp", _MessageExp);
 		private final @NonNull Property pr_OCLExpression_MessageExp_ownedTarget = createProperty("MessageExp", _MessageExp);
-		private final @NonNull Property pr_OCLExpression_NavigationCallExp_qualifiers = createProperty("NavigationCallExp", _Bag_NavigationCallExp);
+		private final @NonNull Property pr_OCLExpression_NavigationCallExp_qualifiers = createProperty("NavigationCallExp", _Bag_NavigationCallExp_F);
 		private final @NonNull Property pr_OCLExpression_OperationCallExp_ownedArguments = createProperty("OperationCallExp", _OperationCallExp);
 		private final @NonNull Property pr_OCLExpression_ShadowPart_ownedInit = createProperty("ShadowPart", _ShadowPart);
 		private final @NonNull Property pr_OCLExpression_TupleLiteralPart_ownedInit = createProperty("TupleLiteralPart", _TupleLiteralPart);
@@ -2586,46 +2586,46 @@
 		private final @NonNull Property pr_Operation_isTransient = createProperty(PivotPackage.Literals.OPERATION__IS_TRANSIENT, _Boolean);
 		private final @NonNull Property pr_Operation_isTypeof = createProperty(PivotPackage.Literals.OPERATION__IS_TYPEOF, _Boolean);
 		private final @NonNull Property pr_Operation_isValidating = createProperty(PivotPackage.Literals.OPERATION__IS_VALIDATING, _Boolean);
-		private final @NonNull Property pr_Operation_ownedParameters = createProperty(PivotPackage.Literals.OPERATION__OWNED_PARAMETERS, _OrderedSet_Parameter_NullFree);
-		private final @NonNull Property pr_Operation_ownedPostconditions = createProperty(PivotPackage.Literals.OPERATION__OWNED_POSTCONDITIONS, _Set_Constraint_NullFree);
-		private final @NonNull Property pr_Operation_ownedPreconditions = createProperty(PivotPackage.Literals.OPERATION__OWNED_PRECONDITIONS, _Set_Constraint_NullFree);
+		private final @NonNull Property pr_Operation_ownedParameters = createProperty(PivotPackage.Literals.OPERATION__OWNED_PARAMETERS, _OrderedSet_Parameter_T);
+		private final @NonNull Property pr_Operation_ownedPostconditions = createProperty(PivotPackage.Literals.OPERATION__OWNED_POSTCONDITIONS, _Set_Constraint_T);
+		private final @NonNull Property pr_Operation_ownedPreconditions = createProperty(PivotPackage.Literals.OPERATION__OWNED_PRECONDITIONS, _Set_Constraint_T);
 		private final @NonNull Property pr_Operation_owningClass = createProperty(PivotPackage.Literals.OPERATION__OWNING_CLASS, _Class);
 		private final @NonNull Property pr_Operation_precedence = createProperty(PivotPackage.Literals.OPERATION__PRECEDENCE, _Precedence);
-		private final @NonNull Property pr_Operation_raisedExceptions = createProperty(PivotPackage.Literals.OPERATION__RAISED_EXCEPTIONS, _Set_Type_NullFree);
-		private final @NonNull Property pr_Operation_redefinedOperations = createProperty(PivotPackage.Literals.OPERATION__REDEFINED_OPERATIONS, _Set_Operation_NullFree);
-		private final @NonNull Property pr_Operation_CallOperationAction_operation = createProperty("CallOperationAction", _Bag_CallOperationAction);
-		private final @NonNull Property pr_Operation_MessageType_referredOperation = createProperty("MessageType", _Bag_MessageType);
-		private final @NonNull Property pr_Operation_Operation_redefinedOperations = createProperty("Operation", _Bag_Operation);
-		private final @NonNull Property pr_Operation_OperationCallExp_referredOperation = createProperty("OperationCallExp", _Bag_OperationCallExp);
-		private final @NonNull Property pr_Operation_PrimitiveType_coercions = createProperty("PrimitiveType", _Bag_PrimitiveType);
+		private final @NonNull Property pr_Operation_raisedExceptions = createProperty(PivotPackage.Literals.OPERATION__RAISED_EXCEPTIONS, _Set_Type_T);
+		private final @NonNull Property pr_Operation_redefinedOperations = createProperty(PivotPackage.Literals.OPERATION__REDEFINED_OPERATIONS, _Set_Operation_T);
+		private final @NonNull Property pr_Operation_CallOperationAction_operation = createProperty("CallOperationAction", _Bag_CallOperationAction_F);
+		private final @NonNull Property pr_Operation_MessageType_referredOperation = createProperty("MessageType", _Bag_MessageType_F);
+		private final @NonNull Property pr_Operation_Operation_redefinedOperations = createProperty("Operation", _Bag_Operation_F);
+		private final @NonNull Property pr_Operation_OperationCallExp_referredOperation = createProperty("OperationCallExp", _Bag_OperationCallExp_F);
+		private final @NonNull Property pr_Operation_PrimitiveType_coercions = createProperty("PrimitiveType", _Bag_PrimitiveType_F);
 		private final @NonNull Property pr_OperationCallExp_isVirtual = createProperty(PivotPackage.Literals.OPERATION_CALL_EXP__IS_VIRTUAL, _Boolean);
-		private final @NonNull Property pr_OperationCallExp_ownedArguments = createProperty(PivotPackage.Literals.OPERATION_CALL_EXP__OWNED_ARGUMENTS, _OrderedSet_OCLExpression_NullFree);
+		private final @NonNull Property pr_OperationCallExp_ownedArguments = createProperty(PivotPackage.Literals.OPERATION_CALL_EXP__OWNED_ARGUMENTS, _OrderedSet_OCLExpression_T);
 		private final @NonNull Property pr_OperationCallExp_referredOperation = createProperty(PivotPackage.Literals.OPERATION_CALL_EXP__REFERRED_OPERATION, _Operation);
 		private final @NonNull Property pr_OppositePropertyCallExp_referredProperty = createProperty(PivotPackage.Literals.OPPOSITE_PROPERTY_CALL_EXP__REFERRED_PROPERTY, _Property);
-		private final @NonNull Property pr_OrphanCompletePackage_CompleteModel_orphanCompletePackage = createProperty("CompleteModel", _Bag_CompleteModel);
+		private final @NonNull Property pr_OrphanCompletePackage_CompleteModel_orphanCompletePackage = createProperty("CompleteModel", _Bag_CompleteModel_F);
 		private final @NonNull Property pr_Package_URI = createProperty(PivotPackage.Literals.PACKAGE__URI, _String);
-		private final @NonNull Property pr_Package_importedPackages = createProperty(PivotPackage.Literals.PACKAGE__IMPORTED_PACKAGES, _Set_Package_NullFree);
+		private final @NonNull Property pr_Package_importedPackages = createProperty(PivotPackage.Literals.PACKAGE__IMPORTED_PACKAGES, _Set_Package_T);
 		private final @NonNull Property pr_Package_nsPrefix = createProperty(PivotPackage.Literals.PACKAGE__NS_PREFIX, _String);
-		private final @NonNull Property pr_Package_ownedClasses = createProperty(PivotPackage.Literals.PACKAGE__OWNED_CLASSES, _Set_Class_NullFree);
-		private final @NonNull Property pr_Package_ownedInstances = createProperty(PivotPackage.Literals.PACKAGE__OWNED_INSTANCES, _Set_InstanceSpecification_NullFree);
-		private final @NonNull Property pr_Package_ownedPackages = createProperty(PivotPackage.Literals.PACKAGE__OWNED_PACKAGES, _Set_Package_NullFree);
-		private final @NonNull Property pr_Package_ownedProfileApplications = createProperty(PivotPackage.Literals.PACKAGE__OWNED_PROFILE_APPLICATIONS, _Set_ProfileApplication_NullFree);
+		private final @NonNull Property pr_Package_ownedClasses = createProperty(PivotPackage.Literals.PACKAGE__OWNED_CLASSES, _Set_Class_T);
+		private final @NonNull Property pr_Package_ownedInstances = createProperty(PivotPackage.Literals.PACKAGE__OWNED_INSTANCES, _Set_InstanceSpecification_T);
+		private final @NonNull Property pr_Package_ownedPackages = createProperty(PivotPackage.Literals.PACKAGE__OWNED_PACKAGES, _Set_Package_T);
+		private final @NonNull Property pr_Package_ownedProfileApplications = createProperty(PivotPackage.Literals.PACKAGE__OWNED_PROFILE_APPLICATIONS, _Set_ProfileApplication_T);
 		private final @NonNull Property pr_Package_owningPackage = createProperty(PivotPackage.Literals.PACKAGE__OWNING_PACKAGE, _Package);
-		private final @NonNull Property pr_Package_CompletePackage_partialPackages = createProperty("CompletePackage", _Bag_CompletePackage);
+		private final @NonNull Property pr_Package_CompletePackage_partialPackages = createProperty("CompletePackage", _Bag_CompletePackage_F);
 		private final @NonNull Property pr_Package_Model_ownedPackages = createProperty("Model", _Model);
-		private final @NonNull Property pr_Package_Package_importedPackages = createProperty("Package", _Bag_Package);
+		private final @NonNull Property pr_Package_Package_importedPackages = createProperty("Package", _Bag_Package_F);
 		private final @NonNull Property pr_Parameter_isTypeof = createProperty(PivotPackage.Literals.PARAMETER__IS_TYPEOF, _Boolean);
 		private final @NonNull Property pr_Parameter_owningOperation = createProperty(PivotPackage.Literals.PARAMETER__OWNING_OPERATION, _Operation);
 		private final @NonNull Property pr_Parameter_Iteration_ownedAccumulators = createProperty("Iteration", _Iteration);
 		private final @NonNull Property pr_Parameter_Iteration_ownedIterators = createProperty("Iteration", _Iteration);
-		private final @NonNull Property pr_Parameter_Variable_representedParameter = createProperty("Variable", _Bag_Variable);
+		private final @NonNull Property pr_Parameter_Variable_representedParameter = createProperty("Variable", _Bag_Variable_F);
 		private final @NonNull Property pr_Precedence_associativity = createProperty(PivotPackage.Literals.PRECEDENCE__ASSOCIATIVITY, _AssociativityKind);
 		private final @NonNull Property pr_Precedence_order = createProperty(PivotPackage.Literals.PRECEDENCE__ORDER, _Integer);
 		private final @NonNull Property pr_Precedence_Library_ownedPrecedences = createProperty("Library", _Library);
-		private final @NonNull Property pr_Precedence_Operation_precedence = createProperty("Operation", _Bag_Operation);
-		private final @NonNull Property pr_PrimitiveCompletePackage_CompleteModel_primitiveCompletePackage = createProperty("CompleteModel", _Bag_CompleteModel);
-		private final @NonNull Property pr_PrimitiveType_coercions = createProperty(PivotPackage.Literals.PRIMITIVE_TYPE__COERCIONS, _OrderedSet_Operation_NullFree);
-		private final @NonNull Property pr_Profile_profileApplications = createProperty(PivotPackage.Literals.PROFILE__PROFILE_APPLICATIONS, _Set_ProfileApplication_NullFree);
+		private final @NonNull Property pr_Precedence_Operation_precedence = createProperty("Operation", _Bag_Operation_F);
+		private final @NonNull Property pr_PrimitiveCompletePackage_CompleteModel_primitiveCompletePackage = createProperty("CompleteModel", _Bag_CompleteModel_F);
+		private final @NonNull Property pr_PrimitiveType_coercions = createProperty(PivotPackage.Literals.PRIMITIVE_TYPE__COERCIONS, _OrderedSet_Operation_T);
+		private final @NonNull Property pr_Profile_profileApplications = createProperty(PivotPackage.Literals.PROFILE__PROFILE_APPLICATIONS, _Set_ProfileApplication_T);
 		private final @NonNull Property pr_ProfileApplication_appliedProfile = createProperty(PivotPackage.Literals.PROFILE_APPLICATION__APPLIED_PROFILE, _Profile);
 		private final @NonNull Property pr_ProfileApplication_isStrict = createProperty(PivotPackage.Literals.PROFILE_APPLICATION__IS_STRICT, _Boolean);
 		private final @NonNull Property pr_ProfileApplication_owningPackage = createProperty(PivotPackage.Literals.PROFILE_APPLICATION__OWNING_PACKAGE, _Package);
@@ -2641,122 +2641,122 @@
 		private final @NonNull Property pr_Property_isTransient = createProperty(PivotPackage.Literals.PROPERTY__IS_TRANSIENT, _Boolean);
 		private final @NonNull Property pr_Property_isUnsettable = createProperty(PivotPackage.Literals.PROPERTY__IS_UNSETTABLE, _Boolean);
 		private final @NonNull Property pr_Property_isVolatile = createProperty(PivotPackage.Literals.PROPERTY__IS_VOLATILE, _Boolean);
-		private final @NonNull Property pr_Property_keys = createProperty(PivotPackage.Literals.PROPERTY__KEYS, _Set_Property_NullFree);
+		private final @NonNull Property pr_Property_keys = createProperty(PivotPackage.Literals.PROPERTY__KEYS, _Set_Property_T);
 		private final @NonNull Property pr_Property_opposite = createProperty(PivotPackage.Literals.PROPERTY__OPPOSITE, _Property);
 		private final @NonNull Property pr_Property_ownedExpression = createProperty(PivotPackage.Literals.PROPERTY__OWNED_EXPRESSION, _LanguageExpression);
 		private final @NonNull Property pr_Property_owningClass = createProperty(PivotPackage.Literals.PROPERTY__OWNING_CLASS, _Class);
-		private final @NonNull Property pr_Property_redefinedProperties = createProperty(PivotPackage.Literals.PROPERTY__REDEFINED_PROPERTIES, _Set_Property_NullFree);
+		private final @NonNull Property pr_Property_redefinedProperties = createProperty(PivotPackage.Literals.PROPERTY__REDEFINED_PROPERTIES, _Set_Property_T);
 		private final @NonNull Property pr_Property_referredProperty = createProperty(PivotPackage.Literals.PROPERTY__REFERRED_PROPERTY, _Property);
-		private final @NonNull Property pr_Property_subsettedProperty = createProperty(PivotPackage.Literals.PROPERTY__SUBSETTED_PROPERTY, _Set_Property_NullFree);
-		private final @NonNull Property pr_Property_DynamicProperty_referredProperty = createProperty("DynamicProperty", _Bag_DynamicProperty);
-		private final @NonNull Property pr_Property_NavigationCallExp_navigationSource = createProperty("NavigationCallExp", _Bag_NavigationCallExp);
-		private final @NonNull Property pr_Property_OppositePropertyCallExp_referredProperty = createProperty("OppositePropertyCallExp", _Bag_OppositePropertyCallExp);
-		private final @NonNull Property pr_Property_Property_keys = createProperty("Property", _Bag_Property);
-		private final @NonNull Property pr_Property_Property_opposite = createProperty("Property", _Bag_Property);
-		private final @NonNull Property pr_Property_Property_redefinedProperties = createProperty("Property", _Bag_Property);
-		private final @NonNull Property pr_Property_Property_referredProperty = createProperty("Property", _Bag_Property);
-		private final @NonNull Property pr_Property_Property_subsettedProperty = createProperty("Property", _Bag_Property);
-		private final @NonNull Property pr_Property_PropertyCallExp_referredProperty = createProperty("PropertyCallExp", _Bag_PropertyCallExp);
-		private final @NonNull Property pr_Property_ShadowPart_referredProperty = createProperty("ShadowPart", _Bag_ShadowPart);
-		private final @NonNull Property pr_Property_Slot_definingProperty = createProperty("Slot", _Bag_Slot);
+		private final @NonNull Property pr_Property_subsettedProperty = createProperty(PivotPackage.Literals.PROPERTY__SUBSETTED_PROPERTY, _Set_Property_T);
+		private final @NonNull Property pr_Property_DynamicProperty_referredProperty = createProperty("DynamicProperty", _Bag_DynamicProperty_F);
+		private final @NonNull Property pr_Property_NavigationCallExp_navigationSource = createProperty("NavigationCallExp", _Bag_NavigationCallExp_F);
+		private final @NonNull Property pr_Property_OppositePropertyCallExp_referredProperty = createProperty("OppositePropertyCallExp", _Bag_OppositePropertyCallExp_F);
+		private final @NonNull Property pr_Property_Property_keys = createProperty("Property", _Bag_Property_F);
+		private final @NonNull Property pr_Property_Property_opposite = createProperty("Property", _Bag_Property_F);
+		private final @NonNull Property pr_Property_Property_redefinedProperties = createProperty("Property", _Bag_Property_F);
+		private final @NonNull Property pr_Property_Property_referredProperty = createProperty("Property", _Bag_Property_F);
+		private final @NonNull Property pr_Property_Property_subsettedProperty = createProperty("Property", _Bag_Property_F);
+		private final @NonNull Property pr_Property_PropertyCallExp_referredProperty = createProperty("PropertyCallExp", _Bag_PropertyCallExp_F);
+		private final @NonNull Property pr_Property_ShadowPart_referredProperty = createProperty("ShadowPart", _Bag_ShadowPart_F);
+		private final @NonNull Property pr_Property_Slot_definingProperty = createProperty("Slot", _Bag_Slot_F);
 		private final @NonNull Property pr_PropertyCallExp_referredProperty = createProperty(PivotPackage.Literals.PROPERTY_CALL_EXP__REFERRED_PROPERTY, _Property);
 		private final @NonNull Property pr_Pseudostate_kind = createProperty(PivotPackage.Literals.PSEUDOSTATE__KIND, _PseudostateKind);
 		private final @NonNull Property pr_Pseudostate_owningState = createProperty(PivotPackage.Literals.PSEUDOSTATE__OWNING_STATE, _State);
 		private final @NonNull Property pr_Pseudostate_owningStateMachine = createProperty(PivotPackage.Literals.PSEUDOSTATE__OWNING_STATE_MACHINE, _StateMachine);
-		private final @NonNull Property pr_Pseudostate_ConnectionPointReference_entries = createProperty("ConnectionPointReference", _Bag_ConnectionPointReference);
-		private final @NonNull Property pr_Pseudostate_ConnectionPointReference_exits = createProperty("ConnectionPointReference", _Bag_ConnectionPointReference);
+		private final @NonNull Property pr_Pseudostate_ConnectionPointReference_entries = createProperty("ConnectionPointReference", _Bag_ConnectionPointReference_F);
+		private final @NonNull Property pr_Pseudostate_ConnectionPointReference_exits = createProperty("ConnectionPointReference", _Bag_ConnectionPointReference_F);
 		private final @NonNull Property pr_RealLiteralExp_realSymbol = createProperty(PivotPackage.Literals.REAL_LITERAL_EXP__REAL_SYMBOL, _Real);
 		private final @NonNull Property pr_Region_extendedRegion = createProperty(PivotPackage.Literals.REGION__EXTENDED_REGION, _Region);
-		private final @NonNull Property pr_Region_ownedSubvertexes = createProperty(PivotPackage.Literals.REGION__OWNED_SUBVERTEXES, _Set_Vertex_NullFree);
-		private final @NonNull Property pr_Region_ownedTransitions = createProperty(PivotPackage.Literals.REGION__OWNED_TRANSITIONS, _Set_Transition_NullFree);
+		private final @NonNull Property pr_Region_ownedSubvertexes = createProperty(PivotPackage.Literals.REGION__OWNED_SUBVERTEXES, _Set_Vertex_T);
+		private final @NonNull Property pr_Region_ownedTransitions = createProperty(PivotPackage.Literals.REGION__OWNED_TRANSITIONS, _Set_Transition_T);
 		private final @NonNull Property pr_Region_owningState = createProperty(PivotPackage.Literals.REGION__OWNING_STATE, _State);
 		private final @NonNull Property pr_Region_owningStateMachine = createProperty(PivotPackage.Literals.REGION__OWNING_STATE_MACHINE, _StateMachine);
-		private final @NonNull Property pr_Region_Region_extendedRegion = createProperty("Region", _Bag_Region);
+		private final @NonNull Property pr_Region_Region_extendedRegion = createProperty("Region", _Bag_Region_F);
 		private final @NonNull Property pr_SendSignalAction_signal = createProperty(PivotPackage.Literals.SEND_SIGNAL_ACTION__SIGNAL, _Signal);
 		private final @NonNull Property pr_SendSignalAction_MessageExp_ownedSentSignal = createProperty("MessageExp", _MessageExp);
-		private final @NonNull Property pr_ShadowExp_ownedParts = createProperty(PivotPackage.Literals.SHADOW_EXP__OWNED_PARTS, _OrderedSet_ShadowPart_NullFree);
+		private final @NonNull Property pr_ShadowExp_ownedParts = createProperty(PivotPackage.Literals.SHADOW_EXP__OWNED_PARTS, _OrderedSet_ShadowPart_T);
 		private final @NonNull Property pr_ShadowExp_value = createProperty(PivotPackage.Literals.SHADOW_EXP__VALUE, _String);
 		private final @NonNull Property pr_ShadowPart_ownedInit = createProperty(PivotPackage.Literals.SHADOW_PART__OWNED_INIT, _OCLExpression);
 		private final @NonNull Property pr_ShadowPart_referredProperty = createProperty(PivotPackage.Literals.SHADOW_PART__REFERRED_PROPERTY, _Property);
 		private final @NonNull Property pr_ShadowPart_ShadowExp_ownedParts = createProperty("ShadowExp", _ShadowExp);
-		private final @NonNull Property pr_Signal_MessageType_referredSignal = createProperty("MessageType", _Bag_MessageType);
-		private final @NonNull Property pr_Signal_SendSignalAction_signal = createProperty("SendSignalAction", _Bag_SendSignalAction);
+		private final @NonNull Property pr_Signal_MessageType_referredSignal = createProperty("MessageType", _Bag_MessageType_F);
+		private final @NonNull Property pr_Signal_SendSignalAction_signal = createProperty("SendSignalAction", _Bag_SendSignalAction_F);
 		private final @NonNull Property pr_Slot_definingProperty = createProperty(PivotPackage.Literals.SLOT__DEFINING_PROPERTY, _Property);
-		private final @NonNull Property pr_Slot_ownedValues = createProperty(PivotPackage.Literals.SLOT__OWNED_VALUES, _OrderedSet_ValueSpecification_NullFree);
+		private final @NonNull Property pr_Slot_ownedValues = createProperty(PivotPackage.Literals.SLOT__OWNED_VALUES, _OrderedSet_ValueSpecification_T);
 		private final @NonNull Property pr_Slot_owningInstance = createProperty(PivotPackage.Literals.SLOT__OWNING_INSTANCE, _InstanceSpecification);
 		private final @NonNull Property pr_StandardLibrary_owningCompleteEnvironment = createProperty(PivotPackage.Literals.STANDARD_LIBRARY__OWNING_COMPLETE_ENVIRONMENT, _CompleteEnvironment);
 		private final @NonNull Property pr_State_isComposite = createProperty(PivotPackage.Literals.STATE__IS_COMPOSITE, _Boolean);
 		private final @NonNull Property pr_State_isOrthogonal = createProperty(PivotPackage.Literals.STATE__IS_ORTHOGONAL, _Boolean);
 		private final @NonNull Property pr_State_isSimple = createProperty(PivotPackage.Literals.STATE__IS_SIMPLE, _Boolean);
 		private final @NonNull Property pr_State_isSubmachineState = createProperty(PivotPackage.Literals.STATE__IS_SUBMACHINE_STATE, _Boolean);
-		private final @NonNull Property pr_State_ownedConnectionPoints = createProperty(PivotPackage.Literals.STATE__OWNED_CONNECTION_POINTS, _Set_Pseudostate_NullFree);
-		private final @NonNull Property pr_State_ownedConnections = createProperty(PivotPackage.Literals.STATE__OWNED_CONNECTIONS, _Set_ConnectionPointReference_NullFree);
-		private final @NonNull Property pr_State_ownedDeferrableTriggers = createProperty(PivotPackage.Literals.STATE__OWNED_DEFERRABLE_TRIGGERS, _Set_Trigger_NullFree);
+		private final @NonNull Property pr_State_ownedConnectionPoints = createProperty(PivotPackage.Literals.STATE__OWNED_CONNECTION_POINTS, _Set_Pseudostate_T);
+		private final @NonNull Property pr_State_ownedConnections = createProperty(PivotPackage.Literals.STATE__OWNED_CONNECTIONS, _Set_ConnectionPointReference_T);
+		private final @NonNull Property pr_State_ownedDeferrableTriggers = createProperty(PivotPackage.Literals.STATE__OWNED_DEFERRABLE_TRIGGERS, _Set_Trigger_T);
 		private final @NonNull Property pr_State_ownedDoActivity = createProperty(PivotPackage.Literals.STATE__OWNED_DO_ACTIVITY, _Behavior);
 		private final @NonNull Property pr_State_ownedEntry = createProperty(PivotPackage.Literals.STATE__OWNED_ENTRY, _Behavior);
 		private final @NonNull Property pr_State_ownedExit = createProperty(PivotPackage.Literals.STATE__OWNED_EXIT, _Behavior);
-		private final @NonNull Property pr_State_ownedRegions = createProperty(PivotPackage.Literals.STATE__OWNED_REGIONS, _Set_Region_NullFree);
+		private final @NonNull Property pr_State_ownedRegions = createProperty(PivotPackage.Literals.STATE__OWNED_REGIONS, _Set_Region_T);
 		private final @NonNull Property pr_State_ownedStateInvariant = createProperty(PivotPackage.Literals.STATE__OWNED_STATE_INVARIANT, _Constraint);
 		private final @NonNull Property pr_State_redefinedState = createProperty(PivotPackage.Literals.STATE__REDEFINED_STATE, _State);
 		private final @NonNull Property pr_State_submachines = createProperty(PivotPackage.Literals.STATE__SUBMACHINES, _StateMachine);
-		private final @NonNull Property pr_State_State_redefinedState = createProperty("State", _Bag_State);
-		private final @NonNull Property pr_State_StateExp_referredState = createProperty("StateExp", _Bag_StateExp);
+		private final @NonNull Property pr_State_State_redefinedState = createProperty("State", _Bag_State_F);
+		private final @NonNull Property pr_State_StateExp_referredState = createProperty("StateExp", _Bag_StateExp_F);
 		private final @NonNull Property pr_StateExp_referredState = createProperty(PivotPackage.Literals.STATE_EXP__REFERRED_STATE, _State);
-		private final @NonNull Property pr_StateMachine_extendedStateMachines = createProperty(PivotPackage.Literals.STATE_MACHINE__EXTENDED_STATE_MACHINES, _Set_StateMachine_NullFree);
-		private final @NonNull Property pr_StateMachine_ownedConnectionPoints = createProperty(PivotPackage.Literals.STATE_MACHINE__OWNED_CONNECTION_POINTS, _Set_Pseudostate_NullFree);
-		private final @NonNull Property pr_StateMachine_ownedRegions = createProperty(PivotPackage.Literals.STATE_MACHINE__OWNED_REGIONS, _Set_Region_NullFree_1);
-		private final @NonNull Property pr_StateMachine_submachineStates = createProperty(PivotPackage.Literals.STATE_MACHINE__SUBMACHINE_STATES, _Set_State_NullFree);
-		private final @NonNull Property pr_StateMachine_StateMachine_extendedStateMachines = createProperty("StateMachine", _Bag_StateMachine);
-		private final @NonNull Property pr_Stereotype_ownedExtenders = createProperty(PivotPackage.Literals.STEREOTYPE__OWNED_EXTENDERS, _Set_StereotypeExtender_NullFree);
-		private final @NonNull Property pr_Stereotype_ElementExtension_stereotype = createProperty("ElementExtension", _Bag_ElementExtension);
+		private final @NonNull Property pr_StateMachine_extendedStateMachines = createProperty(PivotPackage.Literals.STATE_MACHINE__EXTENDED_STATE_MACHINES, _Set_StateMachine_T);
+		private final @NonNull Property pr_StateMachine_ownedConnectionPoints = createProperty(PivotPackage.Literals.STATE_MACHINE__OWNED_CONNECTION_POINTS, _Set_Pseudostate_T);
+		private final @NonNull Property pr_StateMachine_ownedRegions = createProperty(PivotPackage.Literals.STATE_MACHINE__OWNED_REGIONS, _Set_Region_T_L1);
+		private final @NonNull Property pr_StateMachine_submachineStates = createProperty(PivotPackage.Literals.STATE_MACHINE__SUBMACHINE_STATES, _Set_State_T);
+		private final @NonNull Property pr_StateMachine_StateMachine_extendedStateMachines = createProperty("StateMachine", _Bag_StateMachine_F);
+		private final @NonNull Property pr_Stereotype_ownedExtenders = createProperty(PivotPackage.Literals.STEREOTYPE__OWNED_EXTENDERS, _Set_StereotypeExtender_T);
+		private final @NonNull Property pr_Stereotype_ElementExtension_stereotype = createProperty("ElementExtension", _Bag_ElementExtension_F);
 		private final @NonNull Property pr_StereotypeExtender_class = createProperty(PivotPackage.Literals.STEREOTYPE_EXTENDER__CLASS, _Class);
 		private final @NonNull Property pr_StereotypeExtender_isRequired = createProperty(PivotPackage.Literals.STEREOTYPE_EXTENDER__IS_REQUIRED, _Boolean);
 		private final @NonNull Property pr_StereotypeExtender_owningStereotype = createProperty(PivotPackage.Literals.STEREOTYPE_EXTENDER__OWNING_STEREOTYPE, _Stereotype);
 		private final @NonNull Property pr_StringLiteralExp_stringSymbol = createProperty(PivotPackage.Literals.STRING_LITERAL_EXP__STRING_SYMBOL, _String);
-		private final @NonNull Property pr_TemplateBinding_ownedSubstitutions = createProperty(PivotPackage.Literals.TEMPLATE_BINDING__OWNED_SUBSTITUTIONS, _Set_TemplateParameterSubstitution_NullFree);
+		private final @NonNull Property pr_TemplateBinding_ownedSubstitutions = createProperty(PivotPackage.Literals.TEMPLATE_BINDING__OWNED_SUBSTITUTIONS, _Set_TemplateParameterSubstitution_T_L1);
 		private final @NonNull Property pr_TemplateBinding_owningElement = createProperty(PivotPackage.Literals.TEMPLATE_BINDING__OWNING_ELEMENT, _TemplateableElement);
 		private final @NonNull Property pr_TemplateBinding_templateSignature = createProperty(PivotPackage.Literals.TEMPLATE_BINDING__TEMPLATE_SIGNATURE, _TemplateSignature);
-		private final @NonNull Property pr_TemplateParameter_constrainingClasses = createProperty(PivotPackage.Literals.TEMPLATE_PARAMETER__CONSTRAINING_CLASSES, _Set_Class_NullFree);
+		private final @NonNull Property pr_TemplateParameter_constrainingClasses = createProperty(PivotPackage.Literals.TEMPLATE_PARAMETER__CONSTRAINING_CLASSES, _Set_Class_T);
 		private final @NonNull Property pr_TemplateParameter_owningSignature = createProperty(PivotPackage.Literals.TEMPLATE_PARAMETER__OWNING_SIGNATURE, _TemplateSignature);
-		private final @NonNull Property pr_TemplateParameter_TemplateParameterSubstitution_formal = createProperty("TemplateParameterSubstitution", _Bag_TemplateParameterSubstitution);
+		private final @NonNull Property pr_TemplateParameter_TemplateParameterSubstitution_formal = createProperty("TemplateParameterSubstitution", _Bag_TemplateParameterSubstitution_F);
 		private final @NonNull Property pr_TemplateParameterSubstitution_actual = createProperty(PivotPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__ACTUAL, _Type);
 		private final @NonNull Property pr_TemplateParameterSubstitution_formal = createProperty(PivotPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL, _TemplateParameter);
 		private final @NonNull Property pr_TemplateParameterSubstitution_ownedWildcard = createProperty(PivotPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__OWNED_WILDCARD, _WildcardType);
 		private final @NonNull Property pr_TemplateParameterSubstitution_owningBinding = createProperty(PivotPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__OWNING_BINDING, _TemplateBinding);
-		private final @NonNull Property pr_TemplateSignature_ownedParameters = createProperty(PivotPackage.Literals.TEMPLATE_SIGNATURE__OWNED_PARAMETERS, _OrderedSet_TemplateParameter_NullFree);
+		private final @NonNull Property pr_TemplateSignature_ownedParameters = createProperty(PivotPackage.Literals.TEMPLATE_SIGNATURE__OWNED_PARAMETERS, _OrderedSet_TemplateParameter_T_L1);
 		private final @NonNull Property pr_TemplateSignature_owningElement = createProperty(PivotPackage.Literals.TEMPLATE_SIGNATURE__OWNING_ELEMENT, _TemplateableElement);
-		private final @NonNull Property pr_TemplateSignature_TemplateBinding_templateSignature = createProperty("TemplateBinding", _Bag_TemplateBinding);
-		private final @NonNull Property pr_TemplateableElement_ownedBindings = createProperty(PivotPackage.Literals.TEMPLATEABLE_ELEMENT__OWNED_BINDINGS, _Set_TemplateBinding_NullFree);
+		private final @NonNull Property pr_TemplateSignature_TemplateBinding_templateSignature = createProperty("TemplateBinding", _Bag_TemplateBinding_F);
+		private final @NonNull Property pr_TemplateableElement_ownedBindings = createProperty(PivotPackage.Literals.TEMPLATEABLE_ELEMENT__OWNED_BINDINGS, _Set_TemplateBinding_T);
 		private final @NonNull Property pr_TemplateableElement_ownedSignature = createProperty(PivotPackage.Literals.TEMPLATEABLE_ELEMENT__OWNED_SIGNATURE, _TemplateSignature);
 		private final @NonNull Property pr_TemplateableElement_unspecializedElement = createProperty(PivotPackage.Literals.TEMPLATEABLE_ELEMENT__UNSPECIALIZED_ELEMENT, _TemplateableElement);
-		private final @NonNull Property pr_TemplateableElement_TemplateableElement_unspecializedElement = createProperty("TemplateableElement", _Bag_TemplateableElement);
+		private final @NonNull Property pr_TemplateableElement_TemplateableElement_unspecializedElement = createProperty("TemplateableElement", _Bag_TemplateableElement_F);
 		private final @NonNull Property pr_Transition_kind = createProperty(PivotPackage.Literals.TRANSITION__KIND, _TransitionKind);
 		private final @NonNull Property pr_Transition_ownedEffect = createProperty(PivotPackage.Literals.TRANSITION__OWNED_EFFECT, _Behavior);
 		private final @NonNull Property pr_Transition_ownedGuard = createProperty(PivotPackage.Literals.TRANSITION__OWNED_GUARD, _Constraint);
-		private final @NonNull Property pr_Transition_ownedTriggers = createProperty(PivotPackage.Literals.TRANSITION__OWNED_TRIGGERS, _Set_Trigger_NullFree);
+		private final @NonNull Property pr_Transition_ownedTriggers = createProperty(PivotPackage.Literals.TRANSITION__OWNED_TRIGGERS, _Set_Trigger_T);
 		private final @NonNull Property pr_Transition_owningRegion = createProperty(PivotPackage.Literals.TRANSITION__OWNING_REGION, _Region);
 		private final @NonNull Property pr_Transition_source = createProperty(PivotPackage.Literals.TRANSITION__SOURCE, _Vertex);
 		private final @NonNull Property pr_Transition_target = createProperty(PivotPackage.Literals.TRANSITION__TARGET, _Vertex);
 		private final @NonNull Property pr_Trigger_owningState = createProperty(PivotPackage.Literals.TRIGGER__OWNING_STATE, _State);
 		private final @NonNull Property pr_Trigger_owningTransition = createProperty(PivotPackage.Literals.TRIGGER__OWNING_TRANSITION, _Transition);
-		private final @NonNull Property pr_TupleLiteralExp_ownedParts = createProperty(PivotPackage.Literals.TUPLE_LITERAL_EXP__OWNED_PARTS, _OrderedSet_TupleLiteralPart_NullFree);
+		private final @NonNull Property pr_TupleLiteralExp_ownedParts = createProperty(PivotPackage.Literals.TUPLE_LITERAL_EXP__OWNED_PARTS, _OrderedSet_TupleLiteralPart_T);
 		private final @NonNull Property pr_TupleLiteralPart_ownedInit = createProperty(PivotPackage.Literals.TUPLE_LITERAL_PART__OWNED_INIT, _OCLExpression);
 		private final @NonNull Property pr_TupleLiteralPart_TupleLiteralExp_ownedParts = createProperty("TupleLiteralExp", _TupleLiteralExp);
-		private final @NonNull Property pr_Type_CollectionType_elementType = createProperty("CollectionType", _Bag_CollectionType);
-		private final @NonNull Property pr_Type_DynamicElement_metaType = createProperty("DynamicElement", _Bag_DynamicElement);
-		private final @NonNull Property pr_Type_LambdaType_contextType = createProperty("LambdaType", _Bag_LambdaType);
-		private final @NonNull Property pr_Type_LambdaType_parameterType = createProperty("LambdaType", _Bag_LambdaType);
-		private final @NonNull Property pr_Type_LambdaType_resultType = createProperty("LambdaType", _Bag_LambdaType);
-		private final @NonNull Property pr_Type_MapType_keyType = createProperty("MapType", _Bag_MapType);
-		private final @NonNull Property pr_Type_MapType_valueType = createProperty("MapType", _Bag_MapType);
-		private final @NonNull Property pr_Type_OCLExpression_typeValue = createProperty("OCLExpression", _Bag_OCLExpression);
-		private final @NonNull Property pr_Type_Operation_raisedExceptions = createProperty("Operation", _Bag_Operation);
-		private final @NonNull Property pr_Type_TemplateParameterSubstitution_actual = createProperty("TemplateParameterSubstitution", _Bag_TemplateParameterSubstitution);
-		private final @NonNull Property pr_Type_TypeExp_referredType = createProperty("TypeExp", _Bag_TypeExp);
-		private final @NonNull Property pr_Type_TypedElement_type = createProperty("TypedElement", _Bag_TypedElement);
-		private final @NonNull Property pr_Type_VariableDeclaration_typeValue = createProperty("VariableDeclaration", _Bag_VariableDeclaration);
-		private final @NonNull Property pr_Type_WildcardType_lowerBound = createProperty("WildcardType", _Bag_WildcardType);
-		private final @NonNull Property pr_Type_WildcardType_upperBound = createProperty("WildcardType", _Bag_WildcardType);
+		private final @NonNull Property pr_Type_CollectionType_elementType = createProperty("CollectionType", _Bag_CollectionType_F);
+		private final @NonNull Property pr_Type_DynamicElement_metaType = createProperty("DynamicElement", _Bag_DynamicElement_F);
+		private final @NonNull Property pr_Type_LambdaType_contextType = createProperty("LambdaType", _Bag_LambdaType_F);
+		private final @NonNull Property pr_Type_LambdaType_parameterType = createProperty("LambdaType", _Bag_LambdaType_F);
+		private final @NonNull Property pr_Type_LambdaType_resultType = createProperty("LambdaType", _Bag_LambdaType_F);
+		private final @NonNull Property pr_Type_MapType_keyType = createProperty("MapType", _Bag_MapType_F);
+		private final @NonNull Property pr_Type_MapType_valueType = createProperty("MapType", _Bag_MapType_F);
+		private final @NonNull Property pr_Type_OCLExpression_typeValue = createProperty("OCLExpression", _Bag_OCLExpression_F);
+		private final @NonNull Property pr_Type_Operation_raisedExceptions = createProperty("Operation", _Bag_Operation_F);
+		private final @NonNull Property pr_Type_TemplateParameterSubstitution_actual = createProperty("TemplateParameterSubstitution", _Bag_TemplateParameterSubstitution_F);
+		private final @NonNull Property pr_Type_TypeExp_referredType = createProperty("TypeExp", _Bag_TypeExp_F);
+		private final @NonNull Property pr_Type_TypedElement_type = createProperty("TypedElement", _Bag_TypedElement_F);
+		private final @NonNull Property pr_Type_VariableDeclaration_typeValue = createProperty("VariableDeclaration", _Bag_VariableDeclaration_F);
+		private final @NonNull Property pr_Type_WildcardType_lowerBound = createProperty("WildcardType", _Bag_WildcardType_F);
+		private final @NonNull Property pr_Type_WildcardType_upperBound = createProperty("WildcardType", _Bag_WildcardType_F);
 		private final @NonNull Property pr_TypeExp_referredType = createProperty(PivotPackage.Literals.TYPE_EXP__REFERRED_TYPE, _Type);
 		private final @NonNull Property pr_TypedElement_isMany = createProperty(PivotPackage.Literals.TYPED_ELEMENT__IS_MANY, _Boolean);
 		private final @NonNull Property pr_TypedElement_isRequired = createProperty(PivotPackage.Literals.TYPED_ELEMENT__IS_REQUIRED, _Boolean);
@@ -2773,11 +2773,11 @@
 		private final @NonNull Property pr_Variable_LetExp_ownedVariable = createProperty("LetExp", _LetExp);
 		private final @NonNull Property pr_Variable_LoopExp_ownedIterators = createProperty("LoopExp", _LoopExp);
 		private final @NonNull Property pr_VariableDeclaration_typeValue = createProperty(PivotPackage.Literals.VARIABLE_DECLARATION__TYPE_VALUE, _Type);
-		private final @NonNull Property pr_VariableDeclaration_VariableExp_referredVariable = createProperty("VariableExp", _Bag_VariableExp);
+		private final @NonNull Property pr_VariableDeclaration_VariableExp_referredVariable = createProperty("VariableExp", _Bag_VariableExp_F);
 		private final @NonNull Property pr_VariableExp_isImplicit = createProperty(PivotPackage.Literals.VARIABLE_EXP__IS_IMPLICIT, _Boolean);
 		private final @NonNull Property pr_VariableExp_referredVariable = createProperty(PivotPackage.Literals.VARIABLE_EXP__REFERRED_VARIABLE, _VariableDeclaration);
-		private final @NonNull Property pr_Vertex_incomingTransitions = createProperty(PivotPackage.Literals.VERTEX__INCOMING_TRANSITIONS, _Set_Transition_NullFree);
-		private final @NonNull Property pr_Vertex_outgoingTransitions = createProperty(PivotPackage.Literals.VERTEX__OUTGOING_TRANSITIONS, _Set_Transition_NullFree);
+		private final @NonNull Property pr_Vertex_incomingTransitions = createProperty(PivotPackage.Literals.VERTEX__INCOMING_TRANSITIONS, _Set_Transition_T);
+		private final @NonNull Property pr_Vertex_outgoingTransitions = createProperty(PivotPackage.Literals.VERTEX__OUTGOING_TRANSITIONS, _Set_Transition_T);
 		private final @NonNull Property pr_Vertex_owningRegion = createProperty(PivotPackage.Literals.VERTEX__OWNING_REGION, _Region);
 		private final @NonNull Property pr_WildcardType_lowerBound = createProperty(PivotPackage.Literals.WILDCARD_TYPE__LOWER_BOUND, _Type);
 		private final @NonNull Property pr_WildcardType_upperBound = createProperty(PivotPackage.Literals.WILDCARD_TYPE__UPPER_BOUND, _Type);
@@ -4541,230 +4541,230 @@
 		}
 
 		private void installTemplateBindings() {
-			addBinding(_Bag_Annotation, _Annotation);
-			addBinding(_Bag_AssociationClassCallExp, _AssociationClassCallExp);
-			addBinding(_Bag_CallOperationAction, _CallOperationAction);
-			addBinding(_Bag_Class, _Class);
-			addBinding(_Bag_CollectionType, _CollectionType);
-			addBinding(_Bag_CompleteClass, _CompleteClass);
-			addBinding(_Bag_CompleteModel, _CompleteModel);
-			addBinding(_Bag_CompletePackage, _CompletePackage);
-			addBinding(_Bag_ConnectionPointReference, _ConnectionPointReference);
-			addBinding(_Bag_Constraint, _Constraint);
-			addBinding(_Bag_DataType, _DataType);
-			addBinding(_Bag_DynamicElement, _DynamicElement);
-			addBinding(_Bag_DynamicProperty, _DynamicProperty);
-			addBinding(_Bag_ElementExtension, _ElementExtension);
-			addBinding(_Bag_EnumLiteralExp, _EnumLiteralExp);
-			addBinding(_Bag_Import, _Import);
-			addBinding(_Bag_InstanceSpecification, _InstanceSpecification);
-			addBinding(_Bag_LambdaType, _LambdaType);
-			addBinding(_Bag_LoopExp, _LoopExp);
-			addBinding(_Bag_MapType, _MapType);
-			addBinding(_Bag_MessageType, _MessageType);
-			addBinding(_Bag_NavigationCallExp, _NavigationCallExp);
-			addBinding(_Bag_OCLExpression, _OCLExpression);
-			addBinding(_Bag_Operation, _Operation);
-			addBinding(_Bag_OperationCallExp, _OperationCallExp);
-			addBinding(_Bag_OppositePropertyCallExp, _OppositePropertyCallExp);
-			addBinding(_Bag_Package, _Package);
-			addBinding(_Bag_PrimitiveType, _PrimitiveType);
-			addBinding(_Bag_Property, _Property);
-			addBinding(_Bag_PropertyCallExp, _PropertyCallExp);
-			addBinding(_Bag_Region, _Region);
-			addBinding(_Bag_SendSignalAction, _SendSignalAction);
-			addBinding(_Bag_ShadowPart, _ShadowPart);
-			addBinding(_Bag_Slot, _Slot);
-			addBinding(_Bag_State, _State);
-			addBinding(_Bag_StateExp, _StateExp);
-			addBinding(_Bag_StateMachine, _StateMachine);
-			addBinding(_Bag_TemplateBinding, _TemplateBinding);
-			addBinding(_Bag_TemplateParameter, _TemplateParameter);
-			addBinding(_Bag_TemplateParameterSubstitution, _TemplateParameterSubstitution);
-			addBinding(_Bag_TemplateableElement, _TemplateableElement);
-			addBinding(_Bag_TypeExp, _TypeExp);
-			addBinding(_Bag_TypedElement, _TypedElement);
-			addBinding(_Bag_Variable, _Variable);
-			addBinding(_Bag_VariableDeclaration, _VariableDeclaration);
-			addBinding(_Bag_VariableExp, _VariableExp);
-			addBinding(_Bag_WildcardType, _WildcardType);
-			addBinding(_Collection_Annotation, _Annotation);
-			addBinding(_Collection_AssociationClassCallExp, _AssociationClassCallExp);
-			addBinding(_Collection_Behavior, _Behavior);
-			addBinding(_Collection_CallOperationAction, _CallOperationAction);
-			addBinding(_Collection_Class, _Class);
-			addBinding(_Collection_CollectionLiteralPart, _CollectionLiteralPart);
-			addBinding(_Collection_CollectionType, _CollectionType);
-			addBinding(_Collection_Comment, _Comment);
-			addBinding(_Collection_CompleteClass, _CompleteClass);
-			addBinding(_Collection_CompleteModel, _CompleteModel);
-			addBinding(_Collection_CompletePackage, _CompletePackage);
-			addBinding(_Collection_ConnectionPointReference, _ConnectionPointReference);
-			addBinding(_Collection_Constraint, _Constraint);
-			addBinding(_Collection_DataType, _DataType);
-			addBinding(_Collection_Detail, _Detail);
-			addBinding(_Collection_DynamicElement, _DynamicElement);
-			addBinding(_Collection_DynamicProperty, _DynamicProperty);
-			addBinding(_Collection_Element, _Element);
-			addBinding(_Collection_ElementExtension, _ElementExtension);
-			addBinding(_Collection_EnumLiteralExp, _EnumLiteralExp);
-			addBinding(_Collection_EnumerationLiteral, _EnumerationLiteral);
-			addBinding(_Collection_Import, _Import);
-			addBinding(_Collection_InstanceSpecification, _InstanceSpecification);
-			addBinding(_Collection_IteratorVariable, _IteratorVariable);
-			addBinding(_Collection_LambdaType, _LambdaType);
-			addBinding(_Collection_LoopExp, _LoopExp);
-			addBinding(_Collection_MapLiteralPart, _MapLiteralPart);
-			addBinding(_Collection_MapType, _MapType);
-			addBinding(_Collection_MessageType, _MessageType);
-			addBinding(_Collection_Model, _Model);
-			addBinding(_Collection_NavigationCallExp, _NavigationCallExp);
-			addBinding(_Collection_OCLExpression, _OCLExpression);
-			addBinding(_Collection_Operation, _Operation);
-			addBinding(_Collection_OperationCallExp, _OperationCallExp);
-			addBinding(_Collection_OppositePropertyCallExp, _OppositePropertyCallExp);
-			addBinding(_Collection_Package, _Package);
-			addBinding(_Collection_Parameter, _Parameter);
-			addBinding(_Collection_Precedence, _Precedence);
-			addBinding(_Collection_PrimitiveType, _PrimitiveType);
-			addBinding(_Collection_ProfileApplication, _ProfileApplication);
-			addBinding(_Collection_Property, _Property);
-			addBinding(_Collection_PropertyCallExp, _PropertyCallExp);
-			addBinding(_Collection_Pseudostate, _Pseudostate);
-			addBinding(_Collection_Region, _Region);
-			addBinding(_Collection_SendSignalAction, _SendSignalAction);
-			addBinding(_Collection_ShadowPart, _ShadowPart);
-			addBinding(_Collection_Slot, _Slot);
-			addBinding(_Collection_State, _State);
-			addBinding(_Collection_StateExp, _StateExp);
-			addBinding(_Collection_StateMachine, _StateMachine);
-			addBinding(_Collection_StereotypeExtender, _StereotypeExtender);
-			addBinding(_Collection_String, _String);
-			addBinding(_Collection_TemplateBinding, _TemplateBinding);
-			addBinding(_Collection_TemplateParameter, _TemplateParameter);
-			addBinding(_Collection_TemplateParameterSubstitution, _TemplateParameterSubstitution);
-			addBinding(_Collection_TemplateableElement, _TemplateableElement);
-			addBinding(_Collection_Transition, _Transition);
-			addBinding(_Collection_Trigger, _Trigger);
-			addBinding(_Collection_TupleLiteralPart, _TupleLiteralPart);
-			addBinding(_Collection_Type, _Type);
-			addBinding(_Collection_TypeExp, _TypeExp);
-			addBinding(_Collection_TypedElement, _TypedElement);
-			addBinding(_Collection_ValueSpecification, _ValueSpecification);
-			addBinding(_Collection_Variable, _Variable);
-			addBinding(_Collection_VariableDeclaration, _VariableDeclaration);
-			addBinding(_Collection_VariableExp, _VariableExp);
-			addBinding(_Collection_Vertex, _Vertex);
-			addBinding(_Collection_WildcardType, _WildcardType);
-			addBinding(_OrderedCollection_CollectionLiteralPart, _CollectionLiteralPart);
-			addBinding(_OrderedCollection_Detail, _Detail);
-			addBinding(_OrderedCollection_Element, _Element);
-			addBinding(_OrderedCollection_EnumerationLiteral, _EnumerationLiteral);
-			addBinding(_OrderedCollection_Import, _Import);
-			addBinding(_OrderedCollection_IteratorVariable, _IteratorVariable);
-			addBinding(_OrderedCollection_MapLiteralPart, _MapLiteralPart);
-			addBinding(_OrderedCollection_OCLExpression, _OCLExpression);
-			addBinding(_OrderedCollection_Operation, _Operation);
-			addBinding(_OrderedCollection_Parameter, _Parameter);
-			addBinding(_OrderedCollection_Precedence, _Precedence);
-			addBinding(_OrderedCollection_Property, _Property);
-			addBinding(_OrderedCollection_ShadowPart, _ShadowPart);
-			addBinding(_OrderedCollection_TemplateParameter, _TemplateParameter);
-			addBinding(_OrderedCollection_TupleLiteralPart, _TupleLiteralPart);
-			addBinding(_OrderedCollection_Type, _Type);
-			addBinding(_OrderedCollection_ValueSpecification, _ValueSpecification);
-			addBinding(_OrderedCollection_Variable, _Variable);
-			addBinding(_OrderedSet_CollectionLiteralPart_NullFree, _CollectionLiteralPart);
-			addBinding(_OrderedSet_Detail_NullFree, _Detail);
-			addBinding(_OrderedSet_Element_NullFree, _Element);
-			addBinding(_OrderedSet_EnumerationLiteral_NullFree, _EnumerationLiteral);
-			addBinding(_OrderedSet_Import_NullFree, _Import);
-			addBinding(_OrderedSet_IteratorVariable, _IteratorVariable);
-			addBinding(_OrderedSet_MapLiteralPart_NullFree, _MapLiteralPart);
-			addBinding(_OrderedSet_OCLExpression_NullFree, _OCLExpression);
-			addBinding(_OrderedSet_Operation_NullFree, _Operation);
-			addBinding(_OrderedSet_Parameter_NullFree, _Parameter);
-			addBinding(_OrderedSet_Precedence_NullFree, _Precedence);
-			addBinding(_OrderedSet_Property_NullFree, _Property);
-			addBinding(_OrderedSet_ShadowPart_NullFree, _ShadowPart);
-			addBinding(_OrderedSet_TemplateParameter_NullFree, _TemplateParameter);
-			addBinding(_OrderedSet_TupleLiteralPart_NullFree, _TupleLiteralPart);
-			addBinding(_OrderedSet_ValueSpecification_NullFree, _ValueSpecification);
-			addBinding(_OrderedSet_Variable_NullFree, _Variable);
-			addBinding(_Sequence_Type_NullFree, _Type);
-			addBinding(_Set_Behavior_NullFree, _Behavior);
-			addBinding(_Set_Class_NullFree, _Class);
-			addBinding(_Set_Comment_NullFree, _Comment);
-			addBinding(_Set_CompleteClass_NullFree, _CompleteClass);
-			addBinding(_Set_CompletePackage_NullFree, _CompletePackage);
-			addBinding(_Set_ConnectionPointReference_NullFree, _ConnectionPointReference);
-			addBinding(_Set_Constraint_NullFree, _Constraint);
-			addBinding(_Set_DynamicProperty_NullFree, _DynamicProperty);
-			addBinding(_Set_ElementExtension_NullFree, _ElementExtension);
-			addBinding(_Set_Element_NullFree, _Element);
-			addBinding(_Set_InstanceSpecification_NullFree, _InstanceSpecification);
-			addBinding(_Set_Model_NullFree, _Model);
-			addBinding(_Set_Operation_NullFree, _Operation);
-			addBinding(_Set_Package_NullFree, _Package);
-			addBinding(_Set_ProfileApplication_NullFree, _ProfileApplication);
-			addBinding(_Set_Property_NullFree, _Property);
-			addBinding(_Set_Pseudostate_NullFree, _Pseudostate);
-			addBinding(_Set_Region_NullFree, _Region);
-			addBinding(_Set_Region_NullFree_1, _Region);
-			addBinding(_Set_Slot_NullFree, _Slot);
-			addBinding(_Set_StateMachine_NullFree, _StateMachine);
-			addBinding(_Set_State_NullFree, _State);
-			addBinding(_Set_StereotypeExtender_NullFree, _StereotypeExtender);
-			addBinding(_Set_String_NullFree, _String);
-			addBinding(_Set_TemplateBinding_NullFree, _TemplateBinding);
-			addBinding(_Set_TemplateParameterSubstitution_NullFree, _TemplateParameterSubstitution);
-			addBinding(_Set_Transition_NullFree, _Transition);
-			addBinding(_Set_Trigger_NullFree, _Trigger);
-			addBinding(_Set_Type_NullFree, _Type);
-			addBinding(_Set_Vertex_NullFree, _Vertex);
-			addBinding(_UniqueCollection_Behavior, _Behavior);
-			addBinding(_UniqueCollection_Class, _Class);
-			addBinding(_UniqueCollection_CollectionLiteralPart, _CollectionLiteralPart);
-			addBinding(_UniqueCollection_Comment, _Comment);
-			addBinding(_UniqueCollection_CompleteClass, _CompleteClass);
-			addBinding(_UniqueCollection_CompletePackage, _CompletePackage);
-			addBinding(_UniqueCollection_ConnectionPointReference, _ConnectionPointReference);
-			addBinding(_UniqueCollection_Constraint, _Constraint);
-			addBinding(_UniqueCollection_Detail, _Detail);
-			addBinding(_UniqueCollection_DynamicProperty, _DynamicProperty);
-			addBinding(_UniqueCollection_Element, _Element);
-			addBinding(_UniqueCollection_ElementExtension, _ElementExtension);
-			addBinding(_UniqueCollection_EnumerationLiteral, _EnumerationLiteral);
-			addBinding(_UniqueCollection_Import, _Import);
-			addBinding(_UniqueCollection_InstanceSpecification, _InstanceSpecification);
-			addBinding(_UniqueCollection_IteratorVariable, _IteratorVariable);
-			addBinding(_UniqueCollection_MapLiteralPart, _MapLiteralPart);
-			addBinding(_UniqueCollection_Model, _Model);
-			addBinding(_UniqueCollection_OCLExpression, _OCLExpression);
-			addBinding(_UniqueCollection_Operation, _Operation);
-			addBinding(_UniqueCollection_Package, _Package);
-			addBinding(_UniqueCollection_Parameter, _Parameter);
-			addBinding(_UniqueCollection_Precedence, _Precedence);
-			addBinding(_UniqueCollection_ProfileApplication, _ProfileApplication);
-			addBinding(_UniqueCollection_Property, _Property);
-			addBinding(_UniqueCollection_Pseudostate, _Pseudostate);
-			addBinding(_UniqueCollection_Region, _Region);
-			addBinding(_UniqueCollection_ShadowPart, _ShadowPart);
-			addBinding(_UniqueCollection_Slot, _Slot);
-			addBinding(_UniqueCollection_State, _State);
-			addBinding(_UniqueCollection_StateMachine, _StateMachine);
-			addBinding(_UniqueCollection_StereotypeExtender, _StereotypeExtender);
-			addBinding(_UniqueCollection_String, _String);
-			addBinding(_UniqueCollection_TemplateBinding, _TemplateBinding);
-			addBinding(_UniqueCollection_TemplateParameter, _TemplateParameter);
-			addBinding(_UniqueCollection_TemplateParameterSubstitution, _TemplateParameterSubstitution);
-			addBinding(_UniqueCollection_Transition, _Transition);
-			addBinding(_UniqueCollection_Trigger, _Trigger);
-			addBinding(_UniqueCollection_TupleLiteralPart, _TupleLiteralPart);
-			addBinding(_UniqueCollection_Type, _Type);
-			addBinding(_UniqueCollection_ValueSpecification, _ValueSpecification);
-			addBinding(_UniqueCollection_Variable, _Variable);
-			addBinding(_UniqueCollection_Vertex, _Vertex);
+			addBinding(_Bag_Annotation_F, _Annotation);
+			addBinding(_Bag_AssociationClassCallExp_F, _AssociationClassCallExp);
+			addBinding(_Bag_CallOperationAction_F, _CallOperationAction);
+			addBinding(_Bag_Class_F, _Class);
+			addBinding(_Bag_CollectionType_F, _CollectionType);
+			addBinding(_Bag_CompleteClass_F, _CompleteClass);
+			addBinding(_Bag_CompleteModel_F, _CompleteModel);
+			addBinding(_Bag_CompletePackage_F, _CompletePackage);
+			addBinding(_Bag_ConnectionPointReference_F, _ConnectionPointReference);
+			addBinding(_Bag_Constraint_F, _Constraint);
+			addBinding(_Bag_DataType_F, _DataType);
+			addBinding(_Bag_DynamicElement_F, _DynamicElement);
+			addBinding(_Bag_DynamicProperty_F, _DynamicProperty);
+			addBinding(_Bag_ElementExtension_F, _ElementExtension);
+			addBinding(_Bag_EnumLiteralExp_F, _EnumLiteralExp);
+			addBinding(_Bag_Import_F, _Import);
+			addBinding(_Bag_InstanceSpecification_F, _InstanceSpecification);
+			addBinding(_Bag_LambdaType_F, _LambdaType);
+			addBinding(_Bag_LoopExp_F, _LoopExp);
+			addBinding(_Bag_MapType_F, _MapType);
+			addBinding(_Bag_MessageType_F, _MessageType);
+			addBinding(_Bag_NavigationCallExp_F, _NavigationCallExp);
+			addBinding(_Bag_OCLExpression_F, _OCLExpression);
+			addBinding(_Bag_OperationCallExp_F, _OperationCallExp);
+			addBinding(_Bag_Operation_F, _Operation);
+			addBinding(_Bag_OppositePropertyCallExp_F, _OppositePropertyCallExp);
+			addBinding(_Bag_Package_F, _Package);
+			addBinding(_Bag_PrimitiveType_F, _PrimitiveType);
+			addBinding(_Bag_PropertyCallExp_F, _PropertyCallExp);
+			addBinding(_Bag_Property_F, _Property);
+			addBinding(_Bag_Region_F, _Region);
+			addBinding(_Bag_SendSignalAction_F, _SendSignalAction);
+			addBinding(_Bag_ShadowPart_F, _ShadowPart);
+			addBinding(_Bag_Slot_F, _Slot);
+			addBinding(_Bag_StateExp_F, _StateExp);
+			addBinding(_Bag_StateMachine_F, _StateMachine);
+			addBinding(_Bag_State_F, _State);
+			addBinding(_Bag_TemplateBinding_F, _TemplateBinding);
+			addBinding(_Bag_TemplateParameterSubstitution_F, _TemplateParameterSubstitution);
+			addBinding(_Bag_TemplateParameter_F, _TemplateParameter);
+			addBinding(_Bag_TemplateableElement_F, _TemplateableElement);
+			addBinding(_Bag_TypeExp_F, _TypeExp);
+			addBinding(_Bag_TypedElement_F, _TypedElement);
+			addBinding(_Bag_VariableDeclaration_F, _VariableDeclaration);
+			addBinding(_Bag_VariableExp_F, _VariableExp);
+			addBinding(_Bag_Variable_F, _Variable);
+			addBinding(_Bag_WildcardType_F, _WildcardType);
+			addBinding(_Collection_Annotation_F, _Annotation);
+			addBinding(_Collection_AssociationClassCallExp_F, _AssociationClassCallExp);
+			addBinding(_Collection_Behavior_F, _Behavior);
+			addBinding(_Collection_CallOperationAction_F, _CallOperationAction);
+			addBinding(_Collection_Class_F, _Class);
+			addBinding(_Collection_CollectionLiteralPart_F, _CollectionLiteralPart);
+			addBinding(_Collection_CollectionType_F, _CollectionType);
+			addBinding(_Collection_Comment_F, _Comment);
+			addBinding(_Collection_CompleteClass_F, _CompleteClass);
+			addBinding(_Collection_CompleteModel_F, _CompleteModel);
+			addBinding(_Collection_CompletePackage_F, _CompletePackage);
+			addBinding(_Collection_ConnectionPointReference_F, _ConnectionPointReference);
+			addBinding(_Collection_Constraint_F, _Constraint);
+			addBinding(_Collection_DataType_F, _DataType);
+			addBinding(_Collection_Detail_F, _Detail);
+			addBinding(_Collection_DynamicElement_F, _DynamicElement);
+			addBinding(_Collection_DynamicProperty_F, _DynamicProperty);
+			addBinding(_Collection_ElementExtension_F, _ElementExtension);
+			addBinding(_Collection_Element_F, _Element);
+			addBinding(_Collection_EnumLiteralExp_F, _EnumLiteralExp);
+			addBinding(_Collection_EnumerationLiteral_F, _EnumerationLiteral);
+			addBinding(_Collection_Import_F, _Import);
+			addBinding(_Collection_InstanceSpecification_F, _InstanceSpecification);
+			addBinding(_Collection_IteratorVariable_F, _IteratorVariable);
+			addBinding(_Collection_LambdaType_F, _LambdaType);
+			addBinding(_Collection_LoopExp_F, _LoopExp);
+			addBinding(_Collection_MapLiteralPart_F, _MapLiteralPart);
+			addBinding(_Collection_MapType_F, _MapType);
+			addBinding(_Collection_MessageType_F, _MessageType);
+			addBinding(_Collection_Model_F, _Model);
+			addBinding(_Collection_NavigationCallExp_F, _NavigationCallExp);
+			addBinding(_Collection_OCLExpression_F, _OCLExpression);
+			addBinding(_Collection_OperationCallExp_F, _OperationCallExp);
+			addBinding(_Collection_Operation_F, _Operation);
+			addBinding(_Collection_OppositePropertyCallExp_F, _OppositePropertyCallExp);
+			addBinding(_Collection_Package_F, _Package);
+			addBinding(_Collection_Parameter_F, _Parameter);
+			addBinding(_Collection_Precedence_F, _Precedence);
+			addBinding(_Collection_PrimitiveType_F, _PrimitiveType);
+			addBinding(_Collection_ProfileApplication_F, _ProfileApplication);
+			addBinding(_Collection_PropertyCallExp_F, _PropertyCallExp);
+			addBinding(_Collection_Property_F, _Property);
+			addBinding(_Collection_Pseudostate_F, _Pseudostate);
+			addBinding(_Collection_Region_F, _Region);
+			addBinding(_Collection_SendSignalAction_F, _SendSignalAction);
+			addBinding(_Collection_ShadowPart_F, _ShadowPart);
+			addBinding(_Collection_Slot_F, _Slot);
+			addBinding(_Collection_StateExp_F, _StateExp);
+			addBinding(_Collection_StateMachine_F, _StateMachine);
+			addBinding(_Collection_State_F, _State);
+			addBinding(_Collection_StereotypeExtender_F, _StereotypeExtender);
+			addBinding(_Collection_String_F, _String);
+			addBinding(_Collection_TemplateBinding_F, _TemplateBinding);
+			addBinding(_Collection_TemplateParameterSubstitution_F, _TemplateParameterSubstitution);
+			addBinding(_Collection_TemplateParameter_F, _TemplateParameter);
+			addBinding(_Collection_TemplateableElement_F, _TemplateableElement);
+			addBinding(_Collection_Transition_F, _Transition);
+			addBinding(_Collection_Trigger_F, _Trigger);
+			addBinding(_Collection_TupleLiteralPart_F, _TupleLiteralPart);
+			addBinding(_Collection_TypeExp_F, _TypeExp);
+			addBinding(_Collection_Type_F, _Type);
+			addBinding(_Collection_TypedElement_F, _TypedElement);
+			addBinding(_Collection_ValueSpecification_F, _ValueSpecification);
+			addBinding(_Collection_VariableDeclaration_F, _VariableDeclaration);
+			addBinding(_Collection_VariableExp_F, _VariableExp);
+			addBinding(_Collection_Variable_F, _Variable);
+			addBinding(_Collection_Vertex_F, _Vertex);
+			addBinding(_Collection_WildcardType_F, _WildcardType);
+			addBinding(_OrderedCollection_CollectionLiteralPart_F, _CollectionLiteralPart);
+			addBinding(_OrderedCollection_Detail_F, _Detail);
+			addBinding(_OrderedCollection_Element_F, _Element);
+			addBinding(_OrderedCollection_EnumerationLiteral_F, _EnumerationLiteral);
+			addBinding(_OrderedCollection_Import_F, _Import);
+			addBinding(_OrderedCollection_IteratorVariable_F, _IteratorVariable);
+			addBinding(_OrderedCollection_MapLiteralPart_F, _MapLiteralPart);
+			addBinding(_OrderedCollection_OCLExpression_F, _OCLExpression);
+			addBinding(_OrderedCollection_Operation_F, _Operation);
+			addBinding(_OrderedCollection_Parameter_F, _Parameter);
+			addBinding(_OrderedCollection_Precedence_F, _Precedence);
+			addBinding(_OrderedCollection_Property_F, _Property);
+			addBinding(_OrderedCollection_ShadowPart_F, _ShadowPart);
+			addBinding(_OrderedCollection_TemplateParameter_F, _TemplateParameter);
+			addBinding(_OrderedCollection_TupleLiteralPart_F, _TupleLiteralPart);
+			addBinding(_OrderedCollection_Type_F, _Type);
+			addBinding(_OrderedCollection_ValueSpecification_F, _ValueSpecification);
+			addBinding(_OrderedCollection_Variable_F, _Variable);
+			addBinding(_OrderedSet_CollectionLiteralPart_T, _CollectionLiteralPart);
+			addBinding(_OrderedSet_Detail_T, _Detail);
+			addBinding(_OrderedSet_Element_T, _Element);
+			addBinding(_OrderedSet_EnumerationLiteral_T, _EnumerationLiteral);
+			addBinding(_OrderedSet_Import_T, _Import);
+			addBinding(_OrderedSet_IteratorVariable_F, _IteratorVariable);
+			addBinding(_OrderedSet_MapLiteralPart_T, _MapLiteralPart);
+			addBinding(_OrderedSet_OCLExpression_T, _OCLExpression);
+			addBinding(_OrderedSet_Operation_T, _Operation);
+			addBinding(_OrderedSet_Parameter_T, _Parameter);
+			addBinding(_OrderedSet_Precedence_T, _Precedence);
+			addBinding(_OrderedSet_Property_T, _Property);
+			addBinding(_OrderedSet_ShadowPart_T, _ShadowPart);
+			addBinding(_OrderedSet_TemplateParameter_T_L1, _TemplateParameter);
+			addBinding(_OrderedSet_TupleLiteralPart_T, _TupleLiteralPart);
+			addBinding(_OrderedSet_ValueSpecification_T, _ValueSpecification);
+			addBinding(_OrderedSet_Variable_T, _Variable);
+			addBinding(_Sequence_Type_T, _Type);
+			addBinding(_Set_Behavior_T, _Behavior);
+			addBinding(_Set_Class_T, _Class);
+			addBinding(_Set_Comment_T, _Comment);
+			addBinding(_Set_CompleteClass_T, _CompleteClass);
+			addBinding(_Set_CompletePackage_T, _CompletePackage);
+			addBinding(_Set_ConnectionPointReference_T, _ConnectionPointReference);
+			addBinding(_Set_Constraint_T, _Constraint);
+			addBinding(_Set_DynamicProperty_T, _DynamicProperty);
+			addBinding(_Set_ElementExtension_T, _ElementExtension);
+			addBinding(_Set_Element_T, _Element);
+			addBinding(_Set_InstanceSpecification_T, _InstanceSpecification);
+			addBinding(_Set_Model_T, _Model);
+			addBinding(_Set_Operation_T, _Operation);
+			addBinding(_Set_Package_T, _Package);
+			addBinding(_Set_ProfileApplication_T, _ProfileApplication);
+			addBinding(_Set_Property_T, _Property);
+			addBinding(_Set_Pseudostate_T, _Pseudostate);
+			addBinding(_Set_Region_T, _Region);
+			addBinding(_Set_Region_T_L1, _Region);
+			addBinding(_Set_Slot_T, _Slot);
+			addBinding(_Set_StateMachine_T, _StateMachine);
+			addBinding(_Set_State_T, _State);
+			addBinding(_Set_StereotypeExtender_T, _StereotypeExtender);
+			addBinding(_Set_String_T_L1, _String);
+			addBinding(_Set_TemplateBinding_T, _TemplateBinding);
+			addBinding(_Set_TemplateParameterSubstitution_T_L1, _TemplateParameterSubstitution);
+			addBinding(_Set_Transition_T, _Transition);
+			addBinding(_Set_Trigger_T, _Trigger);
+			addBinding(_Set_Type_T, _Type);
+			addBinding(_Set_Vertex_T, _Vertex);
+			addBinding(_UniqueCollection_Behavior_F, _Behavior);
+			addBinding(_UniqueCollection_Class_F, _Class);
+			addBinding(_UniqueCollection_CollectionLiteralPart_F, _CollectionLiteralPart);
+			addBinding(_UniqueCollection_Comment_F, _Comment);
+			addBinding(_UniqueCollection_CompleteClass_F, _CompleteClass);
+			addBinding(_UniqueCollection_CompletePackage_F, _CompletePackage);
+			addBinding(_UniqueCollection_ConnectionPointReference_F, _ConnectionPointReference);
+			addBinding(_UniqueCollection_Constraint_F, _Constraint);
+			addBinding(_UniqueCollection_Detail_F, _Detail);
+			addBinding(_UniqueCollection_DynamicProperty_F, _DynamicProperty);
+			addBinding(_UniqueCollection_ElementExtension_F, _ElementExtension);
+			addBinding(_UniqueCollection_Element_F, _Element);
+			addBinding(_UniqueCollection_EnumerationLiteral_F, _EnumerationLiteral);
+			addBinding(_UniqueCollection_Import_F, _Import);
+			addBinding(_UniqueCollection_InstanceSpecification_F, _InstanceSpecification);
+			addBinding(_UniqueCollection_IteratorVariable_F, _IteratorVariable);
+			addBinding(_UniqueCollection_MapLiteralPart_F, _MapLiteralPart);
+			addBinding(_UniqueCollection_Model_F, _Model);
+			addBinding(_UniqueCollection_OCLExpression_F, _OCLExpression);
+			addBinding(_UniqueCollection_Operation_F, _Operation);
+			addBinding(_UniqueCollection_Package_F, _Package);
+			addBinding(_UniqueCollection_Parameter_F, _Parameter);
+			addBinding(_UniqueCollection_Precedence_F, _Precedence);
+			addBinding(_UniqueCollection_ProfileApplication_F, _ProfileApplication);
+			addBinding(_UniqueCollection_Property_F, _Property);
+			addBinding(_UniqueCollection_Pseudostate_F, _Pseudostate);
+			addBinding(_UniqueCollection_Region_F, _Region);
+			addBinding(_UniqueCollection_ShadowPart_F, _ShadowPart);
+			addBinding(_UniqueCollection_Slot_F, _Slot);
+			addBinding(_UniqueCollection_StateMachine_F, _StateMachine);
+			addBinding(_UniqueCollection_State_F, _State);
+			addBinding(_UniqueCollection_StereotypeExtender_F, _StereotypeExtender);
+			addBinding(_UniqueCollection_String_F, _String);
+			addBinding(_UniqueCollection_TemplateBinding_F, _TemplateBinding);
+			addBinding(_UniqueCollection_TemplateParameterSubstitution_F, _TemplateParameterSubstitution);
+			addBinding(_UniqueCollection_TemplateParameter_F, _TemplateParameter);
+			addBinding(_UniqueCollection_Transition_F, _Transition);
+			addBinding(_UniqueCollection_Trigger_F, _Trigger);
+			addBinding(_UniqueCollection_TupleLiteralPart_F, _TupleLiteralPart);
+			addBinding(_UniqueCollection_Type_F, _Type);
+			addBinding(_UniqueCollection_ValueSpecification_F, _ValueSpecification);
+			addBinding(_UniqueCollection_Variable_F, _Variable);
+			addBinding(_UniqueCollection_Vertex_F, _Vertex);
 		}
 
 		private void installComments() {
@@ -4847,6 +4847,7 @@
 			installComment(pr_Pseudostate_kind, "Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice.");
 			installComment(pr_Pseudostate_owningState, "The State that owns this Pseudostate and in which it appears.");
 			installComment(pr_Pseudostate_owningStateMachine, "The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint.");
+			installComment(_PseudostateKind, "PseudostateKind is an Enumeration type that is used to differentiate various kinds of Pseudostates.");
 			installComment(_Region, "A Region is a top-level part of a StateMachine or a composite State, that serves as a container for the Vertices and Transitions of the StateMachine. A StateMachine or composite State may contain multiple Regions representing behaviors that may occur in parallel.");
 			installComment(pr_Region_extendedRegion, "The region of which this region is an extension.");
 			installComment(pr_Region_ownedSubvertexes, "The set of Vertices that are owned by this Region.");
@@ -4903,6 +4904,7 @@
 			installComment(pr_Transition_owningRegion, "Designates the Region that owns this Transition.");
 			installComment(pr_Transition_source, "Designates the originating Vertex (State or Pseudostate) of the Transition.");
 			installComment(pr_Transition_target, "Designates the target Vertex that is reached when the Transition is taken.");
+			installComment(_TransitionKind, "TransitionKind is an Enumeration type used to differentiate the various kinds of Transitions.");
 			installComment(el__TransitionKind_external, "Implies that the Transition, if triggered, will exit the composite (source) State.");
 			installComment(el__TransitionKind_internal, "Implies that the Transition, if triggered, occurs without exiting or entering the source State (i.e., it does not cause a state change). This means that the entry or exit condition of the source State will not be invoked. An internal Transition can be taken even if the SateMachine is in one or more Regions nested within the associated State.");
 			installComment(el__TransitionKind_local, "Implies that the Transition, if triggered, will not exit the composite (source) State, but it will exit and re-enter any state within the composite State that is in the current state configuration.");
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLstdlib.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLstdlib.java
index d88b4a7..330bee8 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLstdlib.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLstdlib.java
@@ -277,13 +277,13 @@
 	{
 		private final @NonNull Model model;
 		private final @NonNull Library ocl;
-		private final @NonNull Package orphanage;
+		private final @NonNull Package orphanPackage;
 
 		private Contents(@NonNull String asURI)
 		{
 			model = createModel(asURI);
 			ocl = createLibrary("ocl", "ocl", "http://www.eclipse.org/ocl/2015/Library", IdManager.METAMODEL, OCLstdlibPackage.eINSTANCE);
-			orphanage = createPackage("$$", "orphanage", "http://www.eclipse.org/ocl/2015/Orphanage", null, null);
+			orphanPackage = createPackage("$$", "orphanage", "http://www.eclipse.org/ocl/2015/Orphanage", null, null);
 			installPackages();
 			installClassTypes();
 			installPrimitiveTypes();
@@ -306,7 +306,7 @@
 
 		private void installPackages() {
 			model.getOwnedPackages().add(ocl);
-			model.getOwnedPackages().add(orphanage);
+			model.getOwnedPackages().add(orphanPackage);
 		}
 
 		private final @NonNull Class _BooleanType = createClass("BooleanType");
@@ -412,151 +412,151 @@
 		private final @NonNull SetType _Set_Set_T = createSetType(OCLstdlibPackage.Literals.SET, tp_Set_T);
 		private final @NonNull CollectionType _UniqueCollection_UniqueCollection_T = createCollectionType(OCLstdlibPackage.Literals.UNIQUE_COLLECTION, tp_UniqueCollection_T);
 
-		private final @NonNull BagType _Bag_Bag_collectNested_V_NullFree = createBagType(_Bag_Bag_T);
-		private final @NonNull BagType _Bag_Bag_collect_V_NullFree = createBagType(_Bag_Bag_T);
-		private final @NonNull BagType _Bag_Bag_flatten_T2_NullFree = createBagType(_Bag_Bag_T);
-		private final @NonNull BagType _Bag_Bag_selectByKind_TT_NullFree = createBagType(_Bag_Bag_T);
-		private final @NonNull BagType _Bag_Bag_selectByType_TT_NullFree = createBagType(_Bag_Bag_T);
-		private final @NonNull BagType _Bag_CollectionType = createBagType(_Bag_Bag_T);
-		private final @NonNull BagType _Bag_Collection_T_NullFree = createBagType(_Bag_Bag_T);
-		private final @NonNull BagType _Bag_MapType = createBagType(_Bag_Bag_T);
-		private final @NonNull BagType _Bag_Map_collect_V2 = createBagType(_Bag_Bag_T);
-		private final @NonNull BagType _Bag_Map_V_NullFree = createBagType(_Bag_Bag_T);
-		private final @NonNull BagType _Bag_OclElement = createBagType(_Bag_Bag_T);
-		private final @NonNull BagType _Bag_OclInvalid = createBagType(_Bag_Bag_T);
-		private final @NonNull BagType _Bag_Set_collectNested_V_NullFree = createBagType(_Bag_Bag_T);
-		private final @NonNull BagType _Bag_Set_collect_V_NullFree = createBagType(_Bag_Bag_T);
-		private final @NonNull CollectionType _Collection_Integer = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_String = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Tuple = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Bag_collectNested_V = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Bag_collect_V = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Bag_flatten_T2 = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Bag_selectByKind_TT = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Bag_selectByType_TT = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Bag_T_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Bag_T = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_CollectionType = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Collection_collectNested_V_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Collection_collect_V_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Collection_excludesAll_T2_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Collection_flatten_T2_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Collection_includesAll_T2_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Collection_product_T2_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Collection_selectByKind_TT_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Collection_selectByType_TT_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Collection_T_1 = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_MapType = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Map_collect_V2 = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Map_excludesAll_K2_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Map_includesAll_K2_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Map_K_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Map_K = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Map_V = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_OclAny = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_OclElement = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_OclInvalid = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_OclSelf = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_OrderedCollection_T_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_OrderedSet_collectNested_V = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_OrderedSet_collect_V = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_OrderedSet_flatten_T2 = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_OrderedSet_selectByKind_TT = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_OrderedSet_selectByType_TT = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_OrderedSet_T_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_OrderedSet_T = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Sequence_collectNested_V = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Sequence_collect_V = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Sequence_flatten_T2 = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Sequence_selectByKind_TT = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Sequence_selectByType_TT = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Sequence_T_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Sequence_T = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Set_collectNested_V = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Set_collect_V = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Set_flatten_T2 = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Set_selectByKind_TT = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Set_selectByType_TT = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Set_T_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_Set_T = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_UniqueCollection_T_NullFree = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _Collection_UniqueCollection_T = createCollectionType(_Collection_Collection_T);
-		private final @NonNull CollectionType _OrderedCollection_Integer = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_String = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_Bag_T = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_Collection_T = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_OrderedSet_collectNested_V = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_OrderedSet_collect_V = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_OrderedSet_flatten_T2 = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_OrderedSet_selectByKind_TT = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_OrderedSet_selectByType_TT = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_OrderedSet_T_NullFree = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_Sequence_collectNested_V = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_Sequence_collect_V = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_Sequence_flatten_T2 = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_Sequence_selectByKind_TT = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_Sequence_selectByType_TT = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_Sequence_T_NullFree = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_Sequence_T = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_Set_T = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull CollectionType _OrderedCollection_UniqueCollection_T = createCollectionType(_OrderedCollection_OrderedCollection_T);
-		private final @NonNull OrderedSetType _OrderedSet_Collection_T_NullFree = createOrderedSetType(_OrderedSet_OrderedSet_T);
-		private final @NonNull OrderedSetType _OrderedSet_OrderedSet_flatten_T2_NullFree = createOrderedSetType(_OrderedSet_OrderedSet_T);
-		private final @NonNull OrderedSetType _OrderedSet_OrderedSet_selectByKind_TT_NullFree = createOrderedSetType(_OrderedSet_OrderedSet_T);
-		private final @NonNull OrderedSetType _OrderedSet_OrderedSet_selectByType_TT_NullFree = createOrderedSetType(_OrderedSet_OrderedSet_T);
-		private final @NonNull OrderedSetType _OrderedSet_Sequence_T_NullFree = createOrderedSetType(_OrderedSet_OrderedSet_T);
-		private final @NonNull OrderedSetType _OrderedSet_Set_T_NullFree = createOrderedSetType(_OrderedSet_OrderedSet_T);
-		private final @NonNull OrderedSetType _OrderedSet_UniqueCollection_T_NullFree = createOrderedSetType(_OrderedSet_OrderedSet_T);
-		private final @NonNull SequenceType _Sequence_Integer_NullFree = createSequenceType(_Sequence_Sequence_T);
-		private final @NonNull SequenceType _Sequence_String_NullFree = createSequenceType(_Sequence_Sequence_T);
-		private final @NonNull SequenceType _Sequence_Bag_T_NullFree = createSequenceType(_Sequence_Sequence_T);
-		private final @NonNull SequenceType _Sequence_Collection_T_NullFree = createSequenceType(_Sequence_Sequence_T);
-		private final @NonNull SequenceType _Sequence_OrderedSet_collectNested_V_NullFree = createSequenceType(_Sequence_Sequence_T);
-		private final @NonNull SequenceType _Sequence_OrderedSet_collect_V_NullFree = createSequenceType(_Sequence_Sequence_T);
-		private final @NonNull SequenceType _Sequence_Sequence_collectNested_V_NullFree = createSequenceType(_Sequence_Sequence_T);
-		private final @NonNull SequenceType _Sequence_Sequence_collect_V_NullFree = createSequenceType(_Sequence_Sequence_T);
-		private final @NonNull SequenceType _Sequence_Sequence_flatten_T2_NullFree = createSequenceType(_Sequence_Sequence_T);
-		private final @NonNull SequenceType _Sequence_Sequence_selectByKind_TT_NullFree = createSequenceType(_Sequence_Sequence_T);
-		private final @NonNull SequenceType _Sequence_Sequence_selectByType_TT_NullFree = createSequenceType(_Sequence_Sequence_T);
-		private final @NonNull SetType _Set_Tuple_NullFree = createSetType(_Set_Set_T);
-		private final @NonNull SetType _Set_Bag_T_NullFree = createSetType(_Set_Set_T);
-		private final @NonNull SetType _Set_Collection_T_NullFree = createSetType(_Set_Set_T);
-		private final @NonNull SetType _Set_Map_K_NullFree = createSetType(_Set_Set_T);
-		private final @NonNull SetType _Set_OclElement_NullFree = createSetType(_Set_Set_T);
-		private final @NonNull SetType _Set_OclSelf_NullFree = createSetType(_Set_Set_T);
-		private final @NonNull SetType _Set_OclSelf = createSetType(_Set_Set_T);
-		private final @NonNull SetType _Set_Set_flatten_T2_NullFree = createSetType(_Set_Set_T);
-		private final @NonNull SetType _Set_Set_selectByKind_TT_NullFree = createSetType(_Set_Set_T);
-		private final @NonNull SetType _Set_Set_selectByType_TT_NullFree = createSetType(_Set_Set_T);
-		private final @NonNull SetType _Set_UniqueCollection_T_NullFree = createSetType(_Set_Set_T);
-		private final @NonNull CollectionType _UniqueCollection_Tuple = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_Bag_T = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_Collection_T_NullFree = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_Collection_T = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_Map_K = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_OclAny_NullFree = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_OclElement = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_OclSelf = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_OrderedSet_flatten_T2 = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_OrderedSet_selectByKind_TT = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_OrderedSet_selectByType_TT = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_OrderedSet_T_NullFree = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_Sequence_T = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_Set_flatten_T2 = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_Set_selectByKind_TT = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_Set_selectByType_TT = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_Set_T_NullFree = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_Set_T = createCollectionType(_UniqueCollection_UniqueCollection_T);
-		private final @NonNull CollectionType _UniqueCollection_UniqueCollection_T_1 = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull BagType _Bag_Bag_collect_V_T = createBagType(_Bag_Bag_T);
+		private final @NonNull BagType _Bag_Bag_collectNested_V_T = createBagType(_Bag_Bag_T);
+		private final @NonNull BagType _Bag_Bag_flatten_T2_T = createBagType(_Bag_Bag_T);
+		private final @NonNull BagType _Bag_Bag_selectByKind_TT_T = createBagType(_Bag_Bag_T);
+		private final @NonNull BagType _Bag_Bag_selectByType_TT_T = createBagType(_Bag_Bag_T);
+		private final @NonNull BagType _Bag_Collection_T_T = createBagType(_Bag_Bag_T);
+		private final @NonNull BagType _Bag_CollectionType_F = createBagType(_Bag_Bag_T);
+		private final @NonNull BagType _Bag_Map_V_T = createBagType(_Bag_Bag_T);
+		private final @NonNull BagType _Bag_Map_collect_V2_F = createBagType(_Bag_Bag_T);
+		private final @NonNull BagType _Bag_MapType_F = createBagType(_Bag_Bag_T);
+		private final @NonNull BagType _Bag_OclElement_F = createBagType(_Bag_Bag_T);
+		private final @NonNull BagType _Bag_OclInvalid_F = createBagType(_Bag_Bag_T);
+		private final @NonNull BagType _Bag_Set_collect_V_T = createBagType(_Bag_Bag_T);
+		private final @NonNull BagType _Bag_Set_collectNested_V_T = createBagType(_Bag_Bag_T);
+		private final @NonNull CollectionType _Collection_Bag_T_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Bag_T_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Bag_collect_V_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Bag_collectNested_V_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Bag_flatten_T2_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Bag_selectByKind_TT_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Bag_selectByType_TT_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Collection_T_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Collection_collect_V_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Collection_collectNested_V_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Collection_excludesAll_T2_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Collection_flatten_T2_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Collection_includesAll_T2_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Collection_product_T2_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Collection_selectByKind_TT_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Collection_selectByType_TT_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_CollectionType_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Integer_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Map_K_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Map_K_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Map_V_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Map_collect_V2_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Map_excludesAll_K2_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Map_includesAll_K2_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_MapType_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_OclAny_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_OclElement_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_OclInvalid_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_OclSelf_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_OrderedCollection_T_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_OrderedSet_T_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_OrderedSet_T_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_OrderedSet_collect_V_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_OrderedSet_collectNested_V_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_OrderedSet_flatten_T2_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_OrderedSet_selectByKind_TT_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_OrderedSet_selectByType_TT_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Sequence_T_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Sequence_T_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Sequence_collect_V_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Sequence_collectNested_V_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Sequence_flatten_T2_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Sequence_selectByKind_TT_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Sequence_selectByType_TT_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Set_T_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Set_T_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Set_collect_V_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Set_collectNested_V_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Set_flatten_T2_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Set_selectByKind_TT_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Set_selectByType_TT_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_String_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_Tuple_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_UniqueCollection_T_F = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _Collection_UniqueCollection_T_T = createCollectionType(_Collection_Collection_T);
+		private final @NonNull CollectionType _OrderedCollection_Bag_T_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_Collection_T_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_Integer_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_OrderedSet_T_T = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_OrderedSet_collect_V_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_OrderedSet_collectNested_V_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_OrderedSet_flatten_T2_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_OrderedSet_selectByKind_TT_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_OrderedSet_selectByType_TT_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_Sequence_T_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_Sequence_T_T = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_Sequence_collect_V_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_Sequence_collectNested_V_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_Sequence_flatten_T2_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_Sequence_selectByKind_TT_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_Sequence_selectByType_TT_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_Set_T_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_String_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull CollectionType _OrderedCollection_UniqueCollection_T_F = createCollectionType(_OrderedCollection_OrderedCollection_T);
+		private final @NonNull OrderedSetType _OrderedSet_Collection_T_T = createOrderedSetType(_OrderedSet_OrderedSet_T);
+		private final @NonNull OrderedSetType _OrderedSet_OrderedSet_flatten_T2_T = createOrderedSetType(_OrderedSet_OrderedSet_T);
+		private final @NonNull OrderedSetType _OrderedSet_OrderedSet_selectByKind_TT_T = createOrderedSetType(_OrderedSet_OrderedSet_T);
+		private final @NonNull OrderedSetType _OrderedSet_OrderedSet_selectByType_TT_T = createOrderedSetType(_OrderedSet_OrderedSet_T);
+		private final @NonNull OrderedSetType _OrderedSet_Sequence_T_T = createOrderedSetType(_OrderedSet_OrderedSet_T);
+		private final @NonNull OrderedSetType _OrderedSet_Set_T_T = createOrderedSetType(_OrderedSet_OrderedSet_T);
+		private final @NonNull OrderedSetType _OrderedSet_UniqueCollection_T_T = createOrderedSetType(_OrderedSet_OrderedSet_T);
+		private final @NonNull SequenceType _Sequence_Bag_T_T = createSequenceType(_Sequence_Sequence_T);
+		private final @NonNull SequenceType _Sequence_Collection_T_T = createSequenceType(_Sequence_Sequence_T);
+		private final @NonNull SequenceType _Sequence_Integer_T = createSequenceType(_Sequence_Sequence_T);
+		private final @NonNull SequenceType _Sequence_OrderedSet_collect_V_T = createSequenceType(_Sequence_Sequence_T);
+		private final @NonNull SequenceType _Sequence_OrderedSet_collectNested_V_T = createSequenceType(_Sequence_Sequence_T);
+		private final @NonNull SequenceType _Sequence_Sequence_collect_V_T = createSequenceType(_Sequence_Sequence_T);
+		private final @NonNull SequenceType _Sequence_Sequence_collectNested_V_T = createSequenceType(_Sequence_Sequence_T);
+		private final @NonNull SequenceType _Sequence_Sequence_flatten_T2_T = createSequenceType(_Sequence_Sequence_T);
+		private final @NonNull SequenceType _Sequence_Sequence_selectByKind_TT_T = createSequenceType(_Sequence_Sequence_T);
+		private final @NonNull SequenceType _Sequence_Sequence_selectByType_TT_T = createSequenceType(_Sequence_Sequence_T);
+		private final @NonNull SequenceType _Sequence_String_T = createSequenceType(_Sequence_Sequence_T);
+		private final @NonNull SetType _Set_Bag_T_T = createSetType(_Set_Set_T);
+		private final @NonNull SetType _Set_Collection_T_T = createSetType(_Set_Set_T);
+		private final @NonNull SetType _Set_Map_K_T = createSetType(_Set_Set_T);
+		private final @NonNull SetType _Set_OclElement_T = createSetType(_Set_Set_T);
+		private final @NonNull SetType _Set_OclSelf_F = createSetType(_Set_Set_T);
+		private final @NonNull SetType _Set_OclSelf_T = createSetType(_Set_Set_T);
+		private final @NonNull SetType _Set_Set_flatten_T2_T = createSetType(_Set_Set_T);
+		private final @NonNull SetType _Set_Set_selectByKind_TT_T = createSetType(_Set_Set_T);
+		private final @NonNull SetType _Set_Set_selectByType_TT_T = createSetType(_Set_Set_T);
+		private final @NonNull SetType _Set_Tuple_T = createSetType(_Set_Set_T);
+		private final @NonNull SetType _Set_UniqueCollection_T_T = createSetType(_Set_Set_T);
+		private final @NonNull CollectionType _UniqueCollection_Bag_T_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_Collection_T_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_Collection_T_T = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_Map_K_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_OclAny_T = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_OclElement_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_OclSelf_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_OrderedSet_T_T = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_OrderedSet_flatten_T2_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_OrderedSet_selectByKind_TT_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_OrderedSet_selectByType_TT_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_Sequence_T_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_Set_T_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_Set_T_T = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_Set_flatten_T2_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_Set_selectByKind_TT_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_Set_selectByType_TT_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_Tuple_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
+		private final @NonNull CollectionType _UniqueCollection_UniqueCollection_T_F = createCollectionType(_UniqueCollection_UniqueCollection_T);
 
 		private final @NonNull MapType _Map_Map_K_Map_V = createMapType(OCLstdlibPackage.Literals.MAP, tp_Map_K, tp_Map_V);
-		private final @NonNull MapType _Map_Collection_T_Collection_collectBy_V = createMapType(_Map_Map_K_Map_V);
-		private final @NonNull MapType _Map_Map_excludesMap_K2_Map_excludesMap_V2 = createMapType(_Map_Map_K_Map_V);
-		private final @NonNull MapType _Map_Map_excludingMap_K2_Map_excludingMap_V2 = createMapType(_Map_Map_K_Map_V);
-		private final @NonNull MapType _Map_Map_includesMap_K2_Map_includesMap_V2 = createMapType(_Map_Map_K_Map_V);
-		private final @NonNull MapType _Map_Map_includingMap_K2_Map_includingMap_V2 = createMapType(_Map_Map_K_Map_V);
-		private final @NonNull MapType _Map_Map_K_Map_collectBy_V2 = createMapType(_Map_Map_K_Map_V);
-		private final @NonNull MapType _Map_Map_K_Map_collectNested_V2 = createMapType(_Map_Map_K_Map_V);
+		private final @NonNull MapType _Map_Collection_T_F_Collection_collectBy_V_F = createMapType(_Map_Map_K_Map_V);
+		private final @NonNull MapType _Map_Map_excludesMap_K2_T_Map_excludesMap_V2_T = createMapType(_Map_Map_K_Map_V);
+		private final @NonNull MapType _Map_Map_excludingMap_K2_T_Map_excludingMap_V2_T = createMapType(_Map_Map_K_Map_V);
+		private final @NonNull MapType _Map_Map_includesMap_K2_T_Map_includesMap_V2_T = createMapType(_Map_Map_K_Map_V);
+		private final @NonNull MapType _Map_Map_includingMap_K2_T_Map_includingMap_V2_T = createMapType(_Map_Map_K_Map_V);
+		private final @NonNull MapType _Map_Map_K_F_Map_collectBy_V2_F = createMapType(_Map_Map_K_Map_V);
+		private final @NonNull MapType _Map_Map_K_F_Map_collectNested_V2_F = createMapType(_Map_Map_K_Map_V);
 
 		private void installClassTypes() {
 			List<Class> ownedClasses;
@@ -710,7 +710,7 @@
 			ownedClasses = ocl.getOwnedClasses();
 			type = _Bag_Bag_T;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Bag_T_NullFree);
+			superClasses.add(_Collection_Bag_T_T);
 			ownedClasses.add(type);
 			type = _Collection_Collection_T;
 			type.setIsAbstract(true);
@@ -720,638 +720,638 @@
 			type = _OrderedCollection_OrderedCollection_T;
 			type.setIsAbstract(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OrderedCollection_T_NullFree);
+			superClasses.add(_Collection_OrderedCollection_T_T);
 			ownedClasses.add(type);
 			type = _OrderedSet_OrderedSet_T;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_OrderedSet_T_NullFree);
-			superClasses.add(_UniqueCollection_OrderedSet_T_NullFree);
+			superClasses.add(_OrderedCollection_OrderedSet_T_T);
+			superClasses.add(_UniqueCollection_OrderedSet_T_T);
 			ownedClasses.add(type);
 			type = _Sequence_Sequence_T;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Sequence_T_NullFree);
+			superClasses.add(_OrderedCollection_Sequence_T_T);
 			ownedClasses.add(type);
 			type = _Set_Set_T;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Set_T_NullFree);
+			superClasses.add(_UniqueCollection_Set_T_T);
 			ownedClasses.add(type);
 			type = _UniqueCollection_UniqueCollection_T;
 			type.setIsAbstract(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_UniqueCollection_T_NullFree);
+			superClasses.add(_Collection_UniqueCollection_T_T);
 			ownedClasses.add(type);
 
-			ownedClasses = orphanage.getOwnedClasses();
-			type = _Bag_Bag_collectNested_V_NullFree;
+			ownedClasses = orphanPackage.getOwnedClasses();
+			type = _Bag_Bag_collect_V_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Bag_collectNested_V);
+			superClasses.add(_Collection_Bag_collect_V_F);
 			ownedClasses.add(type);
-			type = _Bag_Bag_collect_V_NullFree;
+			type = _Bag_Bag_collectNested_V_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Bag_collect_V);
+			superClasses.add(_Collection_Bag_collectNested_V_F);
 			ownedClasses.add(type);
-			type = _Bag_Bag_flatten_T2_NullFree;
+			type = _Bag_Bag_flatten_T2_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Bag_flatten_T2);
+			superClasses.add(_Collection_Bag_flatten_T2_F);
 			ownedClasses.add(type);
-			type = _Bag_Bag_selectByKind_TT_NullFree;
+			type = _Bag_Bag_selectByKind_TT_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Bag_selectByKind_TT);
+			superClasses.add(_Collection_Bag_selectByKind_TT_F);
 			ownedClasses.add(type);
-			type = _Bag_Bag_selectByType_TT_NullFree;
+			type = _Bag_Bag_selectByType_TT_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Bag_selectByType_TT);
+			superClasses.add(_Collection_Bag_selectByType_TT_F);
 			ownedClasses.add(type);
-			type = _Bag_CollectionType;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_CollectionType);
-			ownedClasses.add(type);
-			type = _Bag_Collection_T_NullFree;
+			type = _Bag_Collection_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Collection_T_1);
+			superClasses.add(_Collection_Collection_T_F);
 			ownedClasses.add(type);
-			type = _Bag_MapType;
+			type = _Bag_CollectionType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_MapType);
+			superClasses.add(_Collection_CollectionType_F);
 			ownedClasses.add(type);
-			type = _Bag_Map_collect_V2;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Map_collect_V2);
-			ownedClasses.add(type);
-			type = _Bag_Map_V_NullFree;
+			type = _Bag_Map_V_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Map_V);
+			superClasses.add(_Collection_Map_V_F);
 			ownedClasses.add(type);
-			type = _Bag_OclElement;
+			type = _Bag_Map_collect_V2_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OclElement);
+			superClasses.add(_Collection_Map_collect_V2_F);
 			ownedClasses.add(type);
-			type = _Bag_OclInvalid;
+			type = _Bag_MapType_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OclInvalid);
+			superClasses.add(_Collection_MapType_F);
 			ownedClasses.add(type);
-			type = _Bag_Set_collectNested_V_NullFree;
+			type = _Bag_OclElement_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclElement_F);
+			ownedClasses.add(type);
+			type = _Bag_OclInvalid_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclInvalid_F);
+			ownedClasses.add(type);
+			type = _Bag_Set_collect_V_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Set_collectNested_V);
+			superClasses.add(_Collection_Set_collect_V_F);
 			ownedClasses.add(type);
-			type = _Bag_Set_collect_V_NullFree;
+			type = _Bag_Set_collectNested_V_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Set_collect_V);
+			superClasses.add(_Collection_Set_collectNested_V_F);
 			ownedClasses.add(type);
-			type = _Collection_Integer;
+			type = _Collection_Bag_T_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_String;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_OclAny);
-			ownedClasses.add(type);
-			type = _Collection_Tuple;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_OclAny);
-			ownedClasses.add(type);
-			type = _Collection_Bag_collectNested_V;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_OclAny);
-			ownedClasses.add(type);
-			type = _Collection_Bag_collect_V;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_OclAny);
-			ownedClasses.add(type);
-			type = _Collection_Bag_flatten_T2;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_OclAny);
-			ownedClasses.add(type);
-			type = _Collection_Bag_selectByKind_TT;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_OclAny);
-			ownedClasses.add(type);
-			type = _Collection_Bag_selectByType_TT;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_OclAny);
-			ownedClasses.add(type);
-			type = _Collection_Bag_T_NullFree;
+			type = _Collection_Bag_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Bag_T;
+			type = _Collection_Bag_collect_V_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_CollectionType;
+			type = _Collection_Bag_collectNested_V_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Collection_collectNested_V_NullFree;
+			type = _Collection_Bag_flatten_T2_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedClasses.add(type);
+			type = _Collection_Bag_selectByKind_TT_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedClasses.add(type);
+			type = _Collection_Bag_selectByType_TT_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedClasses.add(type);
+			type = _Collection_Collection_T_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedClasses.add(type);
+			type = _Collection_Collection_collect_V_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Collection_collect_V_NullFree;
+			type = _Collection_Collection_collectNested_V_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Collection_excludesAll_T2_NullFree;
+			type = _Collection_Collection_excludesAll_T2_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Collection_flatten_T2_NullFree;
+			type = _Collection_Collection_flatten_T2_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Collection_includesAll_T2_NullFree;
+			type = _Collection_Collection_includesAll_T2_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Collection_product_T2_NullFree;
+			type = _Collection_Collection_product_T2_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Collection_selectByKind_TT_NullFree;
+			type = _Collection_Collection_selectByKind_TT_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Collection_selectByType_TT_NullFree;
+			type = _Collection_Collection_selectByType_TT_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Collection_T_1;
+			type = _Collection_CollectionType_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_MapType;
+			type = _Collection_Integer_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Map_collect_V2;
+			type = _Collection_Map_K_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Map_excludesAll_K2_NullFree;
+			type = _Collection_Map_K_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Map_includesAll_K2_NullFree;
+			type = _Collection_Map_V_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedClasses.add(type);
+			type = _Collection_Map_collect_V2_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedClasses.add(type);
+			type = _Collection_Map_excludesAll_K2_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Map_K_NullFree;
+			type = _Collection_Map_includesAll_K2_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Map_K;
+			type = _Collection_MapType_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Map_V;
+			type = _Collection_OclAny_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_OclAny;
+			type = _Collection_OclElement_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_OclElement;
+			type = _Collection_OclInvalid_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_OclInvalid;
+			type = _Collection_OclSelf_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_OclSelf;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_OclAny);
-			ownedClasses.add(type);
-			type = _Collection_OrderedCollection_T_NullFree;
+			type = _Collection_OrderedCollection_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_OrderedSet_collectNested_V;
+			type = _Collection_OrderedSet_T_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_OrderedSet_collect_V;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_OclAny);
-			ownedClasses.add(type);
-			type = _Collection_OrderedSet_flatten_T2;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_OclAny);
-			ownedClasses.add(type);
-			type = _Collection_OrderedSet_selectByKind_TT;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_OclAny);
-			ownedClasses.add(type);
-			type = _Collection_OrderedSet_selectByType_TT;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_OclAny);
-			ownedClasses.add(type);
-			type = _Collection_OrderedSet_T_NullFree;
+			type = _Collection_OrderedSet_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_OrderedSet_T;
+			type = _Collection_OrderedSet_collect_V_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Sequence_collectNested_V;
+			type = _Collection_OrderedSet_collectNested_V_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Sequence_collect_V;
+			type = _Collection_OrderedSet_flatten_T2_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Sequence_flatten_T2;
+			type = _Collection_OrderedSet_selectByKind_TT_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Sequence_selectByKind_TT;
+			type = _Collection_OrderedSet_selectByType_TT_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Sequence_selectByType_TT;
+			type = _Collection_Sequence_T_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Sequence_T_NullFree;
+			type = _Collection_Sequence_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Sequence_T;
+			type = _Collection_Sequence_collect_V_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Set_collectNested_V;
+			type = _Collection_Sequence_collectNested_V_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Set_collect_V;
+			type = _Collection_Sequence_flatten_T2_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Set_flatten_T2;
+			type = _Collection_Sequence_selectByKind_TT_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Set_selectByKind_TT;
+			type = _Collection_Sequence_selectByType_TT_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Set_selectByType_TT;
+			type = _Collection_Set_T_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Set_T_NullFree;
+			type = _Collection_Set_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_Set_T;
+			type = _Collection_Set_collect_V_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_UniqueCollection_T_NullFree;
+			type = _Collection_Set_collectNested_V_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedClasses.add(type);
+			type = _Collection_Set_flatten_T2_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedClasses.add(type);
+			type = _Collection_Set_selectByKind_TT_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedClasses.add(type);
+			type = _Collection_Set_selectByType_TT_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedClasses.add(type);
+			type = _Collection_String_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedClasses.add(type);
+			type = _Collection_Tuple_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedClasses.add(type);
+			type = _Collection_UniqueCollection_T_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedClasses.add(type);
+			type = _Collection_UniqueCollection_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Collection_UniqueCollection_T;
+			type = _OrderedCollection_Bag_T_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OclAny);
+			superClasses.add(_Collection_Bag_T_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Integer;
+			type = _OrderedCollection_Collection_T_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Integer);
+			superClasses.add(_Collection_Collection_T_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_String;
+			type = _OrderedCollection_Integer_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_String);
+			superClasses.add(_Collection_Integer_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Bag_T;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Bag_T);
-			ownedClasses.add(type);
-			type = _OrderedCollection_Collection_T;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Collection_T_1);
-			ownedClasses.add(type);
-			type = _OrderedCollection_OrderedSet_collectNested_V;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OrderedSet_collectNested_V);
-			ownedClasses.add(type);
-			type = _OrderedCollection_OrderedSet_collect_V;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OrderedSet_collect_V);
-			ownedClasses.add(type);
-			type = _OrderedCollection_OrderedSet_flatten_T2;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OrderedSet_flatten_T2);
-			ownedClasses.add(type);
-			type = _OrderedCollection_OrderedSet_selectByKind_TT;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OrderedSet_selectByKind_TT);
-			ownedClasses.add(type);
-			type = _OrderedCollection_OrderedSet_selectByType_TT;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OrderedSet_selectByType_TT);
-			ownedClasses.add(type);
-			type = _OrderedCollection_OrderedSet_T_NullFree;
+			type = _OrderedCollection_OrderedSet_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OrderedSet_T);
+			superClasses.add(_Collection_OrderedSet_T_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Sequence_collectNested_V;
+			type = _OrderedCollection_OrderedSet_collect_V_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Sequence_collectNested_V);
+			superClasses.add(_Collection_OrderedSet_collect_V_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Sequence_collect_V;
+			type = _OrderedCollection_OrderedSet_collectNested_V_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Sequence_collect_V);
+			superClasses.add(_Collection_OrderedSet_collectNested_V_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Sequence_flatten_T2;
+			type = _OrderedCollection_OrderedSet_flatten_T2_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Sequence_flatten_T2);
+			superClasses.add(_Collection_OrderedSet_flatten_T2_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Sequence_selectByKind_TT;
+			type = _OrderedCollection_OrderedSet_selectByKind_TT_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Sequence_selectByKind_TT);
+			superClasses.add(_Collection_OrderedSet_selectByKind_TT_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Sequence_selectByType_TT;
+			type = _OrderedCollection_OrderedSet_selectByType_TT_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Sequence_selectByType_TT);
+			superClasses.add(_Collection_OrderedSet_selectByType_TT_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Sequence_T_NullFree;
+			type = _OrderedCollection_Sequence_T_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_T_F);
+			ownedClasses.add(type);
+			type = _OrderedCollection_Sequence_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Sequence_T);
+			superClasses.add(_Collection_Sequence_T_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Sequence_T;
+			type = _OrderedCollection_Sequence_collect_V_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Sequence_T);
+			superClasses.add(_Collection_Sequence_collect_V_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_Set_T;
+			type = _OrderedCollection_Sequence_collectNested_V_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Set_T);
+			superClasses.add(_Collection_Sequence_collectNested_V_F);
 			ownedClasses.add(type);
-			type = _OrderedCollection_UniqueCollection_T;
+			type = _OrderedCollection_Sequence_flatten_T2_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_UniqueCollection_T);
+			superClasses.add(_Collection_Sequence_flatten_T2_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_Collection_T_NullFree;
+			type = _OrderedCollection_Sequence_selectByKind_TT_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_selectByKind_TT_F);
+			ownedClasses.add(type);
+			type = _OrderedCollection_Sequence_selectByType_TT_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_selectByType_TT_F);
+			ownedClasses.add(type);
+			type = _OrderedCollection_Set_T_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Set_T_F);
+			ownedClasses.add(type);
+			type = _OrderedCollection_String_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_String_F);
+			ownedClasses.add(type);
+			type = _OrderedCollection_UniqueCollection_T_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_UniqueCollection_T_F);
+			ownedClasses.add(type);
+			type = _OrderedSet_Collection_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Collection_T);
-			superClasses.add(_UniqueCollection_Collection_T);
+			superClasses.add(_OrderedCollection_Collection_T_F);
+			superClasses.add(_UniqueCollection_Collection_T_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_OrderedSet_flatten_T2_NullFree;
+			type = _OrderedSet_OrderedSet_flatten_T2_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_OrderedSet_flatten_T2);
-			superClasses.add(_UniqueCollection_OrderedSet_flatten_T2);
+			superClasses.add(_OrderedCollection_OrderedSet_flatten_T2_F);
+			superClasses.add(_UniqueCollection_OrderedSet_flatten_T2_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_OrderedSet_selectByKind_TT_NullFree;
+			type = _OrderedSet_OrderedSet_selectByKind_TT_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_OrderedSet_selectByKind_TT);
-			superClasses.add(_UniqueCollection_OrderedSet_selectByKind_TT);
+			superClasses.add(_OrderedCollection_OrderedSet_selectByKind_TT_F);
+			superClasses.add(_UniqueCollection_OrderedSet_selectByKind_TT_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_OrderedSet_selectByType_TT_NullFree;
+			type = _OrderedSet_OrderedSet_selectByType_TT_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_OrderedSet_selectByType_TT);
-			superClasses.add(_UniqueCollection_OrderedSet_selectByType_TT);
+			superClasses.add(_OrderedCollection_OrderedSet_selectByType_TT_F);
+			superClasses.add(_UniqueCollection_OrderedSet_selectByType_TT_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_Sequence_T_NullFree;
+			type = _OrderedSet_Sequence_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Sequence_T);
-			superClasses.add(_UniqueCollection_Sequence_T);
+			superClasses.add(_OrderedCollection_Sequence_T_F);
+			superClasses.add(_UniqueCollection_Sequence_T_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_Set_T_NullFree;
+			type = _OrderedSet_Set_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Set_T);
-			superClasses.add(_UniqueCollection_Set_T);
+			superClasses.add(_OrderedCollection_Set_T_F);
+			superClasses.add(_UniqueCollection_Set_T_F);
 			ownedClasses.add(type);
-			type = _OrderedSet_UniqueCollection_T_NullFree;
+			type = _OrderedSet_UniqueCollection_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_UniqueCollection_T);
-			superClasses.add(_UniqueCollection_UniqueCollection_T_1);
+			superClasses.add(_OrderedCollection_UniqueCollection_T_F);
+			superClasses.add(_UniqueCollection_UniqueCollection_T_F);
 			ownedClasses.add(type);
-			type = _Sequence_Integer_NullFree;
+			type = _Sequence_Bag_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Integer);
+			superClasses.add(_OrderedCollection_Bag_T_F);
 			ownedClasses.add(type);
-			type = _Sequence_String_NullFree;
+			type = _Sequence_Collection_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_String);
+			superClasses.add(_OrderedCollection_Collection_T_F);
 			ownedClasses.add(type);
-			type = _Sequence_Bag_T_NullFree;
+			type = _Sequence_Integer_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Bag_T);
+			superClasses.add(_OrderedCollection_Integer_F);
 			ownedClasses.add(type);
-			type = _Sequence_Collection_T_NullFree;
+			type = _Sequence_OrderedSet_collect_V_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Collection_T);
+			superClasses.add(_OrderedCollection_OrderedSet_collect_V_F);
 			ownedClasses.add(type);
-			type = _Sequence_OrderedSet_collectNested_V_NullFree;
+			type = _Sequence_OrderedSet_collectNested_V_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_OrderedSet_collectNested_V);
+			superClasses.add(_OrderedCollection_OrderedSet_collectNested_V_F);
 			ownedClasses.add(type);
-			type = _Sequence_OrderedSet_collect_V_NullFree;
+			type = _Sequence_Sequence_collect_V_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_OrderedSet_collect_V);
+			superClasses.add(_OrderedCollection_Sequence_collect_V_F);
 			ownedClasses.add(type);
-			type = _Sequence_Sequence_collectNested_V_NullFree;
+			type = _Sequence_Sequence_collectNested_V_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Sequence_collectNested_V);
+			superClasses.add(_OrderedCollection_Sequence_collectNested_V_F);
 			ownedClasses.add(type);
-			type = _Sequence_Sequence_collect_V_NullFree;
+			type = _Sequence_Sequence_flatten_T2_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Sequence_collect_V);
+			superClasses.add(_OrderedCollection_Sequence_flatten_T2_F);
 			ownedClasses.add(type);
-			type = _Sequence_Sequence_flatten_T2_NullFree;
+			type = _Sequence_Sequence_selectByKind_TT_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Sequence_flatten_T2);
+			superClasses.add(_OrderedCollection_Sequence_selectByKind_TT_F);
 			ownedClasses.add(type);
-			type = _Sequence_Sequence_selectByKind_TT_NullFree;
+			type = _Sequence_Sequence_selectByType_TT_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Sequence_selectByKind_TT);
+			superClasses.add(_OrderedCollection_Sequence_selectByType_TT_F);
 			ownedClasses.add(type);
-			type = _Sequence_Sequence_selectByType_TT_NullFree;
+			type = _Sequence_String_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_OrderedCollection_Sequence_selectByType_TT);
+			superClasses.add(_OrderedCollection_String_F);
 			ownedClasses.add(type);
-			type = _Set_Tuple_NullFree;
+			type = _Set_Bag_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Tuple);
+			superClasses.add(_UniqueCollection_Bag_T_F);
 			ownedClasses.add(type);
-			type = _Set_Bag_T_NullFree;
+			type = _Set_Collection_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Bag_T);
+			superClasses.add(_UniqueCollection_Collection_T_F);
 			ownedClasses.add(type);
-			type = _Set_Collection_T_NullFree;
+			type = _Set_Map_K_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Collection_T);
+			superClasses.add(_UniqueCollection_Map_K_F);
 			ownedClasses.add(type);
-			type = _Set_Map_K_NullFree;
+			type = _Set_OclElement_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Map_K);
+			superClasses.add(_UniqueCollection_OclElement_F);
 			ownedClasses.add(type);
-			type = _Set_OclElement_NullFree;
+			type = _Set_OclSelf_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_UniqueCollection_OclSelf_F);
+			ownedClasses.add(type);
+			type = _Set_OclSelf_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_OclElement);
+			superClasses.add(_UniqueCollection_OclSelf_F);
 			ownedClasses.add(type);
-			type = _Set_OclSelf_NullFree;
+			type = _Set_Set_flatten_T2_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_OclSelf);
+			superClasses.add(_UniqueCollection_Set_flatten_T2_F);
 			ownedClasses.add(type);
-			type = _Set_OclSelf;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_OclSelf);
-			ownedClasses.add(type);
-			type = _Set_Set_flatten_T2_NullFree;
+			type = _Set_Set_selectByKind_TT_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Set_flatten_T2);
+			superClasses.add(_UniqueCollection_Set_selectByKind_TT_F);
 			ownedClasses.add(type);
-			type = _Set_Set_selectByKind_TT_NullFree;
+			type = _Set_Set_selectByType_TT_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Set_selectByKind_TT);
+			superClasses.add(_UniqueCollection_Set_selectByType_TT_F);
 			ownedClasses.add(type);
-			type = _Set_Set_selectByType_TT_NullFree;
+			type = _Set_Tuple_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_Set_selectByType_TT);
+			superClasses.add(_UniqueCollection_Tuple_F);
 			ownedClasses.add(type);
-			type = _Set_UniqueCollection_T_NullFree;
+			type = _Set_UniqueCollection_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_UniqueCollection_UniqueCollection_T_1);
+			superClasses.add(_UniqueCollection_UniqueCollection_T_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Tuple;
+			type = _UniqueCollection_Bag_T_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Tuple);
+			superClasses.add(_Collection_Bag_T_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Bag_T;
+			type = _UniqueCollection_Collection_T_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Bag_T);
+			superClasses.add(_Collection_Collection_T_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Collection_T_NullFree;
+			type = _UniqueCollection_Collection_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Collection_T_1);
+			superClasses.add(_Collection_Collection_T_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Collection_T;
+			type = _UniqueCollection_Map_K_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Collection_T_1);
+			superClasses.add(_Collection_Map_K_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Map_K;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Map_K);
-			ownedClasses.add(type);
-			type = _UniqueCollection_OclAny_NullFree;
+			type = _UniqueCollection_OclAny_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OclAny);
+			superClasses.add(_Collection_OclAny_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_OclElement;
+			type = _UniqueCollection_OclElement_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OclElement);
+			superClasses.add(_Collection_OclElement_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_OclSelf;
+			type = _UniqueCollection_OclSelf_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OclSelf);
+			superClasses.add(_Collection_OclSelf_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_OrderedSet_flatten_T2;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OrderedSet_flatten_T2);
-			ownedClasses.add(type);
-			type = _UniqueCollection_OrderedSet_selectByKind_TT;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OrderedSet_selectByKind_TT);
-			ownedClasses.add(type);
-			type = _UniqueCollection_OrderedSet_selectByType_TT;
-			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OrderedSet_selectByType_TT);
-			ownedClasses.add(type);
-			type = _UniqueCollection_OrderedSet_T_NullFree;
+			type = _UniqueCollection_OrderedSet_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_OrderedSet_T);
+			superClasses.add(_Collection_OrderedSet_T_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Sequence_T;
+			type = _UniqueCollection_OrderedSet_flatten_T2_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Sequence_T);
+			superClasses.add(_Collection_OrderedSet_flatten_T2_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Set_flatten_T2;
+			type = _UniqueCollection_OrderedSet_selectByKind_TT_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Set_flatten_T2);
+			superClasses.add(_Collection_OrderedSet_selectByKind_TT_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Set_selectByKind_TT;
+			type = _UniqueCollection_OrderedSet_selectByType_TT_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Set_selectByKind_TT);
+			superClasses.add(_Collection_OrderedSet_selectByType_TT_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Set_selectByType_TT;
+			type = _UniqueCollection_Sequence_T_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Set_selectByType_TT);
+			superClasses.add(_Collection_Sequence_T_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Set_T_NullFree;
+			type = _UniqueCollection_Set_T_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Set_T_F);
+			ownedClasses.add(type);
+			type = _UniqueCollection_Set_T_T;
 			type.setIsNullFree(true);
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Set_T);
+			superClasses.add(_Collection_Set_T_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_Set_T;
+			type = _UniqueCollection_Set_flatten_T2_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_Set_T);
+			superClasses.add(_Collection_Set_flatten_T2_F);
 			ownedClasses.add(type);
-			type = _UniqueCollection_UniqueCollection_T_1;
+			type = _UniqueCollection_Set_selectByKind_TT_F;
 			superClasses = type.getSuperClasses();
-			superClasses.add(_Collection_UniqueCollection_T);
+			superClasses.add(_Collection_Set_selectByKind_TT_F);
+			ownedClasses.add(type);
+			type = _UniqueCollection_Set_selectByType_TT_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Set_selectByType_TT_F);
+			ownedClasses.add(type);
+			type = _UniqueCollection_Tuple_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Tuple_F);
+			ownedClasses.add(type);
+			type = _UniqueCollection_UniqueCollection_T_F;
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_UniqueCollection_T_F);
 			ownedClasses.add(type);
 		}
 
@@ -1366,39 +1366,39 @@
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
 
-			ownedClasses = orphanage.getOwnedClasses();
-			type = _Map_Collection_T_Collection_collectBy_V;
+			ownedClasses = orphanPackage.getOwnedClasses();
+			type = _Map_Collection_T_F_Collection_collectBy_V_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Map_Map_excludesMap_K2_Map_excludesMap_V2;
+			type = _Map_Map_excludesMap_K2_T_Map_excludesMap_V2_T;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Map_Map_excludingMap_K2_Map_excludingMap_V2;
+			type = _Map_Map_excludingMap_K2_T_Map_excludingMap_V2_T;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Map_Map_includesMap_K2_Map_includesMap_V2;
+			type = _Map_Map_includesMap_K2_T_Map_includesMap_V2_T;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Map_Map_includingMap_K2_Map_includingMap_V2;
+			type = _Map_Map_includingMap_K2_T_Map_includingMap_V2_T;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Map_Map_K_Map_collectBy_V2;
+			type = _Map_Map_K_F_Map_collectBy_V2_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
-			type = _Map_Map_K_Map_collectNested_V2;
+			type = _Map_Map_K_F_Map_collectNested_V2_F;
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclAny);
 			ownedClasses.add(type);
 		}
 
 		private void installTupleTypes() {
-			final List<Class> orphanTypes = orphanage.getOwnedClasses();
+			final List<Class> orphanTypes = orphanPackage.getOwnedClasses();
 			TupleType type;
 			List<Class> superClasses;
 			orphanTypes.add(type = _Tuple);
@@ -1406,205 +1406,205 @@
 			superClasses.add(_OclTuple);
 		}
 
-		private final @NonNull LambdaType _Lambda_Bag_T = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Bag_T_1 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Bag_T_2 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Bag_T_3 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Bag_T_4 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Collection_T = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Collection_T_1 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Collection_T_2 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Collection_T_3 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Collection_T_4 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Collection_T_5 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Map_K = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Map_K_1 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Map_K_2 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Map_K_3 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Map_K_4 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Map_K_5 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_OrderedSet_T = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_OrderedSet_T_1 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_OrderedSet_T_2 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_OrderedSet_T_3 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_OrderedSet_T_4 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Sequence_T = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Sequence_T_1 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Sequence_T_2 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Sequence_T_3 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Sequence_T_4 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Set_T = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Set_T_1 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Set_T_2 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Set_T_3 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_Set_T_4 = createLambdaType("Lambda");
-		private final @NonNull LambdaType _Lambda_UniqueCollection_T = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Bag_T_Boolean = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Bag_T_Bag_collectNested_V = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Bag_T_Bag_collect_V = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Bag_T_OclAny = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Bag_T_Set = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Collection_T_Boolean = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Collection_T_Collection_collectBy_V = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Collection_T_Collection_collectNested_V = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Collection_T_Collection_collect_V = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Collection_T_Collection_iterate_Tacc = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Collection_T_OclAny = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Map_K_Boolean = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Map_K_Map_collectBy_V2 = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Map_K_Map_collectNested_V2 = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Map_K_Map_collect_V2 = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Map_K_Map_iterate_Tacc = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Map_K_OclAny = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_OrderedSet_T_Boolean = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_OrderedSet_T_OclAny = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_OrderedSet_T_OrderedSet = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_OrderedSet_T_OrderedSet_collectNested_V = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_OrderedSet_T_OrderedSet_collect_V = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Sequence_T_Boolean = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Sequence_T_OclAny = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Sequence_T_OrderedSet = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Sequence_T_Sequence_collectNested_V = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Sequence_T_Sequence_collect_V = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Set_T_Boolean = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Set_T_OclAny = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Set_T_Set = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Set_T_Set_collectNested_V = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_Set_T_Set_collect_V = createLambdaType("Lambda");
+		private final @NonNull LambdaType _Lambda_UniqueCollection_T_OclAny = createLambdaType("Lambda");
 
 		private void installLambdaTypes() {
-			final List<Class> orphanTypes = orphanage.getOwnedClasses();
+			final List<Class> orphanTypes = orphanPackage.getOwnedClasses();
 			LambdaType type;
 			List<Class> superClasses;
-			orphanTypes.add(type = _Lambda_Bag_T);
+			orphanTypes.add(type = _Lambda_Bag_T_Boolean);
 			type.setContextType(tp_Bag_T);
 			type.setResultType(_Boolean);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Bag_T_1);
+			orphanTypes.add(type = _Lambda_Bag_T_Bag_collectNested_V);
 			type.setContextType(tp_Bag_T);
 			type.setResultType(tp_Bag_collectNested_V);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Bag_T_2);
+			orphanTypes.add(type = _Lambda_Bag_T_Bag_collect_V);
 			type.setContextType(tp_Bag_T);
 			type.setResultType(tp_Bag_collect_V);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Bag_T_3);
+			orphanTypes.add(type = _Lambda_Bag_T_OclAny);
 			type.setContextType(tp_Bag_T);
 			type.setResultType(_OclAny);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Bag_T_4);
+			orphanTypes.add(type = _Lambda_Bag_T_Set);
 			type.setContextType(tp_Bag_T);
-			type.setResultType(_Set_Bag_T_NullFree);
+			type.setResultType(_Set_Bag_T_T);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Collection_T);
+			orphanTypes.add(type = _Lambda_Collection_T_Boolean);
 			type.setContextType(tp_Collection_T);
 			type.setResultType(_Boolean);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Collection_T_1);
+			orphanTypes.add(type = _Lambda_Collection_T_Collection_collectBy_V);
 			type.setContextType(tp_Collection_T);
 			type.setResultType(tp_Collection_collectBy_V);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Collection_T_2);
+			orphanTypes.add(type = _Lambda_Collection_T_Collection_collectNested_V);
 			type.setContextType(tp_Collection_T);
 			type.setResultType(tp_Collection_collectNested_V);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Collection_T_3);
+			orphanTypes.add(type = _Lambda_Collection_T_Collection_collect_V);
 			type.setContextType(tp_Collection_T);
 			type.setResultType(tp_Collection_collect_V);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Collection_T_4);
+			orphanTypes.add(type = _Lambda_Collection_T_Collection_iterate_Tacc);
 			type.setContextType(tp_Collection_T);
 			type.setResultType(tp_Collection_iterate_Tacc);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Collection_T_5);
+			orphanTypes.add(type = _Lambda_Collection_T_OclAny);
 			type.setContextType(tp_Collection_T);
 			type.setResultType(_OclAny);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Map_K);
+			orphanTypes.add(type = _Lambda_Map_K_Boolean);
 			type.setContextType(tp_Map_K);
 			type.setResultType(_Boolean);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Map_K_1);
+			orphanTypes.add(type = _Lambda_Map_K_Map_collectBy_V2);
 			type.setContextType(tp_Map_K);
 			type.setResultType(tp_Map_collectBy_V2);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Map_K_2);
+			orphanTypes.add(type = _Lambda_Map_K_Map_collectNested_V2);
 			type.setContextType(tp_Map_K);
 			type.setResultType(tp_Map_collectNested_V2);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Map_K_3);
+			orphanTypes.add(type = _Lambda_Map_K_Map_collect_V2);
 			type.setContextType(tp_Map_K);
 			type.setResultType(tp_Map_collect_V2);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Map_K_4);
+			orphanTypes.add(type = _Lambda_Map_K_Map_iterate_Tacc);
 			type.setContextType(tp_Map_K);
 			type.setResultType(tp_Map_iterate_Tacc);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Map_K_5);
+			orphanTypes.add(type = _Lambda_Map_K_OclAny);
 			type.setContextType(tp_Map_K);
 			type.setResultType(_OclAny);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_OrderedSet_T);
+			orphanTypes.add(type = _Lambda_OrderedSet_T_Boolean);
 			type.setContextType(tp_OrderedSet_T);
 			type.setResultType(_Boolean);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_OrderedSet_T_1);
+			orphanTypes.add(type = _Lambda_OrderedSet_T_OclAny);
 			type.setContextType(tp_OrderedSet_T);
 			type.setResultType(_OclAny);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_OrderedSet_T_2);
+			orphanTypes.add(type = _Lambda_OrderedSet_T_OrderedSet);
 			type.setContextType(tp_OrderedSet_T);
 			type.setResultType(_OrderedSet_OrderedSet_T);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_OrderedSet_T_3);
+			orphanTypes.add(type = _Lambda_OrderedSet_T_OrderedSet_collectNested_V);
 			type.setContextType(tp_OrderedSet_T);
 			type.setResultType(tp_OrderedSet_collectNested_V);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_OrderedSet_T_4);
+			orphanTypes.add(type = _Lambda_OrderedSet_T_OrderedSet_collect_V);
 			type.setContextType(tp_OrderedSet_T);
 			type.setResultType(tp_OrderedSet_collect_V);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Sequence_T);
+			orphanTypes.add(type = _Lambda_Sequence_T_Boolean);
 			type.setContextType(tp_Sequence_T);
 			type.setResultType(_Boolean);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Sequence_T_1);
+			orphanTypes.add(type = _Lambda_Sequence_T_OclAny);
 			type.setContextType(tp_Sequence_T);
 			type.setResultType(_OclAny);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Sequence_T_2);
+			orphanTypes.add(type = _Lambda_Sequence_T_OrderedSet);
 			type.setContextType(tp_Sequence_T);
-			type.setResultType(_OrderedSet_Sequence_T_NullFree);
+			type.setResultType(_OrderedSet_Sequence_T_T);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Sequence_T_3);
+			orphanTypes.add(type = _Lambda_Sequence_T_Sequence_collectNested_V);
 			type.setContextType(tp_Sequence_T);
 			type.setResultType(tp_Sequence_collectNested_V);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Sequence_T_4);
+			orphanTypes.add(type = _Lambda_Sequence_T_Sequence_collect_V);
 			type.setContextType(tp_Sequence_T);
 			type.setResultType(tp_Sequence_collect_V);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Set_T);
+			orphanTypes.add(type = _Lambda_Set_T_Boolean);
 			type.setContextType(tp_Set_T);
 			type.setResultType(_Boolean);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Set_T_1);
+			orphanTypes.add(type = _Lambda_Set_T_OclAny);
 			type.setContextType(tp_Set_T);
 			type.setResultType(_OclAny);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Set_T_2);
+			orphanTypes.add(type = _Lambda_Set_T_Set);
 			type.setContextType(tp_Set_T);
 			type.setResultType(_Set_Set_T);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Set_T_3);
+			orphanTypes.add(type = _Lambda_Set_T_Set_collectNested_V);
 			type.setContextType(tp_Set_T);
 			type.setResultType(tp_Set_collectNested_V);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_Set_T_4);
+			orphanTypes.add(type = _Lambda_Set_T_Set_collect_V);
 			type.setContextType(tp_Set_T);
 			type.setResultType(tp_Set_collect_V);
 			superClasses = type.getSuperClasses();
 			superClasses.add(_OclLambda);
-			orphanTypes.add(type = _Lambda_UniqueCollection_T);
+			orphanTypes.add(type = _Lambda_UniqueCollection_T_OclAny);
 			type.setContextType(tp_UniqueCollection_T);
 			type.setResultType(_OclAny);
 			superClasses = type.getSuperClasses();
@@ -1613,7 +1613,7 @@
 
 		private final @NonNull Operation op_Boolean__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
 		private final @NonNull Operation op_Boolean__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
-		private final @NonNull Operation op_Boolean_allInstances = createOperation("allInstances", _Set_OclSelf_NullFree, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
+		private final @NonNull Operation op_Boolean_allInstances = createOperation("allInstances", _Set_OclSelf_T, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
 		private final @NonNull Operation op_Boolean_and = createOperation("and", _Boolean, "org.eclipse.ocl.pivot.library.logical.BooleanAndOperation", org.eclipse.ocl.pivot.library.logical.BooleanAndOperation.INSTANCE);
 		private final @NonNull Operation op_Boolean_and2 = createOperation("and2", _Boolean, "org.eclipse.ocl.pivot.library.logical.BooleanAndOperation2", org.eclipse.ocl.pivot.library.logical.BooleanAndOperation2.INSTANCE);
 		private final @NonNull Operation op_Boolean_implies = createOperation("implies", _Boolean, "org.eclipse.ocl.pivot.library.logical.BooleanImpliesOperation", org.eclipse.ocl.pivot.library.logical.BooleanImpliesOperation.INSTANCE);
@@ -1658,7 +1658,7 @@
 		private final @NonNull Operation op_String__gt_ = createOperation(">", _Boolean, "org.eclipse.ocl.pivot.library.string.StringGreaterThanOperation", org.eclipse.ocl.pivot.library.string.StringGreaterThanOperation.INSTANCE);
 		private final @NonNull Operation op_String__gt__eq_ = createOperation(">=", _Boolean, "org.eclipse.ocl.pivot.library.string.StringGreaterThanEqualOperation", org.eclipse.ocl.pivot.library.string.StringGreaterThanEqualOperation.INSTANCE);
 		private final @NonNull Operation op_String_at = createOperation("at", _String, "org.eclipse.ocl.pivot.library.string.StringAtOperation", org.eclipse.ocl.pivot.library.string.StringAtOperation.INSTANCE);
-		private final @NonNull Operation op_String_characters = createOperation("characters", _Sequence_String_NullFree, "org.eclipse.ocl.pivot.library.string.StringCharactersOperation", org.eclipse.ocl.pivot.library.string.StringCharactersOperation.INSTANCE);
+		private final @NonNull Operation op_String_characters = createOperation("characters", _Sequence_String_T, "org.eclipse.ocl.pivot.library.string.StringCharactersOperation", org.eclipse.ocl.pivot.library.string.StringCharactersOperation.INSTANCE);
 		private final @NonNull Operation op_String_compareTo = createOperation("compareTo", _Integer, "org.eclipse.ocl.pivot.library.string.StringCompareToOperation", org.eclipse.ocl.pivot.library.string.StringCompareToOperation.INSTANCE);
 		private final @NonNull Operation op_String_concat = createOperation("concat", _String, "org.eclipse.ocl.pivot.library.string.StringConcatOperation", org.eclipse.ocl.pivot.library.string.StringConcatOperation.INSTANCE);
 		private final @NonNull Operation op_String_endsWith = createOperation("endsWith", _Boolean, "org.eclipse.ocl.pivot.library.string.StringEndsWithOperation", org.eclipse.ocl.pivot.library.string.StringEndsWithOperation.INSTANCE);
@@ -1681,9 +1681,9 @@
 		private final @NonNull Operation op_String_toString = createOperation("toString", _String, "org.eclipse.ocl.pivot.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyToStringOperation.INSTANCE);
 		private final @NonNull Operation op_String_toUpper = createOperation("toUpper", _String, "org.eclipse.ocl.pivot.library.string.StringToUpperCaseOperation", org.eclipse.ocl.pivot.library.string.StringToUpperCaseOperation.INSTANCE);
 		private final @NonNull Operation op_String_toUpperCase = createOperation("toUpperCase", _String, "org.eclipse.ocl.pivot.library.string.StringToUpperCaseOperation", org.eclipse.ocl.pivot.library.string.StringToUpperCaseOperation.INSTANCE);
-		private final @NonNull Operation op_String_tokenize = createOperation("tokenize", _Sequence_String_NullFree, "org.eclipse.ocl.pivot.library.string.StringTokenizeOperation", org.eclipse.ocl.pivot.library.string.StringTokenizeOperation.INSTANCE);
-		private final @NonNull Operation op_String_tokenize_1 = createOperation("tokenize", _Sequence_String_NullFree, "org.eclipse.ocl.pivot.library.string.StringTokenizeOperation", org.eclipse.ocl.pivot.library.string.StringTokenizeOperation.INSTANCE);
-		private final @NonNull Operation op_String_tokenize_2 = createOperation("tokenize", _Sequence_String_NullFree, "org.eclipse.ocl.pivot.library.string.StringTokenizeOperation", org.eclipse.ocl.pivot.library.string.StringTokenizeOperation.INSTANCE);
+		private final @NonNull Operation op_String_tokenize = createOperation("tokenize", _Sequence_String_T, "org.eclipse.ocl.pivot.library.string.StringTokenizeOperation", org.eclipse.ocl.pivot.library.string.StringTokenizeOperation.INSTANCE);
+		private final @NonNull Operation op_String_tokenize_1 = createOperation("tokenize", _Sequence_String_T, "org.eclipse.ocl.pivot.library.string.StringTokenizeOperation", org.eclipse.ocl.pivot.library.string.StringTokenizeOperation.INSTANCE);
+		private final @NonNull Operation op_String_tokenize_2 = createOperation("tokenize", _Sequence_String_T, "org.eclipse.ocl.pivot.library.string.StringTokenizeOperation", org.eclipse.ocl.pivot.library.string.StringTokenizeOperation.INSTANCE);
 		private final @NonNull Operation op_String_trim = createOperation("trim", _String, "org.eclipse.ocl.pivot.library.string.StringTrimOperation", org.eclipse.ocl.pivot.library.string.StringTrimOperation.INSTANCE);
 		private final @NonNull Operation op_UnlimitedNatural_max = createOperation("max", _UnlimitedNatural, "org.eclipse.ocl.pivot.library.numeric.UnlimitedNaturalMaxOperation", org.eclipse.ocl.pivot.library.numeric.UnlimitedNaturalMaxOperation.INSTANCE);
 		private final @NonNull Operation op_UnlimitedNatural_min = createOperation("min", _UnlimitedNatural, "org.eclipse.ocl.pivot.library.numeric.UnlimitedNaturalMinOperation", org.eclipse.ocl.pivot.library.numeric.UnlimitedNaturalMinOperation.INSTANCE);
@@ -1693,43 +1693,43 @@
 		private final @NonNull Operation op_Bag__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
 		private final @NonNull Operation op_Bag_excluding = createOperation("excluding", _Bag_Bag_T, "org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation", org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation.INSTANCE);
 		private final @NonNull Operation op_Bag_excludingAll = createOperation("excludingAll", _Bag_Bag_T, "org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation", org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation.INSTANCE);
-		private final @NonNull Operation op_Bag_flatten = createOperation("flatten", _Bag_Bag_flatten_T2_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation", org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE, tp_Bag_flatten_T2);
+		private final @NonNull Operation op_Bag_flatten = createOperation("flatten", _Bag_Bag_flatten_T2_T, "org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation", org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE, tp_Bag_flatten_T2);
 		private final @NonNull Operation op_Bag_including = createOperation("including", _Bag_Bag_T, "org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation", org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation.INSTANCE);
 		private final @NonNull Operation op_Bag_includingAll = createOperation("includingAll", _Bag_Bag_T, "org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation", org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation.INSTANCE);
-		private final @NonNull Operation op_Bag_selectByKind = createOperation("selectByKind", _Bag_Bag_selectByKind_TT_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE, tp_Bag_selectByKind_TT);
-		private final @NonNull Operation op_Bag_selectByType = createOperation("selectByType", _Bag_Bag_selectByType_TT_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE, tp_Bag_selectByType_TT);
-		private final @NonNull Operation op_BooleanType_allInstances = createOperation("allInstances", _Set_OclSelf_NullFree, "org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation.INSTANCE);
-		private final @NonNull Operation op_Class_allInstances = createOperation("allInstances", _Set_OclSelf_NullFree, "org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation.INSTANCE);
+		private final @NonNull Operation op_Bag_selectByKind = createOperation("selectByKind", _Bag_Bag_selectByKind_TT_T, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE, tp_Bag_selectByKind_TT);
+		private final @NonNull Operation op_Bag_selectByType = createOperation("selectByType", _Bag_Bag_selectByType_TT_T, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE, tp_Bag_selectByType_TT);
+		private final @NonNull Operation op_BooleanType_allInstances = createOperation("allInstances", _Set_OclSelf_T, "org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation.INSTANCE);
+		private final @NonNull Operation op_Class_allInstances = createOperation("allInstances", _Set_OclSelf_T, "org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation.INSTANCE);
 		private final @NonNull Operation op_Collection__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
 		private final @NonNull Operation op_Collection__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
-		private final @NonNull Operation op_Collection_asBag = createOperation("asBag", _Bag_Collection_T_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionAsBagOperation", org.eclipse.ocl.pivot.library.collection.CollectionAsBagOperation.INSTANCE);
-		private final @NonNull Operation op_Collection_asOrderedSet = createOperation("asOrderedSet", _OrderedSet_Collection_T_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionAsOrderedSetOperation", org.eclipse.ocl.pivot.library.collection.CollectionAsOrderedSetOperation.INSTANCE);
-		private final @NonNull Operation op_Collection_asSequence = createOperation("asSequence", _Sequence_Collection_T_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionAsSequenceOperation", org.eclipse.ocl.pivot.library.collection.CollectionAsSequenceOperation.INSTANCE);
-		private final @NonNull Operation op_Collection_asSet = createOperation("asSet", _Set_Collection_T_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionAsSetOperation", org.eclipse.ocl.pivot.library.collection.CollectionAsSetOperation.INSTANCE);
+		private final @NonNull Operation op_Collection_asBag = createOperation("asBag", _Bag_Collection_T_T, "org.eclipse.ocl.pivot.library.collection.CollectionAsBagOperation", org.eclipse.ocl.pivot.library.collection.CollectionAsBagOperation.INSTANCE);
+		private final @NonNull Operation op_Collection_asOrderedSet = createOperation("asOrderedSet", _OrderedSet_Collection_T_T, "org.eclipse.ocl.pivot.library.collection.CollectionAsOrderedSetOperation", org.eclipse.ocl.pivot.library.collection.CollectionAsOrderedSetOperation.INSTANCE);
+		private final @NonNull Operation op_Collection_asSequence = createOperation("asSequence", _Sequence_Collection_T_T, "org.eclipse.ocl.pivot.library.collection.CollectionAsSequenceOperation", org.eclipse.ocl.pivot.library.collection.CollectionAsSequenceOperation.INSTANCE);
+		private final @NonNull Operation op_Collection_asSet = createOperation("asSet", _Set_Collection_T_T, "org.eclipse.ocl.pivot.library.collection.CollectionAsSetOperation", org.eclipse.ocl.pivot.library.collection.CollectionAsSetOperation.INSTANCE);
 		private final @NonNull Operation op_Collection_count = createOperation("count", _Integer, "org.eclipse.ocl.pivot.library.collection.CollectionCountOperation", org.eclipse.ocl.pivot.library.collection.CollectionCountOperation.INSTANCE);
 		private final @NonNull Operation op_Collection_excludes = createOperation("excludes", _Boolean, "org.eclipse.ocl.pivot.library.collection.CollectionExcludesOperation", org.eclipse.ocl.pivot.library.collection.CollectionExcludesOperation.INSTANCE);
 		private final @NonNull Operation op_Collection_excludesAll = createOperation("excludesAll", _Boolean, "org.eclipse.ocl.pivot.library.collection.CollectionExcludesAllOperation", org.eclipse.ocl.pivot.library.collection.CollectionExcludesAllOperation.INSTANCE, tp_Collection_excludesAll_T2);
 		private final @NonNull Operation op_Collection_excluding = createOperation("excluding", _Collection_Collection_T, "org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation", org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation.INSTANCE);
 		private final @NonNull Operation op_Collection_excludingAll = createOperation("excludingAll", _Collection_Collection_T, "org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation", org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation.INSTANCE);
-		private final @NonNull Operation op_Collection_flatten = createOperation("flatten", _Collection_Collection_flatten_T2_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation", org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE, tp_Collection_flatten_T2);
+		private final @NonNull Operation op_Collection_flatten = createOperation("flatten", _Collection_Collection_flatten_T2_T, "org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation", org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE, tp_Collection_flatten_T2);
 		private final @NonNull Operation op_Collection_includes = createOperation("includes", _Boolean, "org.eclipse.ocl.pivot.library.collection.CollectionIncludesOperation", org.eclipse.ocl.pivot.library.collection.CollectionIncludesOperation.INSTANCE);
 		private final @NonNull Operation op_Collection_includesAll = createOperation("includesAll", _Boolean, "org.eclipse.ocl.pivot.library.collection.CollectionIncludesAllOperation", org.eclipse.ocl.pivot.library.collection.CollectionIncludesAllOperation.INSTANCE, tp_Collection_includesAll_T2);
 		private final @NonNull Operation op_Collection_including = createOperation("including", _Collection_Collection_T, "org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation", org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation.INSTANCE);
 		private final @NonNull Operation op_Collection_includingAll = createOperation("includingAll", _Collection_Collection_T, "org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation", org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation.INSTANCE);
-		private final @NonNull Operation op_Collection_intersection = createOperation("intersection", _Bag_Collection_T_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation.INSTANCE);
-		private final @NonNull Operation op_Collection_intersection_1 = createOperation("intersection", _Set_Collection_T_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation.INSTANCE);
+		private final @NonNull Operation op_Collection_intersection = createOperation("intersection", _Bag_Collection_T_T, "org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation.INSTANCE);
+		private final @NonNull Operation op_Collection_intersection_1 = createOperation("intersection", _Set_Collection_T_T, "org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation.INSTANCE);
 		private final @NonNull Operation op_Collection_isEmpty = createOperation("isEmpty", _Boolean, "org.eclipse.ocl.pivot.library.collection.CollectionIsEmptyOperation", org.eclipse.ocl.pivot.library.collection.CollectionIsEmptyOperation.INSTANCE);
 		private final @NonNull Operation op_Collection_max = createOperation("max", tp_Collection_T, "org.eclipse.ocl.pivot.library.collection.CollectionMaxOperation", org.eclipse.ocl.pivot.library.collection.CollectionMaxOperation.INSTANCE);
 		private final @NonNull Operation op_Collection_min = createOperation("min", tp_Collection_T, "org.eclipse.ocl.pivot.library.collection.CollectionMinOperation", org.eclipse.ocl.pivot.library.collection.CollectionMinOperation.INSTANCE);
 		private final @NonNull Operation op_Collection_notEmpty = createOperation("notEmpty", _Boolean, "org.eclipse.ocl.pivot.library.collection.CollectionNotEmptyOperation", org.eclipse.ocl.pivot.library.collection.CollectionNotEmptyOperation.INSTANCE);
-		private final @NonNull Operation op_Collection_product = createOperation("product", _Set_Tuple_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionProductOperation", org.eclipse.ocl.pivot.library.collection.CollectionProductOperation.INSTANCE, tp_Collection_product_T2);
-		private final @NonNull Operation op_Collection_selectByKind = createOperation("selectByKind", _Collection_Collection_selectByKind_TT_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE, tp_Collection_selectByKind_TT);
-		private final @NonNull Operation op_Collection_selectByType = createOperation("selectByType", _Collection_Collection_selectByType_TT_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE, tp_Collection_selectByType_TT);
+		private final @NonNull Operation op_Collection_product = createOperation("product", _Set_Tuple_T, "org.eclipse.ocl.pivot.library.collection.CollectionProductOperation", org.eclipse.ocl.pivot.library.collection.CollectionProductOperation.INSTANCE, tp_Collection_product_T2);
+		private final @NonNull Operation op_Collection_selectByKind = createOperation("selectByKind", _Collection_Collection_selectByKind_TT_T, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE, tp_Collection_selectByKind_TT);
+		private final @NonNull Operation op_Collection_selectByType = createOperation("selectByType", _Collection_Collection_selectByType_TT_T, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE, tp_Collection_selectByType_TT);
 		private final @NonNull Operation op_Collection_size = createOperation("size", _Integer, "org.eclipse.ocl.pivot.library.collection.CollectionSizeOperation", org.eclipse.ocl.pivot.library.collection.CollectionSizeOperation.INSTANCE);
 		private final @NonNull Operation op_Collection_sum = createOperation("sum", tp_Collection_T, "org.eclipse.ocl.pivot.library.collection.CollectionSumOperation", org.eclipse.ocl.pivot.library.collection.CollectionSumOperation.INSTANCE);
-		private final @NonNull Operation op_Collection_union = createOperation("union", _Bag_Collection_T_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionUnionOperation", org.eclipse.ocl.pivot.library.collection.CollectionUnionOperation.INSTANCE);
-		private final @NonNull Operation op_Enumeration_allInstances = createOperation("allInstances", _Set_OclSelf_NullFree, "org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation.INSTANCE);
-		private final @NonNull Operation op_InvalidType_allInstances = createOperation("allInstances", _Set_OclSelf_NullFree, "org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation.INSTANCE);
+		private final @NonNull Operation op_Collection_union = createOperation("union", _Bag_Collection_T_T, "org.eclipse.ocl.pivot.library.collection.CollectionUnionOperation", org.eclipse.ocl.pivot.library.collection.CollectionUnionOperation.INSTANCE);
+		private final @NonNull Operation op_Enumeration_allInstances = createOperation("allInstances", _Set_OclSelf_T, "org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation.INSTANCE);
+		private final @NonNull Operation op_InvalidType_allInstances = createOperation("allInstances", _Set_OclSelf_T, "org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation.INSTANCE);
 		private final @NonNull Operation op_Map__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
 		private final @NonNull Operation op_Map__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
 		private final @NonNull Operation op_Map_at = createOperation("at", tp_Map_V, "org.eclipse.ocl.pivot.library.map.MapAtOperation", org.eclipse.ocl.pivot.library.map.MapAtOperation.INSTANCE);
@@ -1750,13 +1750,13 @@
 		private final @NonNull Operation op_Map_including = createOperation("including", _Map_Map_K_Map_V, "org.eclipse.ocl.pivot.library.map.MapIncludingPairOperation", org.eclipse.ocl.pivot.library.map.MapIncludingPairOperation.INSTANCE);
 		private final @NonNull Operation op_Map_includingMap = createOperation("includingMap", _Map_Map_K_Map_V, "org.eclipse.ocl.pivot.library.map.MapIncludingMapOperation", org.eclipse.ocl.pivot.library.map.MapIncludingMapOperation.INSTANCE, tp_Map_includingMap_K2, tp_Map_includingMap_V2);
 		private final @NonNull Operation op_Map_isEmpty = createOperation("isEmpty", _Boolean, "org.eclipse.ocl.pivot.library.map.MapIsEmptyOperation", org.eclipse.ocl.pivot.library.map.MapIsEmptyOperation.INSTANCE);
-		private final @NonNull Operation op_Map_keys = createOperation("keys", _Set_Map_K_NullFree, "org.eclipse.ocl.pivot.library.map.MapKeysOperation", org.eclipse.ocl.pivot.library.map.MapKeysOperation.INSTANCE);
+		private final @NonNull Operation op_Map_keys = createOperation("keys", _Set_Map_K_T, "org.eclipse.ocl.pivot.library.map.MapKeysOperation", org.eclipse.ocl.pivot.library.map.MapKeysOperation.INSTANCE);
 		private final @NonNull Operation op_Map_notEmpty = createOperation("notEmpty", _Boolean, "org.eclipse.ocl.pivot.library.map.MapNotEmptyOperation", org.eclipse.ocl.pivot.library.map.MapNotEmptyOperation.INSTANCE);
 		private final @NonNull Operation op_Map_size = createOperation("size", _Integer, "org.eclipse.ocl.pivot.library.map.MapSizeOperation", org.eclipse.ocl.pivot.library.map.MapSizeOperation.INSTANCE);
-		private final @NonNull Operation op_Map_values = createOperation("values", _Bag_Map_V_NullFree, "org.eclipse.ocl.pivot.library.map.MapValuesOperation", org.eclipse.ocl.pivot.library.map.MapValuesOperation.INSTANCE);
+		private final @NonNull Operation op_Map_values = createOperation("values", _Bag_Map_V_T, "org.eclipse.ocl.pivot.library.map.MapValuesOperation", org.eclipse.ocl.pivot.library.map.MapValuesOperation.INSTANCE);
 		private final @NonNull Operation op_OclAny__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
 		private final @NonNull Operation op_OclAny__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
-		private final @NonNull Operation op_OclAny_oclAsSet = createOperation("oclAsSet", _Set_OclSelf_NullFree, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation.INSTANCE);
+		private final @NonNull Operation op_OclAny_oclAsSet = createOperation("oclAsSet", _Set_OclSelf_T, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation.INSTANCE);
 		private final @NonNull Operation op_OclAny_oclAsType = createOperation("oclAsType", tp_OclAny_oclAsType_TT, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation.INSTANCE, tp_OclAny_oclAsType_TT);
 		private final @NonNull Operation op_OclAny_oclIsInState = createOperation("oclIsInState", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsInStateOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsInStateOperation.INSTANCE);
 		private final @NonNull Operation op_OclAny_oclIsInvalid = createOperation("oclIsInvalid", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsInvalidOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsInvalidOperation.INSTANCE);
@@ -1767,32 +1767,32 @@
 		private final @NonNull Operation op_OclAny_oclLog = createOperation("oclLog", _OclSelf, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclLogOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclLogOperation.INSTANCE);
 		private final @NonNull Operation op_OclAny_oclLog_1 = createOperation("oclLog", _OclSelf, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclLogOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclLogOperation.INSTANCE);
 		private final @NonNull Operation op_OclAny_oclType = createOperation("oclType", _OclSelf, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclTypeOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclTypeOperation.INSTANCE);
-		private final @NonNull Operation op_OclAny_oclTypes = createOperation("oclTypes", _Set_OclSelf, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclTypesOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclTypesOperation.INSTANCE);
+		private final @NonNull Operation op_OclAny_oclTypes = createOperation("oclTypes", _Set_OclSelf_F, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclTypesOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclTypesOperation.INSTANCE);
 		private final @NonNull Operation op_OclAny_toString = createOperation("toString", _String, "org.eclipse.ocl.pivot.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyToStringOperation.INSTANCE);
 		private final @NonNull Operation op_OclComparable__lt_ = createOperation("<", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclComparableLessThanOperation", org.eclipse.ocl.pivot.library.oclany.OclComparableLessThanOperation.INSTANCE);
 		private final @NonNull Operation op_OclComparable__lt__eq_ = createOperation("<=", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclComparableLessThanEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclComparableLessThanEqualOperation.INSTANCE);
 		private final @NonNull Operation op_OclComparable__gt_ = createOperation(">", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclComparableGreaterThanOperation", org.eclipse.ocl.pivot.library.oclany.OclComparableGreaterThanOperation.INSTANCE);
 		private final @NonNull Operation op_OclComparable__gt__eq_ = createOperation(">=", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclComparableGreaterThanEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclComparableGreaterThanEqualOperation.INSTANCE);
 		private final @NonNull Operation op_OclComparable_compareTo = createOperation("compareTo", _Integer, "org.eclipse.ocl.pivot.library.oclany.OclComparableCompareToOperation", org.eclipse.ocl.pivot.library.oclany.OclComparableCompareToOperation.INSTANCE);
-		private final @NonNull Operation op_OclElement_allInstances = createOperation("allInstances", _Set_OclSelf_NullFree, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
+		private final @NonNull Operation op_OclElement_allInstances = createOperation("allInstances", _Set_OclSelf_T, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
 		private final @NonNull Operation op_OclElement_oclAsModelType = createOperation("oclAsModelType", tp_OclElement_oclAsModelType_TT, "org.eclipse.ocl.pivot.library.oclany.OclElementOclAsModelTypeOperation", org.eclipse.ocl.pivot.library.oclany.OclElementOclAsModelTypeOperation.INSTANCE, tp_OclElement_oclAsModelType_TT);
 		private final @NonNull Operation op_OclElement_oclBase = createOperation("oclBase", _OclType, "org.eclipse.ocl.pivot.library.oclany.OclElementOclBaseOperation", org.eclipse.ocl.pivot.library.oclany.OclElementOclBaseOperation.INSTANCE);
 		private final @NonNull Operation op_OclElement_oclBase_1 = createOperation("oclBase", _OclType, "org.eclipse.ocl.pivot.library.oclany.OclElementOclBaseOperation", org.eclipse.ocl.pivot.library.oclany.OclElementOclBaseOperation.INSTANCE);
 		private final @NonNull Operation op_OclElement_oclContainer = createOperation("oclContainer", _OclElement, "org.eclipse.ocl.pivot.library.classifier.ClassifierOclContainerOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierOclContainerOperation.INSTANCE);
-		private final @NonNull Operation op_OclElement_oclContents = createOperation("oclContents", _Set_OclElement_NullFree, "org.eclipse.ocl.pivot.library.classifier.ClassifierOclContentsOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierOclContentsOperation.INSTANCE);
+		private final @NonNull Operation op_OclElement_oclContents = createOperation("oclContents", _Set_OclElement_T, "org.eclipse.ocl.pivot.library.classifier.ClassifierOclContentsOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierOclContentsOperation.INSTANCE);
 		private final @NonNull Operation op_OclElement_oclExtension = createOperation("oclExtension", _OclElement, "org.eclipse.ocl.pivot.library.oclany.OclElementOclExtensionOperation", org.eclipse.ocl.pivot.library.oclany.OclElementOclExtensionOperation.INSTANCE);
-		private final @NonNull Operation op_OclElement_oclExtensions = createOperation("oclExtensions", _Set_OclElement_NullFree, "org.eclipse.ocl.pivot.library.oclany.OclElementOclExtensionsOperation", org.eclipse.ocl.pivot.library.oclany.OclElementOclExtensionsOperation.INSTANCE);
-		private final @NonNull Operation op_OclElement_oclExtensions_1 = createOperation("oclExtensions", _Set_OclElement_NullFree, "org.eclipse.ocl.pivot.library.oclany.OclElementOclExtensionsOperation", org.eclipse.ocl.pivot.library.oclany.OclElementOclExtensionsOperation.INSTANCE);
+		private final @NonNull Operation op_OclElement_oclExtensions = createOperation("oclExtensions", _Set_OclElement_T, "org.eclipse.ocl.pivot.library.oclany.OclElementOclExtensionsOperation", org.eclipse.ocl.pivot.library.oclany.OclElementOclExtensionsOperation.INSTANCE);
+		private final @NonNull Operation op_OclElement_oclExtensions_1 = createOperation("oclExtensions", _Set_OclElement_T, "org.eclipse.ocl.pivot.library.oclany.OclElementOclExtensionsOperation", org.eclipse.ocl.pivot.library.oclany.OclElementOclExtensionsOperation.INSTANCE);
 		private final @NonNull Operation op_OclElement_oclIsModelKindOf = createOperation("oclIsModelKindOf", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclElementOclIsModelKindOfOperation", org.eclipse.ocl.pivot.library.oclany.OclElementOclIsModelKindOfOperation.INSTANCE);
 		private final @NonNull Operation op_OclElement_oclModelType = createOperation("oclModelType", _OclSelf, "org.eclipse.ocl.pivot.library.oclany.OclElementOclModelTypeOperation", org.eclipse.ocl.pivot.library.oclany.OclElementOclModelTypeOperation.INSTANCE);
-		private final @NonNull Operation op_OclElement_oclModelTypes = createOperation("oclModelTypes", _Set_OclSelf, "org.eclipse.ocl.pivot.library.oclany.OclElementOclModelTypesOperation", org.eclipse.ocl.pivot.library.oclany.OclElementOclModelTypesOperation.INSTANCE);
-		private final @NonNull Operation op_OclEnumeration_allInstances = createOperation("allInstances", _Set_OclSelf_NullFree, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
+		private final @NonNull Operation op_OclElement_oclModelTypes = createOperation("oclModelTypes", _Set_OclSelf_F, "org.eclipse.ocl.pivot.library.oclany.OclElementOclModelTypesOperation", org.eclipse.ocl.pivot.library.oclany.OclElementOclModelTypesOperation.INSTANCE);
+		private final @NonNull Operation op_OclEnumeration_allInstances = createOperation("allInstances", _Set_OclSelf_T, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
 		private final @NonNull Operation op_OclInvalid__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
 		private final @NonNull Operation op_OclInvalid__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
-		private final @NonNull Operation op_OclInvalid_allInstances = createOperation("allInstances", _Set_OclSelf_NullFree, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
+		private final @NonNull Operation op_OclInvalid_allInstances = createOperation("allInstances", _Set_OclSelf_T, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
 		private final @NonNull Operation op_OclInvalid_and = createOperation("and", _Boolean, "org.eclipse.ocl.pivot.library.logical.BooleanAndOperation", org.eclipse.ocl.pivot.library.logical.BooleanAndOperation.INSTANCE);
 		private final @NonNull Operation op_OclInvalid_implies = createOperation("implies", _Boolean, "org.eclipse.ocl.pivot.library.logical.BooleanImpliesOperation", org.eclipse.ocl.pivot.library.logical.BooleanImpliesOperation.INSTANCE);
-		private final @NonNull Operation op_OclInvalid_oclAsSet = createOperation("oclAsSet", _Set_OclSelf_NullFree, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation.INSTANCE);
+		private final @NonNull Operation op_OclInvalid_oclAsSet = createOperation("oclAsSet", _Set_OclSelf_T, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation.INSTANCE);
 		private final @NonNull Operation op_OclInvalid_oclAsType = createOperation("oclAsType", tp_OclInvalid_oclAsType_TT, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation.INSTANCE, tp_OclInvalid_oclAsType_TT);
 		private final @NonNull Operation op_OclInvalid_oclBadOperation = createOperation("oclBadOperation", _OclAny, null, null);
 		private final @NonNull Operation op_OclInvalid_oclIsInvalid = createOperation("oclIsInvalid", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsInvalidOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsInvalidOperation.INSTANCE);
@@ -1806,7 +1806,7 @@
 		private final @NonNull Operation op_OclMessage_isOperationCall = createOperation("isOperationCall", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
 		private final @NonNull Operation op_OclMessage_isSignalSent = createOperation("isSignalSent", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
 		private final @NonNull Operation op_OclMessage_result = createOperation("result", _OclAny, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
-		private final @NonNull Operation op_OclStereotype_allInstances = createOperation("allInstances", _Set_OclSelf_NullFree, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
+		private final @NonNull Operation op_OclStereotype_allInstances = createOperation("allInstances", _Set_OclSelf_T, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
 		private final @NonNull Operation op_OclSummable_sum = createOperation("sum", _OclSelf, null, null);
 		private final @NonNull Operation op_OclSummable_zero = createOperation("zero", _OclSelf, null, null);
 		private final @NonNull Operation op_OclTuple__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
@@ -1815,19 +1815,19 @@
 		private final @NonNull Operation op_OclVoid__add_ = createOperation("+", _String, "org.eclipse.ocl.pivot.library.string.StringConcatOperation", org.eclipse.ocl.pivot.library.string.StringConcatOperation.INSTANCE);
 		private final @NonNull Operation op_OclVoid__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
 		private final @NonNull Operation op_OclVoid__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
-		private final @NonNull Operation op_OclVoid_allInstances = createOperation("allInstances", _Set_OclSelf, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
+		private final @NonNull Operation op_OclVoid_allInstances = createOperation("allInstances", _Set_OclSelf_F, "org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
 		private final @NonNull Operation op_OclVoid_and = createOperation("and", _Boolean, "org.eclipse.ocl.pivot.library.oclvoid.OclVoidAndOperation", org.eclipse.ocl.pivot.library.oclvoid.OclVoidAndOperation.INSTANCE);
 		private final @NonNull Operation op_OclVoid_concat = createOperation("concat", _String, "org.eclipse.ocl.pivot.library.string.StringConcatOperation", org.eclipse.ocl.pivot.library.string.StringConcatOperation.INSTANCE);
 		private final @NonNull Operation op_OclVoid_implies = createOperation("implies", _Boolean, "org.eclipse.ocl.pivot.library.oclvoid.OclVoidImpliesOperation", org.eclipse.ocl.pivot.library.oclvoid.OclVoidImpliesOperation.INSTANCE);
 		private final @NonNull Operation op_OclVoid_not = createOperation("not", _Boolean, "org.eclipse.ocl.pivot.library.logical.BooleanNotOperation", org.eclipse.ocl.pivot.library.logical.BooleanNotOperation.INSTANCE);
-		private final @NonNull Operation op_OclVoid_oclAsSet = createOperation("oclAsSet", _Set_OclSelf_NullFree, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation.INSTANCE);
+		private final @NonNull Operation op_OclVoid_oclAsSet = createOperation("oclAsSet", _Set_OclSelf_T, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation.INSTANCE);
 		private final @NonNull Operation op_OclVoid_oclAsType = createOperation("oclAsType", tp_OclVoid_oclAsType_TT, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation.INSTANCE, tp_OclVoid_oclAsType_TT);
 		private final @NonNull Operation op_OclVoid_oclIsInvalid = createOperation("oclIsInvalid", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsInvalidOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsInvalidOperation.INSTANCE);
 		private final @NonNull Operation op_OclVoid_oclIsKindOf = createOperation("oclIsKindOf", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsKindOfOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsKindOfOperation.INSTANCE);
 		private final @NonNull Operation op_OclVoid_oclIsTypeOf = createOperation("oclIsTypeOf", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsTypeOfOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsTypeOfOperation.INSTANCE);
 		private final @NonNull Operation op_OclVoid_oclIsUndefined = createOperation("oclIsUndefined", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsUndefinedOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsUndefinedOperation.INSTANCE);
 		private final @NonNull Operation op_OclVoid_oclType = createOperation("oclType", _OclSelf, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclTypeOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclTypeOperation.INSTANCE);
-		private final @NonNull Operation op_OclVoid_oclTypes = createOperation("oclTypes", _Set_OclSelf, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclTypesOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclTypesOperation.INSTANCE);
+		private final @NonNull Operation op_OclVoid_oclTypes = createOperation("oclTypes", _Set_OclSelf_F, "org.eclipse.ocl.pivot.library.oclany.OclAnyOclTypesOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyOclTypesOperation.INSTANCE);
 		private final @NonNull Operation op_OclVoid_or = createOperation("or", _Boolean, "org.eclipse.ocl.pivot.library.oclvoid.OclVoidOrOperation", org.eclipse.ocl.pivot.library.oclvoid.OclVoidOrOperation.INSTANCE);
 		private final @NonNull Operation op_OclVoid_toString = createOperation("toString", _String, "org.eclipse.ocl.pivot.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyToStringOperation.INSTANCE);
 		private final @NonNull Operation op_OclVoid_xor = createOperation("xor", _Boolean, "org.eclipse.ocl.pivot.library.logical.BooleanXorOperation", org.eclipse.ocl.pivot.library.logical.BooleanXorOperation.INSTANCE);
@@ -1842,15 +1842,15 @@
 		private final @NonNull Operation op_OrderedSet_appendAll = createOperation("appendAll", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.pivot.library.collection.OrderedCollectionAppendAllOperation", org.eclipse.ocl.pivot.library.collection.OrderedCollectionAppendAllOperation.INSTANCE);
 		private final @NonNull Operation op_OrderedSet_excluding = createOperation("excluding", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation", org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation.INSTANCE);
 		private final @NonNull Operation op_OrderedSet_excludingAll = createOperation("excludingAll", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation", org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation.INSTANCE);
-		private final @NonNull Operation op_OrderedSet_flatten = createOperation("flatten", _OrderedSet_OrderedSet_flatten_T2_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation", org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE, tp_OrderedSet_flatten_T2);
+		private final @NonNull Operation op_OrderedSet_flatten = createOperation("flatten", _OrderedSet_OrderedSet_flatten_T2_T, "org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation", org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE, tp_OrderedSet_flatten_T2);
 		private final @NonNull Operation op_OrderedSet_including = createOperation("including", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation", org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation.INSTANCE);
 		private final @NonNull Operation op_OrderedSet_includingAll = createOperation("includingAll", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation", org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation.INSTANCE);
 		private final @NonNull Operation op_OrderedSet_insertAt = createOperation("insertAt", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.pivot.library.collection.OrderedCollectionInsertAtOperation", org.eclipse.ocl.pivot.library.collection.OrderedCollectionInsertAtOperation.INSTANCE);
 		private final @NonNull Operation op_OrderedSet_prepend = createOperation("prepend", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.pivot.library.collection.OrderedCollectionPrependOperation", org.eclipse.ocl.pivot.library.collection.OrderedCollectionPrependOperation.INSTANCE);
 		private final @NonNull Operation op_OrderedSet_prependAll = createOperation("prependAll", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.pivot.library.collection.OrderedCollectionPrependAllOperation", org.eclipse.ocl.pivot.library.collection.OrderedCollectionPrependAllOperation.INSTANCE);
 		private final @NonNull Operation op_OrderedSet_reverse = createOperation("reverse", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.pivot.library.collection.OrderedCollectionReverseOperation", org.eclipse.ocl.pivot.library.collection.OrderedCollectionReverseOperation.INSTANCE);
-		private final @NonNull Operation op_OrderedSet_selectByKind = createOperation("selectByKind", _OrderedSet_OrderedSet_selectByKind_TT_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE, tp_OrderedSet_selectByKind_TT);
-		private final @NonNull Operation op_OrderedSet_selectByType = createOperation("selectByType", _OrderedSet_OrderedSet_selectByType_TT_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE, tp_OrderedSet_selectByType_TT);
+		private final @NonNull Operation op_OrderedSet_selectByKind = createOperation("selectByKind", _OrderedSet_OrderedSet_selectByKind_TT_T, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE, tp_OrderedSet_selectByKind_TT);
+		private final @NonNull Operation op_OrderedSet_selectByType = createOperation("selectByType", _OrderedSet_OrderedSet_selectByType_TT_T, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE, tp_OrderedSet_selectByType_TT);
 		private final @NonNull Operation op_OrderedSet_subOrderedSet = createOperation("subOrderedSet", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.pivot.library.collection.OrderedSetSubOrderedSetOperation", org.eclipse.ocl.pivot.library.collection.OrderedSetSubOrderedSetOperation.INSTANCE);
 		private final @NonNull Operation op_Sequence__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
 		private final @NonNull Operation op_Sequence__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
@@ -1858,33 +1858,33 @@
 		private final @NonNull Operation op_Sequence_appendAll = createOperation("appendAll", _Sequence_Sequence_T, "org.eclipse.ocl.pivot.library.collection.OrderedCollectionAppendAllOperation", org.eclipse.ocl.pivot.library.collection.OrderedCollectionAppendAllOperation.INSTANCE);
 		private final @NonNull Operation op_Sequence_excluding = createOperation("excluding", _Sequence_Sequence_T, "org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation", org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation.INSTANCE);
 		private final @NonNull Operation op_Sequence_excludingAll = createOperation("excludingAll", _Sequence_Sequence_T, "org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation", org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation.INSTANCE);
-		private final @NonNull Operation op_Sequence_flatten = createOperation("flatten", _Sequence_Sequence_flatten_T2_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation", org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE, tp_Sequence_flatten_T2);
+		private final @NonNull Operation op_Sequence_flatten = createOperation("flatten", _Sequence_Sequence_flatten_T2_T, "org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation", org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE, tp_Sequence_flatten_T2);
 		private final @NonNull Operation op_Sequence_including = createOperation("including", _Sequence_Sequence_T, "org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation", org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation.INSTANCE);
 		private final @NonNull Operation op_Sequence_includingAll = createOperation("includingAll", _Sequence_Sequence_T, "org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation", org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation.INSTANCE);
 		private final @NonNull Operation op_Sequence_insertAt = createOperation("insertAt", _Sequence_Sequence_T, "org.eclipse.ocl.pivot.library.collection.OrderedCollectionInsertAtOperation", org.eclipse.ocl.pivot.library.collection.OrderedCollectionInsertAtOperation.INSTANCE);
 		private final @NonNull Operation op_Sequence_prepend = createOperation("prepend", _Sequence_Sequence_T, "org.eclipse.ocl.pivot.library.collection.OrderedCollectionPrependOperation", org.eclipse.ocl.pivot.library.collection.OrderedCollectionPrependOperation.INSTANCE);
 		private final @NonNull Operation op_Sequence_prependAll = createOperation("prependAll", _Sequence_Sequence_T, "org.eclipse.ocl.pivot.library.collection.OrderedCollectionPrependAllOperation", org.eclipse.ocl.pivot.library.collection.OrderedCollectionPrependAllOperation.INSTANCE);
 		private final @NonNull Operation op_Sequence_reverse = createOperation("reverse", _Sequence_Sequence_T, "org.eclipse.ocl.pivot.library.collection.OrderedCollectionReverseOperation", org.eclipse.ocl.pivot.library.collection.OrderedCollectionReverseOperation.INSTANCE);
-		private final @NonNull Operation op_Sequence_selectByKind = createOperation("selectByKind", _Sequence_Sequence_selectByKind_TT_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE, tp_Sequence_selectByKind_TT);
-		private final @NonNull Operation op_Sequence_selectByType = createOperation("selectByType", _Sequence_Sequence_selectByType_TT_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE, tp_Sequence_selectByType_TT);
+		private final @NonNull Operation op_Sequence_selectByKind = createOperation("selectByKind", _Sequence_Sequence_selectByKind_TT_T, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE, tp_Sequence_selectByKind_TT);
+		private final @NonNull Operation op_Sequence_selectByType = createOperation("selectByType", _Sequence_Sequence_selectByType_TT_T, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE, tp_Sequence_selectByType_TT);
 		private final @NonNull Operation op_Sequence_subSequence = createOperation("subSequence", _Sequence_Sequence_T, "org.eclipse.ocl.pivot.library.collection.SequenceSubSequenceOperation", org.eclipse.ocl.pivot.library.collection.SequenceSubSequenceOperation.INSTANCE);
 		private final @NonNull Operation op_Set__neg_ = createOperation("-", _Set_Set_T, "org.eclipse.ocl.pivot.library.collection.SetMinusOperation", org.eclipse.ocl.pivot.library.collection.SetMinusOperation.INSTANCE);
 		private final @NonNull Operation op_Set__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
 		private final @NonNull Operation op_Set__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
 		private final @NonNull Operation op_Set_excluding = createOperation("excluding", _Set_Set_T, "org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation", org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation.INSTANCE);
 		private final @NonNull Operation op_Set_excludingAll = createOperation("excludingAll", _Set_Set_T, "org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation", org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation.INSTANCE);
-		private final @NonNull Operation op_Set_flatten = createOperation("flatten", _Set_Set_flatten_T2_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation", org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE, tp_Set_flatten_T2);
+		private final @NonNull Operation op_Set_flatten = createOperation("flatten", _Set_Set_flatten_T2_T, "org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation", org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE, tp_Set_flatten_T2);
 		private final @NonNull Operation op_Set_including = createOperation("including", _Set_Set_T, "org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation", org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation.INSTANCE);
 		private final @NonNull Operation op_Set_includingAll = createOperation("includingAll", _Set_Set_T, "org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation", org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation.INSTANCE);
-		private final @NonNull Operation op_Set_selectByKind = createOperation("selectByKind", _Set_Set_selectByKind_TT_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE, tp_Set_selectByKind_TT);
-		private final @NonNull Operation op_Set_selectByType = createOperation("selectByType", _Set_Set_selectByType_TT_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE, tp_Set_selectByType_TT);
-		private final @NonNull Operation op_Stereotype_allInstances = createOperation("allInstances", _Set_OclSelf_NullFree, "org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation.INSTANCE);
+		private final @NonNull Operation op_Set_selectByKind = createOperation("selectByKind", _Set_Set_selectByKind_TT_T, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE, tp_Set_selectByKind_TT);
+		private final @NonNull Operation op_Set_selectByType = createOperation("selectByType", _Set_Set_selectByType_TT_T, "org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE, tp_Set_selectByType_TT);
+		private final @NonNull Operation op_Stereotype_allInstances = createOperation("allInstances", _Set_OclSelf_T, "org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation.INSTANCE);
 		private final @NonNull Operation op_Type_conformsTo = createOperation("conformsTo", _Boolean, "org.eclipse.ocl.pivot.library.classifier.OclTypeConformsToOperation", org.eclipse.ocl.pivot.library.classifier.OclTypeConformsToOperation.INSTANCE);
 		private final @NonNull Operation op_UniqueCollection__neg_ = createOperation("-", _UniqueCollection_UniqueCollection_T, "org.eclipse.ocl.pivot.library.collection.SetMinusOperation", org.eclipse.ocl.pivot.library.collection.SetMinusOperation.INSTANCE);
-		private final @NonNull Operation op_UniqueCollection_intersection = createOperation("intersection", _Set_UniqueCollection_T_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation.INSTANCE);
-		private final @NonNull Operation op_UniqueCollection_symmetricDifference = createOperation("symmetricDifference", _Set_UniqueCollection_T_NullFree, "org.eclipse.ocl.pivot.library.collection.SetSymmetricDifferenceOperation", org.eclipse.ocl.pivot.library.collection.SetSymmetricDifferenceOperation.INSTANCE);
-		private final @NonNull Operation op_UniqueCollection_union = createOperation("union", _Set_UniqueCollection_T_NullFree, "org.eclipse.ocl.pivot.library.collection.CollectionUnionOperation", org.eclipse.ocl.pivot.library.collection.CollectionUnionOperation.INSTANCE);
-		private final @NonNull Operation op_VoidType_allInstances = createOperation("allInstances", _Set_OclSelf, "org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation.INSTANCE);
+		private final @NonNull Operation op_UniqueCollection_intersection = createOperation("intersection", _Set_UniqueCollection_T_T, "org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation.INSTANCE);
+		private final @NonNull Operation op_UniqueCollection_symmetricDifference = createOperation("symmetricDifference", _Set_UniqueCollection_T_T, "org.eclipse.ocl.pivot.library.collection.SetSymmetricDifferenceOperation", org.eclipse.ocl.pivot.library.collection.SetSymmetricDifferenceOperation.INSTANCE);
+		private final @NonNull Operation op_UniqueCollection_union = createOperation("union", _Set_UniqueCollection_T_T, "org.eclipse.ocl.pivot.library.collection.CollectionUnionOperation", org.eclipse.ocl.pivot.library.collection.CollectionUnionOperation.INSTANCE);
+		private final @NonNull Operation op_VoidType_allInstances = createOperation("allInstances", _Set_OclSelf_F, "org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation", org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation.INSTANCE);
 
 		private void installOperations() {
 			List<Operation> ownedOperations;
@@ -2140,14 +2140,14 @@
 			ownedParameters.add(parameter = createParameter("object", tp_Bag_T, false));
 			ownedOperations.add(operation = op_Bag_excludingAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("objects", _Collection_Bag_T_NullFree, true));
+			ownedParameters.add(parameter = createParameter("objects", _Collection_Bag_T_T, true));
 			ownedOperations.add(operation = op_Bag_flatten);
 			ownedOperations.add(operation = op_Bag_including);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("object", tp_Bag_T, false));
 			ownedOperations.add(operation = op_Bag_includingAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("objects", _Collection_Bag_T_NullFree, true));
+			ownedParameters.add(parameter = createParameter("objects", _Collection_Bag_T_T, true));
 			ownedOperations.add(operation = op_Bag_selectByKind);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("type", tp_Bag_selectByKind_TT, true));
@@ -2182,7 +2182,7 @@
 			ownedParameters.add(parameter = createParameter("object", tp_Collection_T, false));
 			ownedOperations.add(operation = op_Collection_excludesAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("c2", _Collection_Collection_excludesAll_T2_NullFree, true));
+			ownedParameters.add(parameter = createParameter("c2", _Collection_Collection_excludesAll_T2_T, true));
 			ownedOperations.add(operation = op_Collection_excluding);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("object", tp_Collection_T, false));
@@ -2195,7 +2195,7 @@
 			ownedParameters.add(parameter = createParameter("object", tp_Collection_T, false));
 			ownedOperations.add(operation = op_Collection_includesAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("c2", _Collection_Collection_includesAll_T2_NullFree, true));
+			ownedParameters.add(parameter = createParameter("c2", _Collection_Collection_includesAll_T2_T, true));
 			ownedOperations.add(operation = op_Collection_including);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("object", tp_Collection_T, false));
@@ -2207,14 +2207,14 @@
 			ownedParameters.add(parameter = createParameter("c", _Collection_Collection_T, true));
 			ownedOperations.add(operation = op_Collection_intersection_1);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("u", _UniqueCollection_Collection_T_NullFree, true));
+			ownedParameters.add(parameter = createParameter("u", _UniqueCollection_Collection_T_T, true));
 			ownedOperations.add(operation = op_Collection_isEmpty);
 			ownedOperations.add(operation = op_Collection_max);
 			ownedOperations.add(operation = op_Collection_min);
 			ownedOperations.add(operation = op_Collection_notEmpty);
 			ownedOperations.add(operation = op_Collection_product);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("c2", _Collection_Collection_product_T2_NullFree, true));
+			ownedParameters.add(parameter = createParameter("c2", _Collection_Collection_product_T2_T, true));
 			ownedOperations.add(operation = op_Collection_selectByKind);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("type", tp_Collection_selectByKind_TT, true));
@@ -2256,10 +2256,10 @@
 			ownedParameters.add(parameter = createParameter("value", tp_Map_V, false));
 			ownedOperations.add(operation = op_Map_excludesAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("coll", _Collection_Map_excludesAll_K2_NullFree, true));
+			ownedParameters.add(parameter = createParameter("coll", _Collection_Map_excludesAll_K2_T, true));
 			ownedOperations.add(operation = op_Map_excludesMap);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("map", _Map_Map_excludesMap_K2_Map_excludesMap_V2, true));
+			ownedParameters.add(parameter = createParameter("map", _Map_Map_excludesMap_K2_T_Map_excludesMap_V2_T, true));
 			ownedOperations.add(operation = op_Map_excludesValue);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("value", tp_Map_V, false));
@@ -2272,10 +2272,10 @@
 			ownedParameters.add(parameter = createParameter("value", tp_Map_V, false));
 			ownedOperations.add(operation = op_Map_excludingAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("keys", _Collection_Map_K_NullFree, true));
+			ownedParameters.add(parameter = createParameter("keys", _Collection_Map_K_T, true));
 			ownedOperations.add(operation = op_Map_excludingMap);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("map", _Map_Map_excludingMap_K2_Map_excludingMap_V2, true));
+			ownedParameters.add(parameter = createParameter("map", _Map_Map_excludingMap_K2_T_Map_excludingMap_V2_T, true));
 			ownedOperations.add(operation = op_Map_includes);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("key", tp_Map_K, false));
@@ -2285,10 +2285,10 @@
 			ownedParameters.add(parameter = createParameter("value", tp_Map_V, false));
 			ownedOperations.add(operation = op_Map_includesAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("coll", _Collection_Map_includesAll_K2_NullFree, true));
+			ownedParameters.add(parameter = createParameter("coll", _Collection_Map_includesAll_K2_T, true));
 			ownedOperations.add(operation = op_Map_includesMap);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("map", _Map_Map_includesMap_K2_Map_includesMap_V2, true));
+			ownedParameters.add(parameter = createParameter("map", _Map_Map_includesMap_K2_T_Map_includesMap_V2_T, true));
 			ownedOperations.add(operation = op_Map_includesValue);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("value", tp_Map_V, false));
@@ -2298,7 +2298,7 @@
 			ownedParameters.add(parameter = createParameter("value", tp_Map_V, false));
 			ownedOperations.add(operation = op_Map_includingMap);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("map", _Map_Map_includingMap_K2_Map_includingMap_V2, true));
+			ownedParameters.add(parameter = createParameter("map", _Map_Map_includingMap_K2_T_Map_includingMap_V2_T, true));
 			ownedOperations.add(operation = op_Map_isEmpty);
 			ownedOperations.add(operation = op_Map_keys);
 			ownedOperations.add(operation = op_Map_notEmpty);
@@ -2558,7 +2558,7 @@
 			ownedOperations = _OrderedSet_OrderedSet_T.getOwnedOperations();
 			ownedOperations.add(operation = op_OrderedSet__neg_);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_OclAny_NullFree, true));
+			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_OclAny_T, true));
 			ownedOperations.add(operation = op_OrderedSet__lt__gt_);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("object2", _OclSelf, false));
@@ -2570,20 +2570,20 @@
 			ownedParameters.add(parameter = createParameter("object", tp_OrderedSet_T, false));
 			ownedOperations.add(operation = op_OrderedSet_appendAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("objects", _OrderedCollection_OrderedSet_T_NullFree, true));
+			ownedParameters.add(parameter = createParameter("objects", _OrderedCollection_OrderedSet_T_T, true));
 			ownedOperations.add(operation = op_OrderedSet_excluding);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("object", tp_OrderedSet_T, false));
 			ownedOperations.add(operation = op_OrderedSet_excludingAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("objects", _Collection_OrderedSet_T_NullFree, true));
+			ownedParameters.add(parameter = createParameter("objects", _Collection_OrderedSet_T_T, true));
 			ownedOperations.add(operation = op_OrderedSet_flatten);
 			ownedOperations.add(operation = op_OrderedSet_including);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("object", tp_OrderedSet_T, false));
 			ownedOperations.add(operation = op_OrderedSet_includingAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("objects", _Collection_OrderedSet_T_NullFree, true));
+			ownedParameters.add(parameter = createParameter("objects", _Collection_OrderedSet_T_T, true));
 			ownedOperations.add(operation = op_OrderedSet_insertAt);
 			operation.setIsInvalidating(true);
 			ownedParameters = operation.getOwnedParameters();
@@ -2594,7 +2594,7 @@
 			ownedParameters.add(parameter = createParameter("object", tp_OrderedSet_T, false));
 			ownedOperations.add(operation = op_OrderedSet_prependAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("objects", _OrderedCollection_OrderedSet_T_NullFree, true));
+			ownedParameters.add(parameter = createParameter("objects", _OrderedCollection_OrderedSet_T_T, true));
 			ownedOperations.add(operation = op_OrderedSet_reverse);
 			ownedOperations.add(operation = op_OrderedSet_selectByKind);
 			ownedParameters = operation.getOwnedParameters();
@@ -2622,20 +2622,20 @@
 			ownedParameters.add(parameter = createParameter("object", tp_Sequence_T, false));
 			ownedOperations.add(operation = op_Sequence_appendAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("objects", _OrderedCollection_Sequence_T_NullFree, true));
+			ownedParameters.add(parameter = createParameter("objects", _OrderedCollection_Sequence_T_T, true));
 			ownedOperations.add(operation = op_Sequence_excluding);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("object", tp_Sequence_T, false));
 			ownedOperations.add(operation = op_Sequence_excludingAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("objects", _Collection_Sequence_T_NullFree, true));
+			ownedParameters.add(parameter = createParameter("objects", _Collection_Sequence_T_T, true));
 			ownedOperations.add(operation = op_Sequence_flatten);
 			ownedOperations.add(operation = op_Sequence_including);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("object", tp_Sequence_T, false));
 			ownedOperations.add(operation = op_Sequence_includingAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("objects", _Collection_Sequence_T_NullFree, true));
+			ownedParameters.add(parameter = createParameter("objects", _Collection_Sequence_T_T, true));
 			ownedOperations.add(operation = op_Sequence_insertAt);
 			operation.setIsInvalidating(true);
 			ownedParameters = operation.getOwnedParameters();
@@ -2646,7 +2646,7 @@
 			ownedParameters.add(parameter = createParameter("object", tp_Sequence_T, false));
 			ownedOperations.add(operation = op_Sequence_prependAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("objects", _OrderedCollection_Sequence_T_NullFree, true));
+			ownedParameters.add(parameter = createParameter("objects", _OrderedCollection_Sequence_T_T, true));
 			ownedOperations.add(operation = op_Sequence_reverse);
 			ownedOperations.add(operation = op_Sequence_selectByKind);
 			ownedParameters = operation.getOwnedParameters();
@@ -2665,7 +2665,7 @@
 			ownedOperations = _Set_Set_T.getOwnedOperations();
 			ownedOperations.add(operation = op_Set__neg_);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_OclAny_NullFree, true));
+			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_OclAny_T, true));
 			ownedOperations.add(operation = op_Set__lt__gt_);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("object2", _OclSelf, false));
@@ -2677,14 +2677,14 @@
 			ownedParameters.add(parameter = createParameter("object", tp_Set_T, false));
 			ownedOperations.add(operation = op_Set_excludingAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("objects", _Collection_Set_T_NullFree, true));
+			ownedParameters.add(parameter = createParameter("objects", _Collection_Set_T_T, true));
 			ownedOperations.add(operation = op_Set_flatten);
 			ownedOperations.add(operation = op_Set_including);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("object", tp_Set_T, false));
 			ownedOperations.add(operation = op_Set_includingAll);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("objects", _Collection_Set_T_NullFree, true));
+			ownedParameters.add(parameter = createParameter("objects", _Collection_Set_T_T, true));
 			ownedOperations.add(operation = op_Set_selectByKind);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("type", tp_Set_selectByKind_TT, true));
@@ -2705,13 +2705,13 @@
 			ownedOperations = _UniqueCollection_UniqueCollection_T.getOwnedOperations();
 			ownedOperations.add(operation = op_UniqueCollection__neg_);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_OclAny_NullFree, true));
+			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_OclAny_T, true));
 			ownedOperations.add(operation = op_UniqueCollection_intersection);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("c", _Collection_UniqueCollection_T_NullFree, true));
+			ownedParameters.add(parameter = createParameter("c", _Collection_UniqueCollection_T_T, true));
 			ownedOperations.add(operation = op_UniqueCollection_symmetricDifference);
 			ownedParameters = operation.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_OclAny_NullFree, true));
+			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_OclAny_T, true));
 			ownedOperations.add(operation = op_UniqueCollection_union);
 			ownedParameters = operation.getOwnedParameters();
 			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_UniqueCollection_T, true));
@@ -2720,16 +2720,16 @@
 			ownedOperations.add(operation = op_VoidType_allInstances);
 		}
 
-		private final @NonNull Iteration it_Bag_closure = createIteration("closure", _Set_Bag_T_NullFree, "org.eclipse.ocl.pivot.library.iterator.ClosureIteration", org.eclipse.ocl.pivot.library.iterator.ClosureIteration.INSTANCE);
-		private final @NonNull Iteration it_Bag_collectNested = createIteration("collectNested", _Bag_Bag_collectNested_V_NullFree, "org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration", org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE, tp_Bag_collectNested_V);
-		private final @NonNull Iteration it_Bag_collect = createIteration("collect", _Bag_Bag_collect_V_NullFree, "org.eclipse.ocl.pivot.library.iterator.CollectIteration", org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE, tp_Bag_collect_V);
+		private final @NonNull Iteration it_Bag_closure = createIteration("closure", _Set_Bag_T_T, "org.eclipse.ocl.pivot.library.iterator.ClosureIteration", org.eclipse.ocl.pivot.library.iterator.ClosureIteration.INSTANCE);
+		private final @NonNull Iteration it_Bag_collectNested = createIteration("collectNested", _Bag_Bag_collectNested_V_T, "org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration", org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE, tp_Bag_collectNested_V);
+		private final @NonNull Iteration it_Bag_collect = createIteration("collect", _Bag_Bag_collect_V_T, "org.eclipse.ocl.pivot.library.iterator.CollectIteration", org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE, tp_Bag_collect_V);
 		private final @NonNull Iteration it_Bag_reject = createIteration("reject", _Bag_Bag_T, "org.eclipse.ocl.pivot.library.iterator.RejectIteration", org.eclipse.ocl.pivot.library.iterator.RejectIteration.INSTANCE);
 		private final @NonNull Iteration it_Bag_select = createIteration("select", _Bag_Bag_T, "org.eclipse.ocl.pivot.library.iterator.SelectIteration", org.eclipse.ocl.pivot.library.iterator.SelectIteration.INSTANCE);
-		private final @NonNull Iteration it_Bag_sortedBy = createIteration("sortedBy", _Sequence_Bag_T_NullFree, "org.eclipse.ocl.pivot.library.iterator.SortedByIteration", org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
+		private final @NonNull Iteration it_Bag_sortedBy = createIteration("sortedBy", _Sequence_Bag_T_T, "org.eclipse.ocl.pivot.library.iterator.SortedByIteration", org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
 		private final @NonNull Iteration it_Collection_any = createIteration("any", tp_Collection_T, "org.eclipse.ocl.pivot.library.iterator.AnyIteration", org.eclipse.ocl.pivot.library.iterator.AnyIteration.INSTANCE);
-		private final @NonNull Iteration it_Collection_collectBy = createIteration("collectBy", _Map_Collection_T_Collection_collectBy_V, "org.eclipse.ocl.pivot.library.iterator.CollectByIteration", org.eclipse.ocl.pivot.library.iterator.CollectByIteration.INSTANCE, tp_Collection_collectBy_V);
-		private final @NonNull Iteration it_Collection_collectNested = createIteration("collectNested", _Collection_Collection_collectNested_V_NullFree, "org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration", org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE, tp_Collection_collectNested_V);
-		private final @NonNull Iteration it_Collection_collect = createIteration("collect", _Collection_Collection_collect_V_NullFree, "org.eclipse.ocl.pivot.library.iterator.CollectIteration", org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE, tp_Collection_collect_V);
+		private final @NonNull Iteration it_Collection_collectBy = createIteration("collectBy", _Map_Collection_T_F_Collection_collectBy_V_F, "org.eclipse.ocl.pivot.library.iterator.CollectByIteration", org.eclipse.ocl.pivot.library.iterator.CollectByIteration.INSTANCE, tp_Collection_collectBy_V);
+		private final @NonNull Iteration it_Collection_collectNested = createIteration("collectNested", _Collection_Collection_collectNested_V_T, "org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration", org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE, tp_Collection_collectNested_V);
+		private final @NonNull Iteration it_Collection_collect = createIteration("collect", _Collection_Collection_collect_V_T, "org.eclipse.ocl.pivot.library.iterator.CollectIteration", org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE, tp_Collection_collect_V);
 		private final @NonNull Iteration it_Collection_exists = createIteration("exists", _Boolean, "org.eclipse.ocl.pivot.library.iterator.ExistsIteration", org.eclipse.ocl.pivot.library.iterator.ExistsIteration.INSTANCE);
 		private final @NonNull Iteration it_Collection_exists_1 = createIteration("exists", _Boolean, "org.eclipse.ocl.pivot.library.iterator.ExistsIteration", org.eclipse.ocl.pivot.library.iterator.ExistsIteration.INSTANCE);
 		private final @NonNull Iteration it_Collection_exists_2 = createIteration("exists", _Boolean, "org.eclipse.ocl.pivot.library.iterator.ExistsIteration", org.eclipse.ocl.pivot.library.iterator.ExistsIteration.INSTANCE);
@@ -2741,11 +2741,11 @@
 		private final @NonNull Iteration it_Collection_one = createIteration("one", _Boolean, "org.eclipse.ocl.pivot.library.iterator.OneIteration", org.eclipse.ocl.pivot.library.iterator.OneIteration.INSTANCE);
 		private final @NonNull Iteration it_Collection_reject = createIteration("reject", _Collection_Collection_T, "org.eclipse.ocl.pivot.library.iterator.RejectIteration", org.eclipse.ocl.pivot.library.iterator.RejectIteration.INSTANCE);
 		private final @NonNull Iteration it_Collection_select = createIteration("select", _Collection_Collection_T, "org.eclipse.ocl.pivot.library.iterator.SelectIteration", org.eclipse.ocl.pivot.library.iterator.SelectIteration.INSTANCE);
-		private final @NonNull Iteration it_Collection_sortedBy = createIteration("sortedBy", _Sequence_Collection_T_NullFree, "org.eclipse.ocl.pivot.library.iterator.SortedByIteration", org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
+		private final @NonNull Iteration it_Collection_sortedBy = createIteration("sortedBy", _Sequence_Collection_T_T, "org.eclipse.ocl.pivot.library.iterator.SortedByIteration", org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
 		private final @NonNull Iteration it_Map_any = createIteration("any", tp_Map_K, "org.eclipse.ocl.pivot.library.iterator.AnyIteration", org.eclipse.ocl.pivot.library.iterator.AnyIteration.INSTANCE);
-		private final @NonNull Iteration it_Map_collectBy = createIteration("collectBy", _Map_Map_K_Map_collectBy_V2, "org.eclipse.ocl.pivot.library.iterator.CollectByIteration", org.eclipse.ocl.pivot.library.iterator.CollectByIteration.INSTANCE, tp_Map_collectBy_V2);
-		private final @NonNull Iteration it_Map_collectNested = createIteration("collectNested", _Map_Map_K_Map_collectNested_V2, "org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration", org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE, tp_Map_collectNested_V2);
-		private final @NonNull Iteration it_Map_collect = createIteration("collect", _Bag_Map_collect_V2, "org.eclipse.ocl.pivot.library.iterator.CollectIteration", org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE, tp_Map_collect_V2);
+		private final @NonNull Iteration it_Map_collectBy = createIteration("collectBy", _Map_Map_K_F_Map_collectBy_V2_F, "org.eclipse.ocl.pivot.library.iterator.CollectByIteration", org.eclipse.ocl.pivot.library.iterator.CollectByIteration.INSTANCE, tp_Map_collectBy_V2);
+		private final @NonNull Iteration it_Map_collectNested = createIteration("collectNested", _Map_Map_K_F_Map_collectNested_V2_F, "org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration", org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE, tp_Map_collectNested_V2);
+		private final @NonNull Iteration it_Map_collect = createIteration("collect", _Bag_Map_collect_V2_F, "org.eclipse.ocl.pivot.library.iterator.CollectIteration", org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE, tp_Map_collect_V2);
 		private final @NonNull Iteration it_Map_exists = createIteration("exists", _Boolean, "org.eclipse.ocl.pivot.library.iterator.ExistsIteration", org.eclipse.ocl.pivot.library.iterator.ExistsIteration.INSTANCE);
 		private final @NonNull Iteration it_Map_exists_1 = createIteration("exists", _Boolean, "org.eclipse.ocl.pivot.library.iterator.ExistsIteration", org.eclipse.ocl.pivot.library.iterator.ExistsIteration.INSTANCE);
 		private final @NonNull Iteration it_Map_exists_2 = createIteration("exists", _Boolean, "org.eclipse.ocl.pivot.library.iterator.ExistsIteration", org.eclipse.ocl.pivot.library.iterator.ExistsIteration.INSTANCE);
@@ -2758,24 +2758,24 @@
 		private final @NonNull Iteration it_Map_reject = createIteration("reject", _Map_Map_K_Map_V, "org.eclipse.ocl.pivot.library.iterator.MapRejectIteration", org.eclipse.ocl.pivot.library.iterator.MapRejectIteration.INSTANCE);
 		private final @NonNull Iteration it_Map_select = createIteration("select", _Map_Map_K_Map_V, "org.eclipse.ocl.pivot.library.iterator.MapSelectIteration", org.eclipse.ocl.pivot.library.iterator.MapSelectIteration.INSTANCE);
 		private final @NonNull Iteration it_OrderedSet_closure = createIteration("closure", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.pivot.library.iterator.ClosureIteration", org.eclipse.ocl.pivot.library.iterator.ClosureIteration.INSTANCE);
-		private final @NonNull Iteration it_OrderedSet_collectNested = createIteration("collectNested", _Sequence_OrderedSet_collectNested_V_NullFree, "org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration", org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE, tp_OrderedSet_collectNested_V);
-		private final @NonNull Iteration it_OrderedSet_collect = createIteration("collect", _Sequence_OrderedSet_collect_V_NullFree, "org.eclipse.ocl.pivot.library.iterator.CollectIteration", org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE, tp_OrderedSet_collect_V);
+		private final @NonNull Iteration it_OrderedSet_collectNested = createIteration("collectNested", _Sequence_OrderedSet_collectNested_V_T, "org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration", org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE, tp_OrderedSet_collectNested_V);
+		private final @NonNull Iteration it_OrderedSet_collect = createIteration("collect", _Sequence_OrderedSet_collect_V_T, "org.eclipse.ocl.pivot.library.iterator.CollectIteration", org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE, tp_OrderedSet_collect_V);
 		private final @NonNull Iteration it_OrderedSet_reject = createIteration("reject", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.pivot.library.iterator.RejectIteration", org.eclipse.ocl.pivot.library.iterator.RejectIteration.INSTANCE);
 		private final @NonNull Iteration it_OrderedSet_select = createIteration("select", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.pivot.library.iterator.SelectIteration", org.eclipse.ocl.pivot.library.iterator.SelectIteration.INSTANCE);
 		private final @NonNull Iteration it_OrderedSet_sortedBy = createIteration("sortedBy", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.pivot.library.iterator.SortedByIteration", org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
-		private final @NonNull Iteration it_Sequence_closure = createIteration("closure", _OrderedSet_Sequence_T_NullFree, "org.eclipse.ocl.pivot.library.iterator.ClosureIteration", org.eclipse.ocl.pivot.library.iterator.ClosureIteration.INSTANCE);
-		private final @NonNull Iteration it_Sequence_collectNested = createIteration("collectNested", _Sequence_Sequence_collectNested_V_NullFree, "org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration", org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE, tp_Sequence_collectNested_V);
-		private final @NonNull Iteration it_Sequence_collect = createIteration("collect", _Sequence_Sequence_collect_V_NullFree, "org.eclipse.ocl.pivot.library.iterator.CollectIteration", org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE, tp_Sequence_collect_V);
+		private final @NonNull Iteration it_Sequence_closure = createIteration("closure", _OrderedSet_Sequence_T_T, "org.eclipse.ocl.pivot.library.iterator.ClosureIteration", org.eclipse.ocl.pivot.library.iterator.ClosureIteration.INSTANCE);
+		private final @NonNull Iteration it_Sequence_collectNested = createIteration("collectNested", _Sequence_Sequence_collectNested_V_T, "org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration", org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE, tp_Sequence_collectNested_V);
+		private final @NonNull Iteration it_Sequence_collect = createIteration("collect", _Sequence_Sequence_collect_V_T, "org.eclipse.ocl.pivot.library.iterator.CollectIteration", org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE, tp_Sequence_collect_V);
 		private final @NonNull Iteration it_Sequence_reject = createIteration("reject", _Sequence_Sequence_T, "org.eclipse.ocl.pivot.library.iterator.RejectIteration", org.eclipse.ocl.pivot.library.iterator.RejectIteration.INSTANCE);
 		private final @NonNull Iteration it_Sequence_select = createIteration("select", _Sequence_Sequence_T, "org.eclipse.ocl.pivot.library.iterator.SelectIteration", org.eclipse.ocl.pivot.library.iterator.SelectIteration.INSTANCE);
 		private final @NonNull Iteration it_Sequence_sortedBy = createIteration("sortedBy", _Sequence_Sequence_T, "org.eclipse.ocl.pivot.library.iterator.SortedByIteration", org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
 		private final @NonNull Iteration it_Set_closure = createIteration("closure", _Set_Set_T, "org.eclipse.ocl.pivot.library.iterator.ClosureIteration", org.eclipse.ocl.pivot.library.iterator.ClosureIteration.INSTANCE);
-		private final @NonNull Iteration it_Set_collectNested = createIteration("collectNested", _Bag_Set_collectNested_V_NullFree, "org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration", org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE, tp_Set_collectNested_V);
-		private final @NonNull Iteration it_Set_collect = createIteration("collect", _Bag_Set_collect_V_NullFree, "org.eclipse.ocl.pivot.library.iterator.CollectIteration", org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE, tp_Set_collect_V);
+		private final @NonNull Iteration it_Set_collectNested = createIteration("collectNested", _Bag_Set_collectNested_V_T, "org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration", org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE, tp_Set_collectNested_V);
+		private final @NonNull Iteration it_Set_collect = createIteration("collect", _Bag_Set_collect_V_T, "org.eclipse.ocl.pivot.library.iterator.CollectIteration", org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE, tp_Set_collect_V);
 		private final @NonNull Iteration it_Set_reject = createIteration("reject", _Set_Set_T, "org.eclipse.ocl.pivot.library.iterator.RejectIteration", org.eclipse.ocl.pivot.library.iterator.RejectIteration.INSTANCE);
 		private final @NonNull Iteration it_Set_select = createIteration("select", _Set_Set_T, "org.eclipse.ocl.pivot.library.iterator.SelectIteration", org.eclipse.ocl.pivot.library.iterator.SelectIteration.INSTANCE);
-		private final @NonNull Iteration it_Set_sortedBy = createIteration("sortedBy", _OrderedSet_Set_T_NullFree, "org.eclipse.ocl.pivot.library.iterator.SortedByIteration", org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
-		private final @NonNull Iteration it_UniqueCollection_sortedBy = createIteration("sortedBy", _OrderedSet_UniqueCollection_T_NullFree, "org.eclipse.ocl.pivot.library.iterator.SortedByIteration", org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
+		private final @NonNull Iteration it_Set_sortedBy = createIteration("sortedBy", _OrderedSet_Set_T_T, "org.eclipse.ocl.pivot.library.iterator.SortedByIteration", org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
+		private final @NonNull Iteration it_UniqueCollection_sortedBy = createIteration("sortedBy", _OrderedSet_UniqueCollection_T_T, "org.eclipse.ocl.pivot.library.iterator.SortedByIteration", org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
 
 		private void installIterations() {
 			List<Operation> ownedIterations;
@@ -2788,32 +2788,32 @@
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Bag_T, true));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Bag_T_4, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Bag_T_Set, false));
 			ownedIterations.add(iteration = it_Bag_collectNested);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Bag_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Bag_T_1, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Bag_T_Bag_collectNested_V, false));
 			ownedIterations.add(iteration = it_Bag_collect);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Bag_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Bag_T_2, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Bag_T_Bag_collect_V, false));
 			ownedIterations.add(iteration = it_Bag_reject);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Bag_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Bag_T, true));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Bag_T_Boolean, true));
 			ownedIterations.add(iteration = it_Bag_select);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Bag_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Bag_T, true));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Bag_T_Boolean, true));
 			ownedIterations.add(iteration = it_Bag_sortedBy);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Bag_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Bag_T_3, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Bag_T_OclAny, false));
 
 			ownedIterations = _Collection_Collection_T.getOwnedOperations();
 			ownedIterations.add(iteration = it_Collection_any);
@@ -2821,22 +2821,22 @@
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Collection_T, true));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T, true));
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T_Boolean, true));
 			ownedIterations.add(iteration = it_Collection_collectBy);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Collection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_1, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_Collection_collectBy_V, false));
 			ownedIterations.add(iteration = it_Collection_collectNested);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Collection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_2, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_Collection_collectNested_V, false));
 			ownedIterations.add(iteration = it_Collection_collect);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Collection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_3, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_Collection_collect_V, false));
 			ownedIterations.add(iteration = it_Collection_exists);
 			iteration.setIsInvalidating(true);
 			iteration.setIsRequired(false);
@@ -2846,7 +2846,7 @@
 			ownedParameters.add(parameter = createParameter("j", tp_Collection_T, false));
 			ownedParameters.add(parameter = createParameter("k", tp_Collection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_Boolean, false));
 			ownedIterations.add(iteration = it_Collection_exists_1);
 			iteration.setIsInvalidating(true);
 			iteration.setIsRequired(false);
@@ -2855,7 +2855,7 @@
 			ownedParameters.add(parameter = createParameter("i", tp_Collection_T, false));
 			ownedParameters.add(parameter = createParameter("j", tp_Collection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_Boolean, false));
 			ownedIterations.add(iteration = it_Collection_exists_2);
 			iteration.setIsInvalidating(true);
 			iteration.setIsRequired(false);
@@ -2863,7 +2863,7 @@
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Collection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_Boolean, false));
 			ownedIterations.add(iteration = it_Collection_forAll);
 			iteration.setIsInvalidating(true);
 			iteration.setIsRequired(false);
@@ -2873,7 +2873,7 @@
 			ownedParameters.add(parameter = createParameter("j", tp_Collection_T, false));
 			ownedParameters.add(parameter = createParameter("k", tp_Collection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_Boolean, false));
 			ownedIterations.add(iteration = it_Collection_forAll_1);
 			iteration.setIsInvalidating(true);
 			iteration.setIsRequired(false);
@@ -2882,7 +2882,7 @@
 			ownedParameters.add(parameter = createParameter("i", tp_Collection_T, false));
 			ownedParameters.add(parameter = createParameter("j", tp_Collection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_Boolean, false));
 			ownedIterations.add(iteration = it_Collection_forAll_2);
 			iteration.setIsInvalidating(true);
 			iteration.setIsRequired(false);
@@ -2890,12 +2890,12 @@
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Collection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_Boolean, false));
 			ownedIterations.add(iteration = it_Collection_isUnique);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Collection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_5, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_OclAny, false));
 			ownedIterations.add(iteration = it_Collection_iterate);
 			iteration.setIsRequired(false);
 			ownedParameters = iteration.getOwnedIterators();
@@ -2903,27 +2903,27 @@
 			ownedParameters = iteration.getOwnedAccumulators();
 			ownedParameters.add(parameter = createParameter("acc", tp_Collection_iterate_Tacc, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_4, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_Collection_iterate_Tacc, false));
 			ownedIterations.add(iteration = it_Collection_one);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Collection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T, true));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_Boolean, true));
 			ownedIterations.add(iteration = it_Collection_reject);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Collection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T, true));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_Boolean, true));
 			ownedIterations.add(iteration = it_Collection_select);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Collection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T, true));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_Boolean, true));
 			ownedIterations.add(iteration = it_Collection_sortedBy);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Collection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_5, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Collection_T_OclAny, false));
 
 			ownedIterations = _Map_Map_K_Map_V.getOwnedOperations();
 			ownedIterations.add(iteration = it_Map_any);
@@ -2931,22 +2931,22 @@
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("k", tp_Map_K, true));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("body", _Lambda_Map_K, true));
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Map_K_Boolean, true));
 			ownedIterations.add(iteration = it_Map_collectBy);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("k", tp_Map_K, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_1, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_Map_collectBy_V2, false));
 			ownedIterations.add(iteration = it_Map_collectNested);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("k", tp_Map_K, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_2, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_Map_collectNested_V2, false));
 			ownedIterations.add(iteration = it_Map_collect);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("k", tp_Map_K, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_3, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_Map_collect_V2, false));
 			ownedIterations.add(iteration = it_Map_exists);
 			iteration.setIsInvalidating(true);
 			iteration.setIsRequired(false);
@@ -2956,7 +2956,7 @@
 			ownedParameters.add(parameter = createParameter("k2", tp_Map_K, false));
 			ownedParameters.add(parameter = createParameter("k3", tp_Map_K, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_Boolean, false));
 			ownedIterations.add(iteration = it_Map_exists_1);
 			iteration.setIsInvalidating(true);
 			iteration.setIsRequired(false);
@@ -2965,7 +2965,7 @@
 			ownedParameters.add(parameter = createParameter("k1", tp_Map_K, false));
 			ownedParameters.add(parameter = createParameter("k2", tp_Map_K, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_Boolean, false));
 			ownedIterations.add(iteration = it_Map_exists_2);
 			iteration.setIsInvalidating(true);
 			iteration.setIsRequired(false);
@@ -2973,7 +2973,7 @@
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("k", tp_Map_K, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_Boolean, false));
 			ownedIterations.add(iteration = it_Map_forAll);
 			iteration.setIsInvalidating(true);
 			iteration.setIsRequired(false);
@@ -2983,7 +2983,7 @@
 			ownedParameters.add(parameter = createParameter("k2", tp_Map_K, false));
 			ownedParameters.add(parameter = createParameter("k3", tp_Map_K, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_Boolean, false));
 			ownedIterations.add(iteration = it_Map_forAll_1);
 			iteration.setIsInvalidating(true);
 			iteration.setIsRequired(false);
@@ -2992,7 +2992,7 @@
 			ownedParameters.add(parameter = createParameter("k1", tp_Map_K, false));
 			ownedParameters.add(parameter = createParameter("k2", tp_Map_K, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_Boolean, false));
 			ownedIterations.add(iteration = it_Map_forAll_2);
 			iteration.setIsInvalidating(true);
 			iteration.setIsRequired(false);
@@ -3000,12 +3000,12 @@
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("k", tp_Map_K, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_Boolean, false));
 			ownedIterations.add(iteration = it_Map_isUnique);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Map_K, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_5, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_OclAny, false));
 			ownedIterations.add(iteration = it_Map_iterate);
 			iteration.setIsRequired(false);
 			ownedParameters = iteration.getOwnedIterators();
@@ -3013,125 +3013,125 @@
 			ownedParameters = iteration.getOwnedAccumulators();
 			ownedParameters.add(parameter = createParameter("acc", tp_Map_iterate_Tacc, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_4, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_Map_iterate_Tacc, false));
 			ownedIterations.add(iteration = it_Map_one);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Map_K, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K, true));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_Boolean, true));
 			ownedIterations.add(iteration = it_Map_reject);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Map_K, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K, true));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_Boolean, true));
 			ownedIterations.add(iteration = it_Map_select);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Map_K, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K, true));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Map_K_Boolean, true));
 
 			ownedIterations = _OrderedSet_OrderedSet_T.getOwnedOperations();
 			ownedIterations.add(iteration = it_OrderedSet_closure);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_OrderedSet_T, true));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_OrderedSet_T_2, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_OrderedSet_T_OrderedSet, false));
 			ownedIterations.add(iteration = it_OrderedSet_collectNested);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_OrderedSet_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_OrderedSet_T_3, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_OrderedSet_T_OrderedSet_collectNested_V, false));
 			ownedIterations.add(iteration = it_OrderedSet_collect);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_OrderedSet_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_OrderedSet_T_4, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_OrderedSet_T_OrderedSet_collect_V, false));
 			ownedIterations.add(iteration = it_OrderedSet_reject);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_OrderedSet_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_OrderedSet_T, true));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_OrderedSet_T_Boolean, true));
 			ownedIterations.add(iteration = it_OrderedSet_select);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_OrderedSet_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_OrderedSet_T, true));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_OrderedSet_T_Boolean, true));
 			ownedIterations.add(iteration = it_OrderedSet_sortedBy);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_OrderedSet_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_OrderedSet_T_1, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_OrderedSet_T_OclAny, false));
 
 			ownedIterations = _Sequence_Sequence_T.getOwnedOperations();
 			ownedIterations.add(iteration = it_Sequence_closure);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Sequence_T, true));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Sequence_T_2, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Sequence_T_OrderedSet, false));
 			ownedIterations.add(iteration = it_Sequence_collectNested);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Sequence_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Sequence_T_3, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Sequence_T_Sequence_collectNested_V, false));
 			ownedIterations.add(iteration = it_Sequence_collect);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Sequence_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Sequence_T_4, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Sequence_T_Sequence_collect_V, false));
 			ownedIterations.add(iteration = it_Sequence_reject);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Sequence_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Sequence_T, true));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Sequence_T_Boolean, true));
 			ownedIterations.add(iteration = it_Sequence_select);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Sequence_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Sequence_T, true));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Sequence_T_Boolean, true));
 			ownedIterations.add(iteration = it_Sequence_sortedBy);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Sequence_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Sequence_T_1, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Sequence_T_OclAny, false));
 
 			ownedIterations = _Set_Set_T.getOwnedOperations();
 			ownedIterations.add(iteration = it_Set_closure);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Set_T, true));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Set_T_2, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Set_T_Set, false));
 			ownedIterations.add(iteration = it_Set_collectNested);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Set_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Set_T_3, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Set_T_Set_collectNested_V, false));
 			ownedIterations.add(iteration = it_Set_collect);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Set_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Set_T_4, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Set_T_Set_collect_V, false));
 			ownedIterations.add(iteration = it_Set_reject);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Set_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Set_T, true));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Set_T_Boolean, true));
 			ownedIterations.add(iteration = it_Set_select);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Set_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Set_T, true));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Set_T_Boolean, true));
 			ownedIterations.add(iteration = it_Set_sortedBy);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_Set_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Set_T_1, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_Set_T_OclAny, false));
 
 			ownedIterations = _UniqueCollection_UniqueCollection_T.getOwnedOperations();
 			ownedIterations.add(iteration = it_UniqueCollection_sortedBy);
 			ownedParameters = iteration.getOwnedIterators();
 			ownedParameters.add(parameter = createParameter("i", tp_UniqueCollection_T, false));
 			ownedParameters = iteration.getOwnedParameters();
-			ownedParameters.add(parameter = createParameter("lambda", _Lambda_UniqueCollection_T, false));
+			ownedParameters.add(parameter = createParameter("lambda", _Lambda_UniqueCollection_T_OclAny, false));
 		}
 
 		private void installCoercions() {
@@ -3152,15 +3152,15 @@
 		private final @NonNull Property pr_Map_valueType = createProperty("valueType", tp_Map_V);
 		private final @NonNull Property pr_MapType_keyType = createProperty("keyType", _Type);
 		private final @NonNull Property pr_MapType_valueType = createProperty("valueType", _Type);
-		private final @NonNull Property pr_OclAny_OclInvalid_oclBadProperty = createProperty("OclInvalid", _Bag_OclInvalid);
+		private final @NonNull Property pr_OclAny_OclInvalid_oclBadProperty = createProperty("OclInvalid", _Bag_OclInvalid_F);
 		private final @NonNull Property pr_OclElement_oclContainer = createProperty("oclContainer", _OclElement);
-		private final @NonNull Property pr_OclElement_oclContents = createProperty("oclContents", _Set_OclElement_NullFree);
-		private final @NonNull Property pr_OclElement_OclElement_oclContainer = createProperty("OclElement", _Bag_OclElement);
-		private final @NonNull Property pr_OclElement_OclElement_oclContents = createProperty("OclElement", _Bag_OclElement);
+		private final @NonNull Property pr_OclElement_oclContents = createProperty("oclContents", _Set_OclElement_T);
+		private final @NonNull Property pr_OclElement_OclElement_oclContainer = createProperty("OclElement", _Bag_OclElement_F);
+		private final @NonNull Property pr_OclElement_OclElement_oclContents = createProperty("OclElement", _Bag_OclElement_F);
 		private final @NonNull Property pr_OclInvalid_oclBadProperty = createProperty("oclBadProperty", _OclAny);
-		private final @NonNull Property pr_Type_CollectionType_elementType = createProperty("CollectionType", _Bag_CollectionType);
-		private final @NonNull Property pr_Type_MapType_keyType = createProperty("MapType", _Bag_MapType);
-		private final @NonNull Property pr_Type_MapType_valueType = createProperty("MapType", _Bag_MapType);
+		private final @NonNull Property pr_Type_CollectionType_elementType = createProperty("CollectionType", _Bag_CollectionType_F);
+		private final @NonNull Property pr_Type_MapType_keyType = createProperty("MapType", _Bag_MapType_F);
+		private final @NonNull Property pr_Type_MapType_valueType = createProperty("MapType", _Bag_MapType_F);
 
 		private void installProperties() {
 			List<Property> ownedProperties;
@@ -3271,156 +3271,156 @@
 		}
 
 		private void installTemplateBindings() {
-			addBinding(_Bag_Bag_collectNested_V_NullFree, tp_Bag_collectNested_V);
-			addBinding(_Bag_Bag_collect_V_NullFree, tp_Bag_collect_V);
-			addBinding(_Bag_Bag_flatten_T2_NullFree, tp_Bag_flatten_T2);
-			addBinding(_Bag_Bag_selectByKind_TT_NullFree, tp_Bag_selectByKind_TT);
-			addBinding(_Bag_Bag_selectByType_TT_NullFree, tp_Bag_selectByType_TT);
-			addBinding(_Bag_CollectionType, _CollectionType);
-			addBinding(_Bag_Collection_T_NullFree, tp_Collection_T);
-			addBinding(_Bag_MapType, _MapType);
-			addBinding(_Bag_Map_V_NullFree, tp_Map_V);
-			addBinding(_Bag_Map_collect_V2, tp_Map_collect_V2);
-			addBinding(_Bag_OclElement, _OclElement);
-			addBinding(_Bag_OclInvalid, _OclInvalid);
-			addBinding(_Bag_Set_collectNested_V_NullFree, tp_Set_collectNested_V);
-			addBinding(_Bag_Set_collect_V_NullFree, tp_Set_collect_V);
-			addBinding(_Collection_Bag_T, tp_Bag_T);
-			addBinding(_Collection_Bag_T_NullFree, tp_Bag_T);
-			addBinding(_Collection_Bag_collectNested_V, tp_Bag_collectNested_V);
-			addBinding(_Collection_Bag_collect_V, tp_Bag_collect_V);
-			addBinding(_Collection_Bag_flatten_T2, tp_Bag_flatten_T2);
-			addBinding(_Collection_Bag_selectByKind_TT, tp_Bag_selectByKind_TT);
-			addBinding(_Collection_Bag_selectByType_TT, tp_Bag_selectByType_TT);
-			addBinding(_Collection_CollectionType, _CollectionType);
-			addBinding(_Collection_Collection_T_1, tp_Collection_T);
-			addBinding(_Collection_Collection_collectNested_V_NullFree, tp_Collection_collectNested_V);
-			addBinding(_Collection_Collection_collect_V_NullFree, tp_Collection_collect_V);
-			addBinding(_Collection_Collection_excludesAll_T2_NullFree, tp_Collection_excludesAll_T2);
-			addBinding(_Collection_Collection_flatten_T2_NullFree, tp_Collection_flatten_T2);
-			addBinding(_Collection_Collection_includesAll_T2_NullFree, tp_Collection_includesAll_T2);
-			addBinding(_Collection_Collection_product_T2_NullFree, tp_Collection_product_T2);
-			addBinding(_Collection_Collection_selectByKind_TT_NullFree, tp_Collection_selectByKind_TT);
-			addBinding(_Collection_Collection_selectByType_TT_NullFree, tp_Collection_selectByType_TT);
-			addBinding(_Collection_Integer, _Integer);
-			addBinding(_Collection_MapType, _MapType);
-			addBinding(_Collection_Map_K, tp_Map_K);
-			addBinding(_Collection_Map_K_NullFree, tp_Map_K);
-			addBinding(_Collection_Map_V, tp_Map_V);
-			addBinding(_Collection_Map_collect_V2, tp_Map_collect_V2);
-			addBinding(_Collection_Map_excludesAll_K2_NullFree, tp_Map_excludesAll_K2);
-			addBinding(_Collection_Map_includesAll_K2_NullFree, tp_Map_includesAll_K2);
-			addBinding(_Collection_OclAny, _OclAny);
-			addBinding(_Collection_OclElement, _OclElement);
-			addBinding(_Collection_OclInvalid, _OclInvalid);
-			addBinding(_Collection_OclSelf, _OclSelf);
-			addBinding(_Collection_OrderedCollection_T_NullFree, tp_OrderedCollection_T);
-			addBinding(_Collection_OrderedSet_T, tp_OrderedSet_T);
-			addBinding(_Collection_OrderedSet_T_NullFree, tp_OrderedSet_T);
-			addBinding(_Collection_OrderedSet_collectNested_V, tp_OrderedSet_collectNested_V);
-			addBinding(_Collection_OrderedSet_collect_V, tp_OrderedSet_collect_V);
-			addBinding(_Collection_OrderedSet_flatten_T2, tp_OrderedSet_flatten_T2);
-			addBinding(_Collection_OrderedSet_selectByKind_TT, tp_OrderedSet_selectByKind_TT);
-			addBinding(_Collection_OrderedSet_selectByType_TT, tp_OrderedSet_selectByType_TT);
-			addBinding(_Collection_Sequence_T, tp_Sequence_T);
-			addBinding(_Collection_Sequence_T_NullFree, tp_Sequence_T);
-			addBinding(_Collection_Sequence_collectNested_V, tp_Sequence_collectNested_V);
-			addBinding(_Collection_Sequence_collect_V, tp_Sequence_collect_V);
-			addBinding(_Collection_Sequence_flatten_T2, tp_Sequence_flatten_T2);
-			addBinding(_Collection_Sequence_selectByKind_TT, tp_Sequence_selectByKind_TT);
-			addBinding(_Collection_Sequence_selectByType_TT, tp_Sequence_selectByType_TT);
-			addBinding(_Collection_Set_T, tp_Set_T);
-			addBinding(_Collection_Set_T_NullFree, tp_Set_T);
-			addBinding(_Collection_Set_collectNested_V, tp_Set_collectNested_V);
-			addBinding(_Collection_Set_collect_V, tp_Set_collect_V);
-			addBinding(_Collection_Set_flatten_T2, tp_Set_flatten_T2);
-			addBinding(_Collection_Set_selectByKind_TT, tp_Set_selectByKind_TT);
-			addBinding(_Collection_Set_selectByType_TT, tp_Set_selectByType_TT);
-			addBinding(_Collection_String, _String);
-			addBinding(_Collection_Tuple, _Tuple);
-			addBinding(_Collection_UniqueCollection_T, tp_UniqueCollection_T);
-			addBinding(_Collection_UniqueCollection_T_NullFree, tp_UniqueCollection_T);
-			addBinding(_Map_Collection_T_Collection_collectBy_V, tp_Collection_T);
-			addBinding(_Map_Collection_T_Collection_collectBy_V, tp_Collection_collectBy_V);
-			addBinding(_Map_Map_K_Map_collectBy_V2, tp_Map_K);
-			addBinding(_Map_Map_K_Map_collectBy_V2, tp_Map_collectBy_V2);
-			addBinding(_Map_Map_K_Map_collectNested_V2, tp_Map_K);
-			addBinding(_Map_Map_K_Map_collectNested_V2, tp_Map_collectNested_V2);
-			addBinding(_Map_Map_excludesMap_K2_Map_excludesMap_V2, tp_Map_excludesMap_K2);
-			addBinding(_Map_Map_excludesMap_K2_Map_excludesMap_V2, tp_Map_excludesMap_V2);
-			addBinding(_Map_Map_excludingMap_K2_Map_excludingMap_V2, tp_Map_excludingMap_K2);
-			addBinding(_Map_Map_excludingMap_K2_Map_excludingMap_V2, tp_Map_excludingMap_V2);
-			addBinding(_Map_Map_includesMap_K2_Map_includesMap_V2, tp_Map_includesMap_K2);
-			addBinding(_Map_Map_includesMap_K2_Map_includesMap_V2, tp_Map_includesMap_V2);
-			addBinding(_Map_Map_includingMap_K2_Map_includingMap_V2, tp_Map_includingMap_K2);
-			addBinding(_Map_Map_includingMap_K2_Map_includingMap_V2, tp_Map_includingMap_V2);
-			addBinding(_OrderedCollection_Bag_T, tp_Bag_T);
-			addBinding(_OrderedCollection_Collection_T, tp_Collection_T);
-			addBinding(_OrderedCollection_Integer, _Integer);
-			addBinding(_OrderedCollection_OrderedSet_T_NullFree, tp_OrderedSet_T);
-			addBinding(_OrderedCollection_OrderedSet_collectNested_V, tp_OrderedSet_collectNested_V);
-			addBinding(_OrderedCollection_OrderedSet_collect_V, tp_OrderedSet_collect_V);
-			addBinding(_OrderedCollection_OrderedSet_flatten_T2, tp_OrderedSet_flatten_T2);
-			addBinding(_OrderedCollection_OrderedSet_selectByKind_TT, tp_OrderedSet_selectByKind_TT);
-			addBinding(_OrderedCollection_OrderedSet_selectByType_TT, tp_OrderedSet_selectByType_TT);
-			addBinding(_OrderedCollection_Sequence_T, tp_Sequence_T);
-			addBinding(_OrderedCollection_Sequence_T_NullFree, tp_Sequence_T);
-			addBinding(_OrderedCollection_Sequence_collectNested_V, tp_Sequence_collectNested_V);
-			addBinding(_OrderedCollection_Sequence_collect_V, tp_Sequence_collect_V);
-			addBinding(_OrderedCollection_Sequence_flatten_T2, tp_Sequence_flatten_T2);
-			addBinding(_OrderedCollection_Sequence_selectByKind_TT, tp_Sequence_selectByKind_TT);
-			addBinding(_OrderedCollection_Sequence_selectByType_TT, tp_Sequence_selectByType_TT);
-			addBinding(_OrderedCollection_Set_T, tp_Set_T);
-			addBinding(_OrderedCollection_String, _String);
-			addBinding(_OrderedCollection_UniqueCollection_T, tp_UniqueCollection_T);
-			addBinding(_OrderedSet_Collection_T_NullFree, tp_Collection_T);
-			addBinding(_OrderedSet_OrderedSet_flatten_T2_NullFree, tp_OrderedSet_flatten_T2);
-			addBinding(_OrderedSet_OrderedSet_selectByKind_TT_NullFree, tp_OrderedSet_selectByKind_TT);
-			addBinding(_OrderedSet_OrderedSet_selectByType_TT_NullFree, tp_OrderedSet_selectByType_TT);
-			addBinding(_OrderedSet_Sequence_T_NullFree, tp_Sequence_T);
-			addBinding(_OrderedSet_Set_T_NullFree, tp_Set_T);
-			addBinding(_OrderedSet_UniqueCollection_T_NullFree, tp_UniqueCollection_T);
-			addBinding(_Sequence_Bag_T_NullFree, tp_Bag_T);
-			addBinding(_Sequence_Collection_T_NullFree, tp_Collection_T);
-			addBinding(_Sequence_Integer_NullFree, _Integer);
-			addBinding(_Sequence_OrderedSet_collectNested_V_NullFree, tp_OrderedSet_collectNested_V);
-			addBinding(_Sequence_OrderedSet_collect_V_NullFree, tp_OrderedSet_collect_V);
-			addBinding(_Sequence_Sequence_collectNested_V_NullFree, tp_Sequence_collectNested_V);
-			addBinding(_Sequence_Sequence_collect_V_NullFree, tp_Sequence_collect_V);
-			addBinding(_Sequence_Sequence_flatten_T2_NullFree, tp_Sequence_flatten_T2);
-			addBinding(_Sequence_Sequence_selectByKind_TT_NullFree, tp_Sequence_selectByKind_TT);
-			addBinding(_Sequence_Sequence_selectByType_TT_NullFree, tp_Sequence_selectByType_TT);
-			addBinding(_Sequence_String_NullFree, _String);
-			addBinding(_Set_Bag_T_NullFree, tp_Bag_T);
-			addBinding(_Set_Collection_T_NullFree, tp_Collection_T);
-			addBinding(_Set_Map_K_NullFree, tp_Map_K);
-			addBinding(_Set_OclElement_NullFree, _OclElement);
-			addBinding(_Set_OclSelf, _OclSelf);
-			addBinding(_Set_OclSelf_NullFree, _OclSelf);
-			addBinding(_Set_Set_flatten_T2_NullFree, tp_Set_flatten_T2);
-			addBinding(_Set_Set_selectByKind_TT_NullFree, tp_Set_selectByKind_TT);
-			addBinding(_Set_Set_selectByType_TT_NullFree, tp_Set_selectByType_TT);
-			addBinding(_Set_Tuple_NullFree, _Tuple);
-			addBinding(_Set_UniqueCollection_T_NullFree, tp_UniqueCollection_T);
-			addBinding(_UniqueCollection_Bag_T, tp_Bag_T);
-			addBinding(_UniqueCollection_Collection_T, tp_Collection_T);
-			addBinding(_UniqueCollection_Collection_T_NullFree, tp_Collection_T);
-			addBinding(_UniqueCollection_Map_K, tp_Map_K);
-			addBinding(_UniqueCollection_OclAny_NullFree, _OclAny);
-			addBinding(_UniqueCollection_OclElement, _OclElement);
-			addBinding(_UniqueCollection_OclSelf, _OclSelf);
-			addBinding(_UniqueCollection_OrderedSet_T_NullFree, tp_OrderedSet_T);
-			addBinding(_UniqueCollection_OrderedSet_flatten_T2, tp_OrderedSet_flatten_T2);
-			addBinding(_UniqueCollection_OrderedSet_selectByKind_TT, tp_OrderedSet_selectByKind_TT);
-			addBinding(_UniqueCollection_OrderedSet_selectByType_TT, tp_OrderedSet_selectByType_TT);
-			addBinding(_UniqueCollection_Sequence_T, tp_Sequence_T);
-			addBinding(_UniqueCollection_Set_T, tp_Set_T);
-			addBinding(_UniqueCollection_Set_T_NullFree, tp_Set_T);
-			addBinding(_UniqueCollection_Set_flatten_T2, tp_Set_flatten_T2);
-			addBinding(_UniqueCollection_Set_selectByKind_TT, tp_Set_selectByKind_TT);
-			addBinding(_UniqueCollection_Set_selectByType_TT, tp_Set_selectByType_TT);
-			addBinding(_UniqueCollection_Tuple, _Tuple);
-			addBinding(_UniqueCollection_UniqueCollection_T_1, tp_UniqueCollection_T);
+			addBinding(_Bag_Bag_collectNested_V_T, tp_Bag_collectNested_V);
+			addBinding(_Bag_Bag_collect_V_T, tp_Bag_collect_V);
+			addBinding(_Bag_Bag_flatten_T2_T, tp_Bag_flatten_T2);
+			addBinding(_Bag_Bag_selectByKind_TT_T, tp_Bag_selectByKind_TT);
+			addBinding(_Bag_Bag_selectByType_TT_T, tp_Bag_selectByType_TT);
+			addBinding(_Bag_CollectionType_F, _CollectionType);
+			addBinding(_Bag_Collection_T_T, tp_Collection_T);
+			addBinding(_Bag_MapType_F, _MapType);
+			addBinding(_Bag_Map_V_T, tp_Map_V);
+			addBinding(_Bag_Map_collect_V2_F, tp_Map_collect_V2);
+			addBinding(_Bag_OclElement_F, _OclElement);
+			addBinding(_Bag_OclInvalid_F, _OclInvalid);
+			addBinding(_Bag_Set_collectNested_V_T, tp_Set_collectNested_V);
+			addBinding(_Bag_Set_collect_V_T, tp_Set_collect_V);
+			addBinding(_Collection_Bag_T_F, tp_Bag_T);
+			addBinding(_Collection_Bag_T_T, tp_Bag_T);
+			addBinding(_Collection_Bag_collectNested_V_F, tp_Bag_collectNested_V);
+			addBinding(_Collection_Bag_collect_V_F, tp_Bag_collect_V);
+			addBinding(_Collection_Bag_flatten_T2_F, tp_Bag_flatten_T2);
+			addBinding(_Collection_Bag_selectByKind_TT_F, tp_Bag_selectByKind_TT);
+			addBinding(_Collection_Bag_selectByType_TT_F, tp_Bag_selectByType_TT);
+			addBinding(_Collection_CollectionType_F, _CollectionType);
+			addBinding(_Collection_Collection_T_F, tp_Collection_T);
+			addBinding(_Collection_Collection_collectNested_V_T, tp_Collection_collectNested_V);
+			addBinding(_Collection_Collection_collect_V_T, tp_Collection_collect_V);
+			addBinding(_Collection_Collection_excludesAll_T2_T, tp_Collection_excludesAll_T2);
+			addBinding(_Collection_Collection_flatten_T2_T, tp_Collection_flatten_T2);
+			addBinding(_Collection_Collection_includesAll_T2_T, tp_Collection_includesAll_T2);
+			addBinding(_Collection_Collection_product_T2_T, tp_Collection_product_T2);
+			addBinding(_Collection_Collection_selectByKind_TT_T, tp_Collection_selectByKind_TT);
+			addBinding(_Collection_Collection_selectByType_TT_T, tp_Collection_selectByType_TT);
+			addBinding(_Collection_Integer_F, _Integer);
+			addBinding(_Collection_MapType_F, _MapType);
+			addBinding(_Collection_Map_K_F, tp_Map_K);
+			addBinding(_Collection_Map_K_T, tp_Map_K);
+			addBinding(_Collection_Map_V_F, tp_Map_V);
+			addBinding(_Collection_Map_collect_V2_F, tp_Map_collect_V2);
+			addBinding(_Collection_Map_excludesAll_K2_T, tp_Map_excludesAll_K2);
+			addBinding(_Collection_Map_includesAll_K2_T, tp_Map_includesAll_K2);
+			addBinding(_Collection_OclAny_F, _OclAny);
+			addBinding(_Collection_OclElement_F, _OclElement);
+			addBinding(_Collection_OclInvalid_F, _OclInvalid);
+			addBinding(_Collection_OclSelf_F, _OclSelf);
+			addBinding(_Collection_OrderedCollection_T_T, tp_OrderedCollection_T);
+			addBinding(_Collection_OrderedSet_T_F, tp_OrderedSet_T);
+			addBinding(_Collection_OrderedSet_T_T, tp_OrderedSet_T);
+			addBinding(_Collection_OrderedSet_collectNested_V_F, tp_OrderedSet_collectNested_V);
+			addBinding(_Collection_OrderedSet_collect_V_F, tp_OrderedSet_collect_V);
+			addBinding(_Collection_OrderedSet_flatten_T2_F, tp_OrderedSet_flatten_T2);
+			addBinding(_Collection_OrderedSet_selectByKind_TT_F, tp_OrderedSet_selectByKind_TT);
+			addBinding(_Collection_OrderedSet_selectByType_TT_F, tp_OrderedSet_selectByType_TT);
+			addBinding(_Collection_Sequence_T_F, tp_Sequence_T);
+			addBinding(_Collection_Sequence_T_T, tp_Sequence_T);
+			addBinding(_Collection_Sequence_collectNested_V_F, tp_Sequence_collectNested_V);
+			addBinding(_Collection_Sequence_collect_V_F, tp_Sequence_collect_V);
+			addBinding(_Collection_Sequence_flatten_T2_F, tp_Sequence_flatten_T2);
+			addBinding(_Collection_Sequence_selectByKind_TT_F, tp_Sequence_selectByKind_TT);
+			addBinding(_Collection_Sequence_selectByType_TT_F, tp_Sequence_selectByType_TT);
+			addBinding(_Collection_Set_T_F, tp_Set_T);
+			addBinding(_Collection_Set_T_T, tp_Set_T);
+			addBinding(_Collection_Set_collectNested_V_F, tp_Set_collectNested_V);
+			addBinding(_Collection_Set_collect_V_F, tp_Set_collect_V);
+			addBinding(_Collection_Set_flatten_T2_F, tp_Set_flatten_T2);
+			addBinding(_Collection_Set_selectByKind_TT_F, tp_Set_selectByKind_TT);
+			addBinding(_Collection_Set_selectByType_TT_F, tp_Set_selectByType_TT);
+			addBinding(_Collection_String_F, _String);
+			addBinding(_Collection_Tuple_F, _Tuple);
+			addBinding(_Collection_UniqueCollection_T_F, tp_UniqueCollection_T);
+			addBinding(_Collection_UniqueCollection_T_T, tp_UniqueCollection_T);
+			addBinding(_Map_Collection_T_F_Collection_collectBy_V_F, tp_Collection_T);
+			addBinding(_Map_Collection_T_F_Collection_collectBy_V_F, tp_Collection_collectBy_V);
+			addBinding(_Map_Map_K_F_Map_collectBy_V2_F, tp_Map_K);
+			addBinding(_Map_Map_K_F_Map_collectBy_V2_F, tp_Map_collectBy_V2);
+			addBinding(_Map_Map_K_F_Map_collectNested_V2_F, tp_Map_K);
+			addBinding(_Map_Map_K_F_Map_collectNested_V2_F, tp_Map_collectNested_V2);
+			addBinding(_Map_Map_excludesMap_K2_T_Map_excludesMap_V2_T, tp_Map_excludesMap_K2);
+			addBinding(_Map_Map_excludesMap_K2_T_Map_excludesMap_V2_T, tp_Map_excludesMap_V2);
+			addBinding(_Map_Map_excludingMap_K2_T_Map_excludingMap_V2_T, tp_Map_excludingMap_K2);
+			addBinding(_Map_Map_excludingMap_K2_T_Map_excludingMap_V2_T, tp_Map_excludingMap_V2);
+			addBinding(_Map_Map_includesMap_K2_T_Map_includesMap_V2_T, tp_Map_includesMap_K2);
+			addBinding(_Map_Map_includesMap_K2_T_Map_includesMap_V2_T, tp_Map_includesMap_V2);
+			addBinding(_Map_Map_includingMap_K2_T_Map_includingMap_V2_T, tp_Map_includingMap_K2);
+			addBinding(_Map_Map_includingMap_K2_T_Map_includingMap_V2_T, tp_Map_includingMap_V2);
+			addBinding(_OrderedCollection_Bag_T_F, tp_Bag_T);
+			addBinding(_OrderedCollection_Collection_T_F, tp_Collection_T);
+			addBinding(_OrderedCollection_Integer_F, _Integer);
+			addBinding(_OrderedCollection_OrderedSet_T_T, tp_OrderedSet_T);
+			addBinding(_OrderedCollection_OrderedSet_collectNested_V_F, tp_OrderedSet_collectNested_V);
+			addBinding(_OrderedCollection_OrderedSet_collect_V_F, tp_OrderedSet_collect_V);
+			addBinding(_OrderedCollection_OrderedSet_flatten_T2_F, tp_OrderedSet_flatten_T2);
+			addBinding(_OrderedCollection_OrderedSet_selectByKind_TT_F, tp_OrderedSet_selectByKind_TT);
+			addBinding(_OrderedCollection_OrderedSet_selectByType_TT_F, tp_OrderedSet_selectByType_TT);
+			addBinding(_OrderedCollection_Sequence_T_F, tp_Sequence_T);
+			addBinding(_OrderedCollection_Sequence_T_T, tp_Sequence_T);
+			addBinding(_OrderedCollection_Sequence_collectNested_V_F, tp_Sequence_collectNested_V);
+			addBinding(_OrderedCollection_Sequence_collect_V_F, tp_Sequence_collect_V);
+			addBinding(_OrderedCollection_Sequence_flatten_T2_F, tp_Sequence_flatten_T2);
+			addBinding(_OrderedCollection_Sequence_selectByKind_TT_F, tp_Sequence_selectByKind_TT);
+			addBinding(_OrderedCollection_Sequence_selectByType_TT_F, tp_Sequence_selectByType_TT);
+			addBinding(_OrderedCollection_Set_T_F, tp_Set_T);
+			addBinding(_OrderedCollection_String_F, _String);
+			addBinding(_OrderedCollection_UniqueCollection_T_F, tp_UniqueCollection_T);
+			addBinding(_OrderedSet_Collection_T_T, tp_Collection_T);
+			addBinding(_OrderedSet_OrderedSet_flatten_T2_T, tp_OrderedSet_flatten_T2);
+			addBinding(_OrderedSet_OrderedSet_selectByKind_TT_T, tp_OrderedSet_selectByKind_TT);
+			addBinding(_OrderedSet_OrderedSet_selectByType_TT_T, tp_OrderedSet_selectByType_TT);
+			addBinding(_OrderedSet_Sequence_T_T, tp_Sequence_T);
+			addBinding(_OrderedSet_Set_T_T, tp_Set_T);
+			addBinding(_OrderedSet_UniqueCollection_T_T, tp_UniqueCollection_T);
+			addBinding(_Sequence_Bag_T_T, tp_Bag_T);
+			addBinding(_Sequence_Collection_T_T, tp_Collection_T);
+			addBinding(_Sequence_Integer_T, _Integer);
+			addBinding(_Sequence_OrderedSet_collectNested_V_T, tp_OrderedSet_collectNested_V);
+			addBinding(_Sequence_OrderedSet_collect_V_T, tp_OrderedSet_collect_V);
+			addBinding(_Sequence_Sequence_collectNested_V_T, tp_Sequence_collectNested_V);
+			addBinding(_Sequence_Sequence_collect_V_T, tp_Sequence_collect_V);
+			addBinding(_Sequence_Sequence_flatten_T2_T, tp_Sequence_flatten_T2);
+			addBinding(_Sequence_Sequence_selectByKind_TT_T, tp_Sequence_selectByKind_TT);
+			addBinding(_Sequence_Sequence_selectByType_TT_T, tp_Sequence_selectByType_TT);
+			addBinding(_Sequence_String_T, _String);
+			addBinding(_Set_Bag_T_T, tp_Bag_T);
+			addBinding(_Set_Collection_T_T, tp_Collection_T);
+			addBinding(_Set_Map_K_T, tp_Map_K);
+			addBinding(_Set_OclElement_T, _OclElement);
+			addBinding(_Set_OclSelf_F, _OclSelf);
+			addBinding(_Set_OclSelf_T, _OclSelf);
+			addBinding(_Set_Set_flatten_T2_T, tp_Set_flatten_T2);
+			addBinding(_Set_Set_selectByKind_TT_T, tp_Set_selectByKind_TT);
+			addBinding(_Set_Set_selectByType_TT_T, tp_Set_selectByType_TT);
+			addBinding(_Set_Tuple_T, _Tuple);
+			addBinding(_Set_UniqueCollection_T_T, tp_UniqueCollection_T);
+			addBinding(_UniqueCollection_Bag_T_F, tp_Bag_T);
+			addBinding(_UniqueCollection_Collection_T_F, tp_Collection_T);
+			addBinding(_UniqueCollection_Collection_T_T, tp_Collection_T);
+			addBinding(_UniqueCollection_Map_K_F, tp_Map_K);
+			addBinding(_UniqueCollection_OclAny_T, _OclAny);
+			addBinding(_UniqueCollection_OclElement_F, _OclElement);
+			addBinding(_UniqueCollection_OclSelf_F, _OclSelf);
+			addBinding(_UniqueCollection_OrderedSet_T_T, tp_OrderedSet_T);
+			addBinding(_UniqueCollection_OrderedSet_flatten_T2_F, tp_OrderedSet_flatten_T2);
+			addBinding(_UniqueCollection_OrderedSet_selectByKind_TT_F, tp_OrderedSet_selectByKind_TT);
+			addBinding(_UniqueCollection_OrderedSet_selectByType_TT_F, tp_OrderedSet_selectByType_TT);
+			addBinding(_UniqueCollection_Sequence_T_F, tp_Sequence_T);
+			addBinding(_UniqueCollection_Set_T_F, tp_Set_T);
+			addBinding(_UniqueCollection_Set_T_T, tp_Set_T);
+			addBinding(_UniqueCollection_Set_flatten_T2_F, tp_Set_flatten_T2);
+			addBinding(_UniqueCollection_Set_selectByKind_TT_F, tp_Set_selectByKind_TT);
+			addBinding(_UniqueCollection_Set_selectByType_TT_F, tp_Set_selectByType_TT);
+			addBinding(_UniqueCollection_Tuple_F, _Tuple);
+			addBinding(_UniqueCollection_UniqueCollection_T_F, tp_UniqueCollection_T);
 		}
 
 		private void installPrecedences() {
@@ -3519,6 +3519,7 @@
 		}
 
 		private void installComments() {
+			installComment(_Boolean, "The standard type Boolean represents the common true/false values.\nBoolean is itself an instance of the metatype PrimitiveType (from UML).");
 			installComment(op_Boolean__lt__gt_, "Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise.");
 			installComment(op_Boolean__eq_, "Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise.");
 			installComment(op_Boolean_allInstances, "Returns oclText[Set{false, true}].\n\n@Deprecated - retained with broken signature for referential API compatibility.");
@@ -3533,6 +3534,7 @@
 			installComment(op_Boolean_toString, "Converts oclText[self] to a string value.");
 			installComment(op_Boolean_xor, "oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].\noclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].\nOtherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].\nOtherwise oclText[null].");
 			installComment(op_Boolean_xor2, "oclText[true] if oclText[self] <> oclText[b]\nOtherwise oclText[false].");
+			installComment(_Integer, "The standard type Integer represents the mathematical concept of integer.\nInteger is itself an instance of the metatype PrimitiveType (from UML).");
 			installComment(op_Integer__mul_, "The value of the multiplication of oclText[self] and i.");
 			installComment(op_Integer__add_, "The value of the addition of oclText[self] and i.");
 			installComment(op_Integer__neg_, "The negative value of oclText[self].");
@@ -3545,6 +3547,7 @@
 			installComment(op_Integer_mod, "The result is oclText[self] modulo i.");
 			installComment(op_Integer_toString, "Converts oclText[self] to a string value.");
 			installComment(op_Integer_toUnlimitedNatural, "Converts a non-negative oclText[self] to an UnlimitedNatural value. A negative oclText[self] is converted to oclText[invalid].\nAn automatic coersion may be synthesized if the coercion enables an operation reference to be resolved\nin an expression where no operation was available without coercion.");
+			installComment(_Real, "The standard type Real represents the mathematical concept of real.\nNote that Integer is a subclass of Real,\nso for each parameter of type Real, you can use an integer as the actual parameter.\nReal is itself an instance of the metatype PrimitiveType (from UML).");
 			installComment(op_Real__mul_, "The value of the multiplication of oclText[self] and r.");
 			installComment(op_Real__add_, "The value of the addition of oclText[self] and r.");
 			installComment(op_Real__neg_, "The negative value of oclText[self].");
@@ -3558,6 +3561,7 @@
 			installComment(op_Real_min, "The minimum of oclText[self] and r.");
 			installComment(op_Real_round, "The integer that is closest to oclText[self]. When there are two such integers, the largest one.");
 			installComment(op_Real_toString, "Converts oclText[self] to a string value.");
+			installComment(_String, "The standard type String represents strings, which can be both ASCII or Unicode.\nString is itself an instance of the metatype PrimitiveType (from UML).");
 			installComment(op_String__add_, "The concatenation of oclText[self] and s.");
 			installComment(op_String__lt_, "True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment.");
 			installComment(op_String__lt__eq_, "True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment.");
@@ -3591,11 +3595,13 @@
 			installComment(op_String_tokenize_1, "Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return.");
 			installComment(op_String_tokenize_2, "Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is\ntrue the returned sequence includes the delimiters, otherwise the delimiters are omitted.");
 			installComment(op_String_trim, "Return oclText[self] with leading and trailing whitespace removed.");
+			installComment(_UnlimitedNatural, "The standard type UnlimitedNatural is used to encode the non-negative values of a multiplicity specification.\nThis includes a special e[unlimited] value (*) that encodes the upper value of  a multiplicity specification.\nUnlimitedNatural is itself an instance of the metatype UnlimitedNaturalType.\n\nNote that UnlimitedNatural is not a subclass of Integer.");
 			installComment(op_UnlimitedNatural_max, "The maximum of oclText[self] an i.");
 			installComment(op_UnlimitedNatural_min, "The minimum of oclText[self] an i.");
 			installComment(op_UnlimitedNatural_oclAsType, "Evaluates to oclText[self], where oclText[self] is of the type identified by T.\nThe type T may be any classifier defined in the UML model;\nif the actual type of oclText[self] at evaluation time does not conform to T,\nthen the oclAsType operation evaluates to oclText[invalid].\n\nThe standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to\nReal or Integer, but the e[unlimited] value may not.\nConversion of e[unlimited] to Real or Integer returns oclText[invalid].");
 			installComment(op_UnlimitedNatural_toInteger, "Converts oclText[self] to an Integer value unless oclText[self] is e[unlimited] in which case oclText[self] is converted to oclText[null].");
 			installComment(ocl, "This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.\nThis sub clause contains all standard types defined within OCL, including all the operations defined on those types.\nFor each operation the signature and a description of the semantics is given.\nWithin the description, the reserved word \u2018result\u2019 is used to refer to the value that results from evaluating the operation.\nIn several places, post conditions are used to describe properties of the result.\nWhen there is more than one postcondition, all postconditions must be true.\nA similar thing is true for multiple preconditions.\nIf these are used, the operation is only defined if all preconditions evaluate to oclText[true].\n\nheading:1[Introduction]\n\nThe structure, syntax, and semantics of the OCL is defined in Clauses 8 (\u201CAbstract Syntax\u201D), 9 (\u201CConcrete Syntax\u201D),\nand 10 (\u201CSemantics Described using UML\u201D).\nThis sub clause adds another part to the OCL definition: a library of predefined types and operations.\nAny implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,\nwhere the language definition and the standard libraries are both mandatory parts of the complete language definition.\n\nThe OCL standard library defines a number of types.\nIt includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.\nThese are familiar from many other languages. The second part of the standard library consists of the collection types.\nThey are Bag, Set, Sequence, and Collection where Collection is an abstract type.\nNote that all types defined in the OCL standard library are instances of an abstract syntax class.\nThe OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.\n\nNext to definitions of types the OCL standard library defines a number of template expressions.\nMany operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.\nFor each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.\n\nThe Standard Library may be extended with new types, new operations and new iterators.\nIn particular new operations can be defined for collections.\n\nCertain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted\nin an appropriate fashion.\nA locale is defined as a concatenation of up to three character sequences separated by underscores,\nwith the first sequence identifying the language and the second sequence identifying the country.\nThe third sequence is empty but may encode an implementation-specific variant.\nTrailing empty strings and separators may be omitted.\n\nThe character sequences for languages are defined by ISO 639.\n\nThe character sequences for countries are defined by ISO 3166.\n\n\u2018fr_CA\u2019 therefore identifies the locale for the French language in the Canada country.\n\nComparison of strings and consequently the collation order of Collection::sortedBy()\nconforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.\n\nThe locale is \u2018en_us\u2019 by default but may be configured by a property constraint on OclAny::oclLocale.\n\nThe prevailing locale is defined by the prevailing value of oclLocale within the current environment;\nit may therefore be changed temporarily by using a Let expression.\nlet oclLocale : String = \u2018fr_CA\u2019 in aString.toUpperCase()\n\nheading:1[Iterators]\n\nThis sub clause defines the standard OCL iterator expressions.\nIn the abstract syntax these are all instances of IteratorExp.\nThese iterator expressions always have a collection expression as their source,\nas is defined in the well-formedness rules in Clause 8 (\u201CAbstract Syntax\u201D).\nThe defined iterator expressions are shown per source collection type.\nThe semantics of each iterator expression is defined through a mapping from the iterator to the \u2018iterate\u2019 construct.\nThis means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.\n\nIn all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,\nand the righthand side of the equals sign is the equivalent as an IterateExp.\nThe names source, body, and iterator refer to the role names in the abstract syntax:\n\nsource\tThe source expression of the IteratorExp.\n\nbody\tThe body expression of the IteratorExp.\n\niterator\tThe iterator variable of the IteratorExp.\n\nresult\tThe result variable of the IterateExp.\n\nheading:2[Extending the Standard Library with Iterator Expressions]\n\nIt is possible to add new iterator expressions in the standard library.\nIf this is done the semantics of a new iterator should be defined by mapping it to existing constructs,\nin the same way the semantics of pre-defined iterators is done (see sub clause 11.9)");
+			installComment(_Bag_Bag_T, "A bag is a collection with duplicates allowed. That is, one object can be an element of a bag many times.\nThere is no ordering defined on the elements in a bag.\nBag is itself an instance of the metatype BagType.");
 			installComment(op_Bag__lt__gt_, "Evaluates to oclText[true] unless oclText[self] and s contain the same elements.");
 			installComment(op_Bag__eq_, "True if oclText[self] and bag contain the same elements, the same number of times.");
 			installComment(it_Bag_closure, "The closure of applying body transitively to every distinct element of the source collection.");
@@ -3616,6 +3622,7 @@
 			installComment(pr_CollectionType_elementType, "Evaluates to the type of the collection elements.");
 			installComment(pr_CollectionType_lower, "Evaluates to the lower bound on the number of collection elements.");
 			installComment(pr_CollectionType_upper, "Evaluates to the upper bound on the number of collection elements.");
+			installComment(_Collection_Collection_T, "Collection is the abstract supertype of all collection types in the OCL Standard Library.\nEach occurrence of an object in a collection is called an element.\nIf an object occurs twice in a collection, there are two elements.\n\nThis sub clause defines the properties on Collections that have identical semantics for all collection subtypes.\nSome operations may be defined within the subtype as well,\nwhich means that there is an additional postcondition or a more specialized return value.\nCollection is itself an instance of the metatype CollectionType.\n\nThe definition of several common operations is different for each subtype.\nThese operations are not mentioned in this sub clause.\n\nThe semantics of the collection operations is given in the form of a postcondition that uses the IterateExp of the IteratorExp construct.\nThe semantics of those constructs is defined in Clause 10 (\u201CSemantics Described using UML\u201D).\nIn several cases the postcondition refers to other collection operations,\nwhich in turn are defined in terms of the IterateExp or IteratorExp constructs.\n\nWell-formedness rules\n\n[1] A collection cannot contain oclText[invalid] values.\n\ncontext Collection\ninv: self->forAll(not oclIsInvalid())");
 			installComment(op_Collection__lt__gt_, "True if c is not equal to oclText[self].");
 			installComment(op_Collection__eq_, "True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,\nin the case of an ordered collection type.");
 			installComment(it_Collection_any, "Returns any element in the e[source] null-free collection for which e[body] evaluates to oclText[true].\nReturns oclText[invalid] if the e[body] evaluates to oclText[invalid] for any element,\notherwise if there are one or more elements for which the e[body] is oclText[true],\nan indeterminate choice of one of them is returned, otherwise the result is oclText[null].\n\nlet source : Collection(T) = ..., body : Lambda T() : Boolean = ... in\nsource->any(iterator | body) = source->select(iterator | body)->asSequence()->first()");
@@ -3648,6 +3655,8 @@
 			installComment(op_Collection_isEmpty, "Is oclText[self] the empty collection?\n\nNote: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}].");
 			installComment(it_Collection_isUnique, "Results in oclText[true] if body evaluates to a different value for each element oclText[i] in the source collection; otherwise, result is oclText[false].");
 			installComment(it_Collection_isUnique, "The Map from each element oclText[i] of the source collection, the key, to the set of values to and values that results from applying body to every value of the source map.\nThe result is not flattened.");
+			installComment(it_Collection_isUnique, "Results in oclText[true] if body evaluates to a different value for each element oclText[i] in the source collection; otherwise, result is oclText[false].");
+			installComment(it_Collection_isUnique, "The Map from each element oclText[i] of the source collection, the key, to the set of values to and values that results from applying body to every value of the source map.\nThe result is not flattened.");
 			installComment(it_Collection_iterate, "Results in the final value of the accumulator oclText[acc] whose value is updated by evaluation of oclText[lambda] for each element oclText[i] in the source collection.");
 			installComment(pr_Collection_lower, "Evaluates to the lower bound on the number of collection elements.\n\n@Deprecated Use regular CollectionType property");
 			installComment(op_Collection_max, "The element with the maximum value of all elements in oclText[self].\nElements must be of a type supporting the max operation.\nThe max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.\nUnlimitedNatural, Integer and Real fulfill this condition.");
@@ -3670,6 +3679,7 @@
 			installComment(op_InvalidType_allInstances, "Returns oclText[invalid].");
 			installComment(pr_MapType_keyType, "The key type of the key-value pairs of oclText[self].");
 			installComment(pr_MapType_valueType, "The value type of the key-value pairs of oclText[self].");
+			installComment(_Map_Map_K_Map_V, "A Map provides a Set of key values, each of which has an associated value.\nKeys and values may be null, but neither may be invalid.");
 			installComment(op_Map__lt__gt_, "Evaluates to oclText[true] unless oclText[self] and s contain the same elements.");
 			installComment(op_Map__eq_, "Evaluates to oclText[true] if oclText[self] and s contain the same elements.");
 			installComment(it_Map_any, "Returns the key of any element in the e[source] map for which e[body] evaluates to oclText[true].\nReturns oclText[invalid] if the e[body] evaluates to oclText[invalid] for any key,\notherwise if there are one or more kets for which the e[body] is oclText[true],\nan indeterminate choice of one of them is returned, otherwise the null is oclText[invalid].\n\nlet source : Map(K,V) = ..., body : Lambda K(V) : Boolean = ... in\nsource->any(key <- value | body) = source->select(key | let value = source->at(key) in body)->asSequence()->first()");
@@ -3778,10 +3788,12 @@
 			installComment(op_OclVoid_allInstances, "Returns oclText[Set{null}].\n\n@Deprecated - retained with broken signature for referential API compatibility.");
 			installComment(op_OclVoid_concat, "The concatenation of oclText[null] and s.");
 			installComment(op_OclVoid_toString, "Returns oclText[null].");
+			installComment(_OrderedCollection_OrderedCollection_T, "The OrderedCollection type provides the shared functionality of the OrderedSet and Sequence\ncollections for which the elements are ordered.\nThe common supertype of OrderedCollection is Collection.");
 			installComment(op_OrderedCollection_at, "The i-th element of ordered collection.");
 			installComment(op_OrderedCollection_first, "The first element in oclText[self].");
 			installComment(op_OrderedCollection_indexOf, "The index of object obj in the ordered collection. Returns null for an out of bound index.");
 			installComment(op_OrderedCollection_last, "The last element in oclText[self].");
+			installComment(_OrderedSet_OrderedSet_T, "The OrderedSet is a Set, the elements of which are ordered.\nIt contains no duplicates. OrderedSet is itself an instance of the metatype OrderedSetType.\nAn OrderedSet is not a subtype of Set, neither a subtype of Sequence.\nThe common supertype of Sets and OrderedSets is Collection.");
 			installComment(op_OrderedSet__neg_, "The elements of oclText[self], which are not in s.");
 			installComment(op_OrderedSet__lt__gt_, "Evaluates to oclText[true] unless oclText[self] and s contain the same elements.");
 			installComment(op_OrderedSet__eq_, "Evaluates to oclText[true] if oclText[self] and s contain the same elements.");
@@ -3804,6 +3816,7 @@
 			installComment(op_OrderedSet_selectByType, "The ordered set containing all elements of oclText[self] whose type is oclText[type].");
 			installComment(it_OrderedSet_sortedBy, "Results in the ordered set containing all elements of the source collection.\nThe element for which body has the lowest value comes first, and so on.\nThe type of the body expression must have the < operation defined.\nThe < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c).");
 			installComment(op_OrderedSet_subOrderedSet, "The sub-set of oclText[self] starting at number lower, up to and including element number upper.");
+			installComment(_Sequence_Sequence_T, "A sequence is a collection where the elements are ordered.\nAn element may be part of a sequence more than once.\nSequence is itself an instance of the metatype SequenceType.\nA Sentence is not a subtype of Bag.\nThe common supertype of Sentence and Bags is Collection.");
 			installComment(op_Sequence__lt__gt_, "Evaluates to oclText[true] unless oclText[self] and s contain the same elements.");
 			installComment(op_Sequence__eq_, "True if oclText[self] contains the same elements as s in the same order.");
 			installComment(op_Sequence_append, "The sequence of elements, consisting of all elements of oclText[self], followed by object.");
@@ -3845,6 +3858,7 @@
 			installComment(op_Stereotype_allInstances, "Return a set of all instances of the stereotype and derived types of self.");
 			installComment(_Type, "The UML Type is the supertype of anything that may be used as a type.");
 			installComment(op_Type_conformsTo, "Returns true if type2 conforms to self.");
+			installComment(_UniqueCollection_UniqueCollection_T, "The UniqueCollection type provides the shared functionality of the OrderedSet and Set\ncollections for which the elements are unique.\nThe common supertype of UniqueCollection is Collection.");
 			installComment(op_UniqueCollection__neg_, "The elements of oclText[self], which are not in s.");
 			installComment(op_UniqueCollection_intersection, "The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c).");
 			installComment(it_UniqueCollection_sortedBy, "Results in the ordered set containing all elements of the source collection.\nThe element for which body has the lowest value comes first, and so on.\nThe type of the body expression must have the < operation defined.\nThe < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c).");
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/oclstdlib/OCLstdlibTables.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/oclstdlib/OCLstdlibTables.java
index 9c9e1db..854172b 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/oclstdlib/OCLstdlibTables.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/oclstdlib/OCLstdlibTables.java
@@ -83,71 +83,133 @@
 			OCLstdlibTables.init();
 		}
 
-		public static final @NonNull ExecutorTypeParameter _Bag_T = new ExecutorTypeParameter(TypeId.T_1, "T");
-		public static final @NonNull ExecutorTypeParameter __Bag__collect_V = new ExecutorTypeParameter(TypeId.T_2, "V");
-		public static final @NonNull ExecutorTypeParameter __Bag__collectNested_V = new ExecutorTypeParameter(TypeId.T_2, "V");
-		public static final @NonNull ExecutorTypeParameter __Bag__flatten_T2 = new ExecutorTypeParameter(TypeId.T_2, "T2");
-		public static final @NonNull ExecutorTypeParameter __Bag__selectByKind_TT = new ExecutorTypeParameter(TypeId.T_2, "TT");
-		public static final @NonNull ExecutorTypeParameter __Bag__selectByType_TT = new ExecutorTypeParameter(TypeId.T_2, "TT");
-
-		public static final @NonNull ExecutorTypeParameter _Collection_T = new ExecutorTypeParameter(TypeId.T_1, "T");
-		public static final @NonNull ExecutorTypeParameter __Collection__collect_V = new ExecutorTypeParameter(TypeId.T_2, "V");
-		public static final @NonNull ExecutorTypeParameter __Collection__collectBy_V = new ExecutorTypeParameter(TypeId.T_2, "V");
-		public static final @NonNull ExecutorTypeParameter __Collection__collectNested_V = new ExecutorTypeParameter(TypeId.T_2, "V");
-		public static final @NonNull ExecutorTypeParameter __Collection__excludesAll_T2 = new ExecutorTypeParameter(TypeId.T_2, "T2");
-		public static final @NonNull ExecutorTypeParameter __Collection__flatten_T2 = new ExecutorTypeParameter(TypeId.T_2, "T2");
-		public static final @NonNull ExecutorTypeParameter __Collection__includesAll_T2 = new ExecutorTypeParameter(TypeId.T_2, "T2");
-		public static final @NonNull ExecutorTypeParameter __Collection__iterate_Tacc = new ExecutorTypeParameter(TypeId.T_2, "Tacc");
-		public static final @NonNull ExecutorTypeParameter __Collection__product_T2 = new ExecutorTypeParameter(TypeId.T_2, "T2");
-		public static final @NonNull ExecutorTypeParameter __Collection__selectByKind_TT = new ExecutorTypeParameter(TypeId.T_2, "TT");
-		public static final @NonNull ExecutorTypeParameter __Collection__selectByType_TT = new ExecutorTypeParameter(TypeId.T_2, "TT");
-
-		public static final @NonNull ExecutorTypeParameter _Map_K = new ExecutorTypeParameter(TypeId.T_1, "K");
-		public static final @NonNull ExecutorTypeParameter _Map_V = new ExecutorTypeParameter(TypeId.T_2, "V");
-		public static final @NonNull ExecutorTypeParameter __Map__collect_V2 = new ExecutorTypeParameter(TypeId.T_3, "V2");
-		public static final @NonNull ExecutorTypeParameter __Map__collectBy_V2 = new ExecutorTypeParameter(TypeId.T_3, "V2");
-		public static final @NonNull ExecutorTypeParameter __Map__collectNested_V2 = new ExecutorTypeParameter(TypeId.T_3, "V2");
-		public static final @NonNull ExecutorTypeParameter __Map__excludesAll_K2 = new ExecutorTypeParameter(TypeId.T_3, "K2");
-		public static final @NonNull ExecutorTypeParameter __Map__excludesMap_K2 = new ExecutorTypeParameter(TypeId.T_3, "K2");
-		public static final @NonNull ExecutorTypeParameter __Map__excludesMap_V2 = new ExecutorTypeParameter(IdManager.getTemplateParameterId(3), "V2");
-		public static final @NonNull ExecutorTypeParameter __Map__excludingMap_K2 = new ExecutorTypeParameter(TypeId.T_3, "K2");
-		public static final @NonNull ExecutorTypeParameter __Map__excludingMap_V2 = new ExecutorTypeParameter(IdManager.getTemplateParameterId(3), "V2");
-		public static final @NonNull ExecutorTypeParameter __Map__includesAll_K2 = new ExecutorTypeParameter(TypeId.T_3, "K2");
-		public static final @NonNull ExecutorTypeParameter __Map__includesMap_K2 = new ExecutorTypeParameter(TypeId.T_3, "K2");
-		public static final @NonNull ExecutorTypeParameter __Map__includesMap_V2 = new ExecutorTypeParameter(IdManager.getTemplateParameterId(3), "V2");
-		public static final @NonNull ExecutorTypeParameter __Map__includingMap_K2 = new ExecutorTypeParameter(TypeId.T_3, "K2");
-		public static final @NonNull ExecutorTypeParameter __Map__includingMap_V2 = new ExecutorTypeParameter(IdManager.getTemplateParameterId(3), "V2");
-		public static final @NonNull ExecutorTypeParameter __Map__iterate_Tacc = new ExecutorTypeParameter(TypeId.T_3, "Tacc");
-		public static final @NonNull ExecutorTypeParameter __OclAny__oclAsType_TT = new ExecutorTypeParameter(TypeId.T_1, "TT");
-		public static final @NonNull ExecutorTypeParameter __OclElement__oclAsModelType_TT = new ExecutorTypeParameter(TypeId.T_1, "TT");
-		public static final @NonNull ExecutorTypeParameter __OclInvalid__oclAsType_TT = new ExecutorTypeParameter(TypeId.T_1, "TT");
-		public static final @NonNull ExecutorTypeParameter __OclVoid__oclAsType_TT = new ExecutorTypeParameter(TypeId.T_1, "TT");
-
-		public static final @NonNull ExecutorTypeParameter _OrderedCollection_T = new ExecutorTypeParameter(TypeId.T_1, "T");
-
-		public static final @NonNull ExecutorTypeParameter _OrderedSet_T = new ExecutorTypeParameter(TypeId.T_1, "T");
-		public static final @NonNull ExecutorTypeParameter __OrderedSet__collect_V = new ExecutorTypeParameter(TypeId.T_2, "V");
-		public static final @NonNull ExecutorTypeParameter __OrderedSet__collectNested_V = new ExecutorTypeParameter(TypeId.T_2, "V");
-		public static final @NonNull ExecutorTypeParameter __OrderedSet__flatten_T2 = new ExecutorTypeParameter(TypeId.T_2, "T2");
-		public static final @NonNull ExecutorTypeParameter __OrderedSet__selectByKind_TT = new ExecutorTypeParameter(TypeId.T_2, "TT");
-		public static final @NonNull ExecutorTypeParameter __OrderedSet__selectByType_TT = new ExecutorTypeParameter(TypeId.T_2, "TT");
-
-		public static final @NonNull ExecutorTypeParameter _Sequence_T = new ExecutorTypeParameter(TypeId.T_1, "T");
-		public static final @NonNull ExecutorTypeParameter __Sequence__collect_V = new ExecutorTypeParameter(TypeId.T_2, "V");
-		public static final @NonNull ExecutorTypeParameter __Sequence__collectNested_V = new ExecutorTypeParameter(TypeId.T_2, "V");
-		public static final @NonNull ExecutorTypeParameter __Sequence__flatten_T2 = new ExecutorTypeParameter(TypeId.T_2, "T2");
-		public static final @NonNull ExecutorTypeParameter __Sequence__selectByKind_TT = new ExecutorTypeParameter(TypeId.T_2, "TT");
-		public static final @NonNull ExecutorTypeParameter __Sequence__selectByType_TT = new ExecutorTypeParameter(TypeId.T_2, "TT");
-
-		public static final @NonNull ExecutorTypeParameter _Set_T = new ExecutorTypeParameter(TypeId.T_1, "T");
-		public static final @NonNull ExecutorTypeParameter __Set__collect_V = new ExecutorTypeParameter(TypeId.T_2, "V");
-		public static final @NonNull ExecutorTypeParameter __Set__collectNested_V = new ExecutorTypeParameter(TypeId.T_2, "V");
-		public static final @NonNull ExecutorTypeParameter __Set__flatten_T2 = new ExecutorTypeParameter(TypeId.T_2, "T2");
-		public static final @NonNull ExecutorTypeParameter __Set__selectByKind_TT = new ExecutorTypeParameter(TypeId.T_2, "TT");
-		public static final @NonNull ExecutorTypeParameter __Set__selectByType_TT = new ExecutorTypeParameter(TypeId.T_2, "TT");
-
-		public static final @NonNull ExecutorTypeParameter _UniqueCollection_T = new ExecutorTypeParameter(TypeId.T_1, "T");
-		public static final @NonNull ExecutorTypeParameter __UnlimitedNatural__oclAsType_TT = new ExecutorTypeParameter(TypeId.T_1, "TT");
+		public static final @NonNull ExecutorTypeParameter _0_K = new ExecutorTypeParameter(0, "K");
+		public static final @NonNull ExecutorTypeParameter _0_T = new ExecutorTypeParameter(0, "T");
+		public static final @NonNull ExecutorTypeParameter _0_TT = new ExecutorTypeParameter(0, "TT");
+		public static final @NonNull ExecutorTypeParameter _1_T2 = new ExecutorTypeParameter(1, "T2");
+		public static final @NonNull ExecutorTypeParameter _1_TT = new ExecutorTypeParameter(1, "TT");
+		public static final @NonNull ExecutorTypeParameter _1_Tacc = new ExecutorTypeParameter(1, "Tacc");
+		public static final @NonNull ExecutorTypeParameter _1_V = new ExecutorTypeParameter(1, "V");
+		public static final @NonNull ExecutorTypeParameter _2_K2 = new ExecutorTypeParameter(2, "K2");
+		public static final @NonNull ExecutorTypeParameter _2_Tacc = new ExecutorTypeParameter(2, "Tacc");
+		public static final @NonNull ExecutorTypeParameter _2_V2 = new ExecutorTypeParameter(2, "V2");
+		public static final @NonNull ExecutorTypeParameter _3_V2 = new ExecutorTypeParameter(3, "V2");
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter _Bag_T = _0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Bag__collect_V = _1_V;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Bag__collectNested_V = _1_V;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Bag__flatten_T2 = _1_T2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Bag__selectByKind_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Bag__selectByType_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter _Collection_T = _0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Collection__collect_V = _1_V;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Collection__collectBy_V = _1_V;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Collection__collectNested_V = _1_V;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Collection__excludesAll_T2 = _1_T2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Collection__flatten_T2 = _1_T2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Collection__includesAll_T2 = _1_T2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Collection__iterate_Tacc = _1_Tacc;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Collection__product_T2 = _1_T2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Collection__selectByKind_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Collection__selectByType_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter _Map_K = _0_K;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter _Map_V = _1_V;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Map__collect_V2 = _2_V2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Map__collectBy_V2 = _2_V2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Map__collectNested_V2 = _2_V2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Map__excludesAll_K2 = _2_K2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Map__excludesMap_K2 = _2_K2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Map__excludesMap_V2 = _3_V2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Map__excludingMap_K2 = _2_K2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Map__excludingMap_V2 = _3_V2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Map__includesAll_K2 = _2_K2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Map__includesMap_K2 = _2_K2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Map__includesMap_V2 = _3_V2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Map__includingMap_K2 = _2_K2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Map__includingMap_V2 = _3_V2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Map__iterate_Tacc = _2_Tacc;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __OclAny__oclAsType_TT = _0_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __OclElement__oclAsModelType_TT = _0_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __OclInvalid__oclAsType_TT = _0_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __OclVoid__oclAsType_TT = _0_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter _OrderedCollection_T = _0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter _OrderedSet_T = _0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __OrderedSet__collect_V = _1_V;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __OrderedSet__collectNested_V = _1_V;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __OrderedSet__flatten_T2 = _1_T2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __OrderedSet__selectByKind_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __OrderedSet__selectByType_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter _Sequence_T = _0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Sequence__collect_V = _1_V;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Sequence__collectNested_V = _1_V;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Sequence__flatten_T2 = _1_T2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Sequence__selectByKind_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Sequence__selectByType_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter _Set_T = _0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Set__collect_V = _1_V;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Set__collectNested_V = _1_V;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Set__flatten_T2 = _1_T2;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Set__selectByKind_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __Set__selectByType_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter _UniqueCollection_T = _0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ExecutorTypeParameter __UnlimitedNatural__oclAsType_TT = _0_TT;
 
 		static {
 			Init.initEnd();
@@ -168,11 +230,11 @@
 			TypeParameters.init();
 		}
 
-		public static final @NonNull EcoreExecutorBagType _Bag = new EcoreExecutorBagType(TypeId.BAG, PACKAGE, 0, TypeParameters._Bag_T);
+		public static final @NonNull EcoreExecutorBagType _Bag = new EcoreExecutorBagType(TypeId.BAG, PACKAGE, 0, TypeParameters._0_T);
 		public static final @NonNull EcoreExecutorBooleanType _Boolean = new EcoreExecutorBooleanType(TypeId.BOOLEAN, PACKAGE, 0);
-		public static final @NonNull EcoreExecutorCollectionType _Collection = new EcoreExecutorCollectionType(TypeId.COLLECTION, PACKAGE, 0 | ExecutorType.ABSTRACT, TypeParameters._Collection_T);
+		public static final @NonNull EcoreExecutorCollectionType _Collection = new EcoreExecutorCollectionType(TypeId.COLLECTION, PACKAGE, 0 | ExecutorType.ABSTRACT, TypeParameters._0_T);
 		public static final @NonNull EcoreExecutorPrimitiveType _Integer = new EcoreExecutorPrimitiveType(TypeId.INTEGER, PACKAGE, 0);
-		public static final @NonNull EcoreExecutorType _Map = new EcoreExecutorType(OCLstdlibPackage.Literals.MAP, PACKAGE, 0, TypeParameters._Map_K, TypeParameters._Map_V);
+		public static final @NonNull EcoreExecutorType _Map = new EcoreExecutorType(OCLstdlibPackage.Literals.MAP, PACKAGE, 0, TypeParameters._0_K, TypeParameters._1_V);
 		public static final @NonNull EcoreExecutorAnyType _OclAny = new EcoreExecutorAnyType(TypeId.OCL_ANY, PACKAGE, 0 | ExecutorType.ABSTRACT);
 		public static final @NonNull EcoreExecutorType _OclComparable = new EcoreExecutorType(OCLstdlibPackage.Literals.OCL_COMPARABLE, PACKAGE, 0 | ExecutorType.ABSTRACT);
 		public static final @NonNull EcoreExecutorType _OclElement = new EcoreExecutorType(OCLstdlibPackage.Literals.OCL_ELEMENT, PACKAGE, 0 | ExecutorType.ABSTRACT);
@@ -187,13 +249,13 @@
 		public static final @NonNull EcoreExecutorType _OclTuple = new EcoreExecutorType(OCLstdlibPackage.Literals.OCL_TUPLE, PACKAGE, 0 | ExecutorType.ABSTRACT);
 		public static final @NonNull EcoreExecutorType _OclType = new EcoreExecutorType(OCLstdlibPackage.Literals.OCL_TYPE, PACKAGE, 0 | ExecutorType.ABSTRACT);
 		public static final @NonNull EcoreExecutorVoidType _OclVoid = new EcoreExecutorVoidType(TypeId.OCL_VOID, PACKAGE, 0 | ExecutorType.ABSTRACT);
-		public static final @NonNull EcoreExecutorCollectionType _OrderedCollection = new EcoreExecutorCollectionType(TypeId.ORDERED_COLLECTION, PACKAGE, 0 | ExecutorType.ABSTRACT, TypeParameters._OrderedCollection_T);
-		public static final @NonNull EcoreExecutorOrderedSetType _OrderedSet = new EcoreExecutorOrderedSetType(TypeId.ORDERED_SET, PACKAGE, ExecutorType.ORDERED | ExecutorType.UNIQUE, TypeParameters._OrderedSet_T);
+		public static final @NonNull EcoreExecutorCollectionType _OrderedCollection = new EcoreExecutorCollectionType(TypeId.ORDERED_COLLECTION, PACKAGE, 0 | ExecutorType.ABSTRACT, TypeParameters._0_T);
+		public static final @NonNull EcoreExecutorOrderedSetType _OrderedSet = new EcoreExecutorOrderedSetType(TypeId.ORDERED_SET, PACKAGE, ExecutorType.ORDERED | ExecutorType.UNIQUE, TypeParameters._0_T);
 		public static final @NonNull EcoreExecutorPrimitiveType _Real = new EcoreExecutorPrimitiveType(TypeId.REAL, PACKAGE, 0);
-		public static final @NonNull EcoreExecutorSequenceType _Sequence = new EcoreExecutorSequenceType(TypeId.SEQUENCE, PACKAGE, ExecutorType.ORDERED, TypeParameters._Sequence_T);
-		public static final @NonNull EcoreExecutorSetType _Set = new EcoreExecutorSetType(TypeId.SET, PACKAGE, ExecutorType.UNIQUE, TypeParameters._Set_T);
+		public static final @NonNull EcoreExecutorSequenceType _Sequence = new EcoreExecutorSequenceType(TypeId.SEQUENCE, PACKAGE, ExecutorType.ORDERED, TypeParameters._0_T);
+		public static final @NonNull EcoreExecutorSetType _Set = new EcoreExecutorSetType(TypeId.SET, PACKAGE, ExecutorType.UNIQUE, TypeParameters._0_T);
 		public static final @NonNull EcoreExecutorPrimitiveType _String = new EcoreExecutorPrimitiveType(TypeId.STRING, PACKAGE, 0);
-		public static final @NonNull EcoreExecutorCollectionType _UniqueCollection = new EcoreExecutorCollectionType(TypeId.UNIQUE_COLLECTION, PACKAGE, 0 | ExecutorType.ABSTRACT, TypeParameters._UniqueCollection_T);
+		public static final @NonNull EcoreExecutorCollectionType _UniqueCollection = new EcoreExecutorCollectionType(TypeId.UNIQUE_COLLECTION, PACKAGE, 0 | ExecutorType.ABSTRACT, TypeParameters._0_T);
 		public static final @NonNull EcoreExecutorPrimitiveType _UnlimitedNatural = new EcoreExecutorPrimitiveType(TypeId.UNLIMITED_NATURAL, PACKAGE, 0);
 
 		private static final @NonNull EcoreExecutorType @NonNull [] types = {
@@ -376,96 +438,133 @@
 			Fragments.init();
 		}
 
-		public static final @NonNull ParameterTypes _Bag_T = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters._Bag_T);
-		public static final @NonNull ParameterTypes _Bag_selectByKind_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__Bag__selectByKind_TT);
-		public static final @NonNull ParameterTypes _Bag_selectByType_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__Bag__selectByType_TT);
+		public static final @NonNull ParameterTypes _0_K = TypeUtil.createParameterTypes(TypeParameters._0_K);
+		public static final @NonNull ParameterTypes _0_K___1_V = TypeUtil.createParameterTypes(TypeParameters._0_K, TypeParameters._1_V);
+		public static final @NonNull ParameterTypes _0_T = TypeUtil.createParameterTypes(TypeParameters._0_T);
+		public static final @NonNull ParameterTypes _0_TT = TypeUtil.createParameterTypes(TypeParameters._0_TT);
+		public static final @NonNull ParameterTypes _1_TT = TypeUtil.createParameterTypes(TypeParameters._1_TT);
+		public static final @NonNull ParameterTypes _1_V = TypeUtil.createParameterTypes(TypeParameters._1_V);
 		public static final @NonNull ParameterTypes _Boolean = TypeUtil.createParameterTypes(OCLstdlibTables.Types._Boolean);
-		public static final @NonNull ParameterTypes _Collection = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, OCLstdlibTables.TypeParameters._Collection_T));
-		public static final @NonNull ParameterTypes _Collection_T = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters._Collection_T);
-		public static final @NonNull ParameterTypes _Collection__Bag_T__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, OCLstdlibTables.TypeParameters._Bag_T));
-		public static final @NonNull ParameterTypes _Collection__Collection_excludesAll_T2__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, OCLstdlibTables.TypeParameters.__Collection__excludesAll_T2));
-		public static final @NonNull ParameterTypes _Collection__Collection_includesAll_T2__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, OCLstdlibTables.TypeParameters.__Collection__includesAll_T2));
-		public static final @NonNull ParameterTypes _Collection__Collection_product_T2__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, OCLstdlibTables.TypeParameters.__Collection__product_T2));
-		public static final @NonNull ParameterTypes _Collection__Map_K__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, OCLstdlibTables.TypeParameters._Map_K));
-		public static final @NonNull ParameterTypes _Collection__Map_excludesAll_K2__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, OCLstdlibTables.TypeParameters.__Map__excludesAll_K2));
-		public static final @NonNull ParameterTypes _Collection__Map_includesAll_K2__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, OCLstdlibTables.TypeParameters.__Map__includesAll_K2));
-		public static final @NonNull ParameterTypes _Collection__OrderedSet_T__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, OCLstdlibTables.TypeParameters._OrderedSet_T));
-		public static final @NonNull ParameterTypes _Collection__Sequence_T__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, OCLstdlibTables.TypeParameters._Sequence_T));
-		public static final @NonNull ParameterTypes _Collection__Set_T__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, OCLstdlibTables.TypeParameters._Set_T));
-		public static final @NonNull ParameterTypes _Collection__UniqueCollection_T__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, OCLstdlibTables.TypeParameters._UniqueCollection_T));
-		public static final @NonNull ParameterTypes _Collection_selectByKind_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__Collection__selectByKind_TT);
-		public static final @NonNull ParameterTypes _Collection_selectByType_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__Collection__selectByType_TT);
+		public static final @NonNull ParameterTypes _Collection = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, TypeParameters._0_T));
+		public static final @NonNull ParameterTypes _Collection__0_K__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, TypeParameters._0_K));
+		public static final @NonNull ParameterTypes _Collection__0_T__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, TypeParameters._0_T));
+		public static final @NonNull ParameterTypes _Collection__1_T2__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, TypeParameters._1_T2));
+		public static final @NonNull ParameterTypes _Collection__2_K2__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.COLLECTION, TypeParameters._2_K2));
 		public static final @NonNull ParameterTypes _Integer = TypeUtil.createParameterTypes(OCLstdlibTables.Types._Integer);
+		public static final @NonNull ParameterTypes _Integer___0_T = TypeUtil.createParameterTypes(OCLstdlibTables.Types._Integer, TypeParameters._0_T);
 		public static final @NonNull ParameterTypes _Integer___Integer = TypeUtil.createParameterTypes(OCLstdlibTables.Types._Integer, OCLstdlibTables.Types._Integer);
-		public static final @NonNull ParameterTypes _Integer___OrderedSet_T = TypeUtil.createParameterTypes(OCLstdlibTables.Types._Integer, OCLstdlibTables.TypeParameters._OrderedSet_T);
-		public static final @NonNull ParameterTypes _Integer___Sequence_T = TypeUtil.createParameterTypes(OCLstdlibTables.Types._Integer, OCLstdlibTables.TypeParameters._Sequence_T);
-		public static final @NonNull ParameterTypes _Lambda_Bag_T_Bag_collectNested_V = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Bag_T));
-		public static final @NonNull ParameterTypes _Lambda_Bag_T_Bag_collect_V = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Bag_T));
-		public static final @NonNull ParameterTypes _Lambda_Bag_T_Boolean = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Bag_T));
-		public static final @NonNull ParameterTypes _Lambda_Bag_T_OclAny = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Bag_T));
-		public static final @NonNull ParameterTypes _Lambda_Bag_T_Set__Bag_T__ = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Bag_T));
-		public static final @NonNull ParameterTypes _Lambda_Collection_T_Boolean = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Collection_T));
-		public static final @NonNull ParameterTypes _Lambda_Collection_T_Collection_collectBy_V = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Collection_T));
-		public static final @NonNull ParameterTypes _Lambda_Collection_T_Collection_collectNested_V = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Collection_T));
-		public static final @NonNull ParameterTypes _Lambda_Collection_T_Collection_collect_V = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Collection_T));
-		public static final @NonNull ParameterTypes _Lambda_Collection_T_Collection_iterate_Tacc = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Collection_T));
-		public static final @NonNull ParameterTypes _Lambda_Collection_T_OclAny = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Collection_T));
-		public static final @NonNull ParameterTypes _Lambda_Map_K_Boolean = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Map_K));
-		public static final @NonNull ParameterTypes _Lambda_Map_K_Map_collectBy_V2 = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Map_K));
-		public static final @NonNull ParameterTypes _Lambda_Map_K_Map_collectNested_V2 = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Map_K));
-		public static final @NonNull ParameterTypes _Lambda_Map_K_Map_collect_V2 = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Map_K));
-		public static final @NonNull ParameterTypes _Lambda_Map_K_Map_iterate_Tacc = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Map_K));
-		public static final @NonNull ParameterTypes _Lambda_Map_K_OclAny = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Map_K));
-		public static final @NonNull ParameterTypes _Lambda_OrderedSet_T_Boolean = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._OrderedSet_T));
-		public static final @NonNull ParameterTypes _Lambda_OrderedSet_T_OclAny = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._OrderedSet_T));
-		public static final @NonNull ParameterTypes _Lambda_OrderedSet_T_OrderedSet = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._OrderedSet_T));
-		public static final @NonNull ParameterTypes _Lambda_OrderedSet_T_OrderedSet_collectNested_V = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._OrderedSet_T));
-		public static final @NonNull ParameterTypes _Lambda_OrderedSet_T_OrderedSet_collect_V = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._OrderedSet_T));
-		public static final @NonNull ParameterTypes _Lambda_Sequence_T_Boolean = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Sequence_T));
-		public static final @NonNull ParameterTypes _Lambda_Sequence_T_OclAny = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Sequence_T));
-		public static final @NonNull ParameterTypes _Lambda_Sequence_T_OrderedSet__Sequence_T__ = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Sequence_T));
-		public static final @NonNull ParameterTypes _Lambda_Sequence_T_Sequence_collectNested_V = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Sequence_T));
-		public static final @NonNull ParameterTypes _Lambda_Sequence_T_Sequence_collect_V = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Sequence_T));
-		public static final @NonNull ParameterTypes _Lambda_Set_T_Boolean = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Set_T));
-		public static final @NonNull ParameterTypes _Lambda_Set_T_OclAny = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Set_T));
-		public static final @NonNull ParameterTypes _Lambda_Set_T_Set = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Set_T));
-		public static final @NonNull ParameterTypes _Lambda_Set_T_Set_collectNested_V = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Set_T));
-		public static final @NonNull ParameterTypes _Lambda_Set_T_Set_collect_V = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._Set_T));
-		public static final @NonNull ParameterTypes _Lambda_UniqueCollection_T_OclAny = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", OCLstdlibTables.TypeParameters._UniqueCollection_T));
-		public static final @NonNull ParameterTypes _Map_K = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters._Map_K);
-		public static final @NonNull ParameterTypes _Map_K___Map_V = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters._Map_K, OCLstdlibTables.TypeParameters._Map_V);
-		public static final @NonNull ParameterTypes _Map_V = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters._Map_V);
-		public static final @NonNull ParameterTypes _Map__Map_excludesMap_K2_Map_excludesMap_V2__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.MAP, OCLstdlibTables.TypeParameters.__Map__excludesMap_K2, OCLstdlibTables.TypeParameters.__Map__excludesMap_V2));
-		public static final @NonNull ParameterTypes _Map__Map_excludingMap_K2_Map_excludingMap_V2__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.MAP, OCLstdlibTables.TypeParameters.__Map__excludingMap_K2, OCLstdlibTables.TypeParameters.__Map__excludingMap_V2));
-		public static final @NonNull ParameterTypes _Map__Map_includesMap_K2_Map_includesMap_V2__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.MAP, OCLstdlibTables.TypeParameters.__Map__includesMap_K2, OCLstdlibTables.TypeParameters.__Map__includesMap_V2));
-		public static final @NonNull ParameterTypes _Map__Map_includingMap_K2_Map_includingMap_V2__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.MAP, OCLstdlibTables.TypeParameters.__Map__includingMap_K2, OCLstdlibTables.TypeParameters.__Map__includingMap_V2));
-		public static final @NonNull ParameterTypes _OclAny_oclAsType_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__OclAny__oclAsType_TT);
-		public static final @NonNull ParameterTypes _OclElement_oclAsModelType_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__OclElement__oclAsModelType_TT);
-		public static final @NonNull ParameterTypes _OclInvalid_oclAsType_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__OclInvalid__oclAsType_TT);
+		public static final @NonNull ParameterTypes _Lambda_0_K_2_Tacc = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", TypeParameters._0_K));
+		public static final @NonNull ParameterTypes _Lambda_0_K_2_V2 = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", TypeParameters._0_K));
+		public static final @NonNull ParameterTypes _Lambda_0_K_Boolean = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", TypeParameters._0_K));
+		public static final @NonNull ParameterTypes _Lambda_0_K_OclAny = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", TypeParameters._0_K));
+		public static final @NonNull ParameterTypes _Lambda_0_T_1_Tacc = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", TypeParameters._0_T));
+		public static final @NonNull ParameterTypes _Lambda_0_T_1_V = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", TypeParameters._0_T));
+		public static final @NonNull ParameterTypes _Lambda_0_T_Boolean = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", TypeParameters._0_T));
+		public static final @NonNull ParameterTypes _Lambda_0_T_OclAny = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", TypeParameters._0_T));
+		public static final @NonNull ParameterTypes _Lambda_0_T_OrderedSet = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", TypeParameters._0_T));
+		public static final @NonNull ParameterTypes _Lambda_0_T_OrderedSet__0_T__ = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", TypeParameters._0_T));
+		public static final @NonNull ParameterTypes _Lambda_0_T_Set = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", TypeParameters._0_T));
+		public static final @NonNull ParameterTypes _Lambda_0_T_Set__0_T__ = TypeUtil.createParameterTypes(new ExecutorLambdaType("Lambda", TypeParameters._0_T));
+		public static final @NonNull ParameterTypes _Map__2_K2_3_V2__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.MAP, TypeParameters._2_K2, TypeParameters._3_V2));
 		public static final @NonNull ParameterTypes _OclSelf = TypeUtil.createParameterTypes(OCLstdlibTables.Types._OclSelf);
 		public static final @NonNull ParameterTypes _OclState = TypeUtil.createParameterTypes(OCLstdlibTables.Types._OclState);
 		public static final @NonNull ParameterTypes _OclStereotype = TypeUtil.createParameterTypes(OCLstdlibTables.Types._OclStereotype);
 		public static final @NonNull ParameterTypes _OclType = TypeUtil.createParameterTypes(OCLstdlibTables.Types._OclType);
-		public static final @NonNull ParameterTypes _OclVoid_oclAsType_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__OclVoid__oclAsType_TT);
-		public static final @NonNull ParameterTypes _OrderedCollection_T = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters._OrderedCollection_T);
-		public static final @NonNull ParameterTypes _OrderedCollection__OrderedSet_T__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.ORDERED_COLLECTION, OCLstdlibTables.TypeParameters._OrderedSet_T));
-		public static final @NonNull ParameterTypes _OrderedCollection__Sequence_T__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.ORDERED_COLLECTION, OCLstdlibTables.TypeParameters._Sequence_T));
-		public static final @NonNull ParameterTypes _OrderedSet_T = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters._OrderedSet_T);
-		public static final @NonNull ParameterTypes _OrderedSet_selectByKind_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__OrderedSet__selectByKind_TT);
-		public static final @NonNull ParameterTypes _OrderedSet_selectByType_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__OrderedSet__selectByType_TT);
-		public static final @NonNull ParameterTypes _Sequence_T = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters._Sequence_T);
-		public static final @NonNull ParameterTypes _Sequence_selectByKind_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__Sequence__selectByKind_TT);
-		public static final @NonNull ParameterTypes _Sequence_selectByType_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__Sequence__selectByType_TT);
-		public static final @NonNull ParameterTypes _Set_T = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters._Set_T);
-		public static final @NonNull ParameterTypes _Set_selectByKind_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__Set__selectByKind_TT);
-		public static final @NonNull ParameterTypes _Set_selectByType_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__Set__selectByType_TT);
+		public static final @NonNull ParameterTypes _OrderedCollection__0_T__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.ORDERED_COLLECTION, TypeParameters._0_T));
 		public static final @NonNull ParameterTypes _String = TypeUtil.createParameterTypes(OCLstdlibTables.Types._String);
 		public static final @NonNull ParameterTypes _String___Boolean = TypeUtil.createParameterTypes(OCLstdlibTables.Types._String, OCLstdlibTables.Types._Boolean);
 		public static final @NonNull ParameterTypes _String___String = TypeUtil.createParameterTypes(OCLstdlibTables.Types._String, OCLstdlibTables.Types._String);
-		public static final @NonNull ParameterTypes _UniqueCollection = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.UNIQUE_COLLECTION, OCLstdlibTables.TypeParameters._UniqueCollection_T));
-		public static final @NonNull ParameterTypes _UniqueCollection__Collection_T__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.UNIQUE_COLLECTION, OCLstdlibTables.TypeParameters._Collection_T));
+		public static final @NonNull ParameterTypes _UniqueCollection = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.UNIQUE_COLLECTION, TypeParameters._0_T));
+		public static final @NonNull ParameterTypes _UniqueCollection__0_T__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.UNIQUE_COLLECTION, TypeParameters._0_T));
 		public static final @NonNull ParameterTypes _UniqueCollection__OclAny__ = TypeUtil.createParameterTypes(new ExecutorSpecializedType(TypeId.UNIQUE_COLLECTION, OCLstdlibTables.Types._OclAny));
-		public static final @NonNull ParameterTypes _UnlimitedNatural_oclAsType_TT = TypeUtil.createParameterTypes(OCLstdlibTables.TypeParameters.__UnlimitedNatural__oclAsType_TT);
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Bag_T = _0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Bag_selectByKind_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Bag_selectByType_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Collection_T = _0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Collection__Bag_T__ = _Collection__0_T__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Collection__Collection_excludesAll_T2__ = _Collection__1_T2__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Collection__Collection_includesAll_T2__ = _Collection__1_T2__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Collection__Collection_product_T2__ = _Collection__1_T2__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Collection__Map_K__ = _Collection__0_K__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Collection__Map_excludesAll_K2__ = _Collection__2_K2__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Collection__Map_includesAll_K2__ = _Collection__2_K2__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Collection__OrderedSet_T__ = _Collection__0_T__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Collection__Sequence_T__ = _Collection__0_T__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Collection__Set_T__ = _Collection__0_T__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Collection__UniqueCollection_T__ = _Collection__0_T__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Collection_selectByKind_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Collection_selectByType_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Integer___OrderedSet_T = _Integer___0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Integer___Sequence_T = _Integer___0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Map_K = _0_K;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Map_K___Map_V = _0_K___1_V;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Map_V = _1_V;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Map__Map_excludesMap_K2_Map_excludesMap_V2__ = _Map__2_K2_3_V2__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Map__Map_excludingMap_K2_Map_excludingMap_V2__ = _Map__2_K2_3_V2__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Map__Map_includesMap_K2_Map_includesMap_V2__ = _Map__2_K2_3_V2__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Map__Map_includingMap_K2_Map_includingMap_V2__ = _Map__2_K2_3_V2__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _OclAny_oclAsType_TT = _0_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _OclElement_oclAsModelType_TT = _0_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _OclInvalid_oclAsType_TT = _0_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _OclVoid_oclAsType_TT = _0_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _OrderedCollection_T = _0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _OrderedCollection__OrderedSet_T__ = _OrderedCollection__0_T__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _OrderedCollection__Sequence_T__ = _OrderedCollection__0_T__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _OrderedSet_T = _0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _OrderedSet_selectByKind_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _OrderedSet_selectByType_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Sequence_T = _0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Sequence_selectByKind_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Sequence_selectByType_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Set_T = _0_T;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Set_selectByKind_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _Set_selectByType_TT = _1_TT;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _UniqueCollection__Collection_T__ = _UniqueCollection__0_T__;
+		@Deprecated /* @deprecated use normalized name */
+		public static final @NonNull ParameterTypes _UnlimitedNatural_oclAsType_TT = _0_TT;
 
 		static {
 			Init.initEnd();
@@ -494,31 +593,31 @@
 			0, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Bag___eq_ = new ExecutorOperation("=", Parameters._OclSelf, Types._Bag,
 			1, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Bag__closure = new ExecutorOperation("closure", Parameters._Lambda_Bag_T_Set__Bag_T__, Types._Bag,
+		public static final @NonNull ExecutorOperation _Bag__closure = new ExecutorOperation("closure", Parameters._Lambda_0_T_Set__0_T__, Types._Bag,
 			2, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ClosureIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Bag__collect = new ExecutorOperation("collect", Parameters._Lambda_Bag_T_Bag_collect_V, Types._Bag,
-			3, TypeUtil.createTemplateParameters(TypeParameters.__Bag__collect_V), org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Bag__collectNested = new ExecutorOperation("collectNested", Parameters._Lambda_Bag_T_Bag_collectNested_V, Types._Bag,
-			4, TypeUtil.createTemplateParameters(TypeParameters.__Bag__collectNested_V), org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Bag__excluding = new ExecutorOperation("excluding", Parameters._Bag_T, Types._Bag,
+		public static final @NonNull ExecutorOperation _Bag__collect = new ExecutorOperation("collect", Parameters._Lambda_0_T_1_V, Types._Bag,
+			3, TypeUtil.createTemplateParameters(TypeParameters._1_V), org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _Bag__collectNested = new ExecutorOperation("collectNested", Parameters._Lambda_0_T_1_V, Types._Bag,
+			4, TypeUtil.createTemplateParameters(TypeParameters._1_V), org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _Bag__excluding = new ExecutorOperation("excluding", Parameters._0_T, Types._Bag,
 			5, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Bag__excludingAll = new ExecutorOperation("excludingAll", Parameters._Collection__Bag_T__, Types._Bag,
+		public static final @NonNull ExecutorOperation _Bag__excludingAll = new ExecutorOperation("excludingAll", Parameters._Collection__0_T__, Types._Bag,
 			6, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Bag__flatten = new ExecutorOperation("flatten", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Bag,
-			7, TypeUtil.createTemplateParameters(TypeParameters.__Bag__flatten_T2), org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Bag__including = new ExecutorOperation("including", Parameters._Bag_T, Types._Bag,
+			7, TypeUtil.createTemplateParameters(TypeParameters._1_T2), org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Bag__including = new ExecutorOperation("including", Parameters._0_T, Types._Bag,
 			8, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Bag__includingAll = new ExecutorOperation("includingAll", Parameters._Collection__Bag_T__, Types._Bag,
+		public static final @NonNull ExecutorOperation _Bag__includingAll = new ExecutorOperation("includingAll", Parameters._Collection__0_T__, Types._Bag,
 			9, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Bag__reject = new ExecutorOperation("reject", Parameters._Lambda_Bag_T_Boolean, Types._Bag,
+		public static final @NonNull ExecutorOperation _Bag__reject = new ExecutorOperation("reject", Parameters._Lambda_0_T_Boolean, Types._Bag,
 			10, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.RejectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Bag__select = new ExecutorOperation("select", Parameters._Lambda_Bag_T_Boolean, Types._Bag,
+		public static final @NonNull ExecutorOperation _Bag__select = new ExecutorOperation("select", Parameters._Lambda_0_T_Boolean, Types._Bag,
 			11, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.SelectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Bag__selectByKind = new ExecutorOperation("selectByKind", Parameters._Bag_selectByKind_TT, Types._Bag,
-			12, TypeUtil.createTemplateParameters(TypeParameters.__Bag__selectByKind_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Bag__selectByType = new ExecutorOperation("selectByType", Parameters._Bag_selectByType_TT, Types._Bag,
-			13, TypeUtil.createTemplateParameters(TypeParameters.__Bag__selectByType_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Bag__sortedBy = new ExecutorOperation("sortedBy", Parameters._Lambda_Bag_T_OclAny, Types._Bag,
+		public static final @NonNull ExecutorOperation _Bag__selectByKind = new ExecutorOperation("selectByKind", Parameters._1_TT, Types._Bag,
+			12, TypeUtil.createTemplateParameters(TypeParameters._1_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Bag__selectByType = new ExecutorOperation("selectByType", Parameters._1_TT, Types._Bag,
+			13, TypeUtil.createTemplateParameters(TypeParameters._1_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Bag__sortedBy = new ExecutorOperation("sortedBy", Parameters._Lambda_0_T_OclAny, Types._Bag,
 			14, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
 
 		public static final @NonNull ExecutorOperation _Boolean___lt__gt_ = new ExecutorOperation("<>", Parameters._OclSelf, Types._Boolean,
@@ -554,7 +653,7 @@
 			0, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Collection___eq_ = new ExecutorOperation("=", Parameters._OclSelf, Types._Collection,
 			1, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__any = new ExecutorOperation("any", Parameters._Lambda_Collection_T_Boolean, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__any = new ExecutorOperation("any", Parameters._Lambda_0_T_Boolean, Types._Collection,
 			2, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.AnyIteration.INSTANCE);
 		public static final @NonNull ExecutorOperation _Collection__asBag = new ExecutorOperation("asBag", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Collection,
 			3, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionAsBagOperation.INSTANCE);
@@ -564,75 +663,75 @@
 			5, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionAsSequenceOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Collection__asSet = new ExecutorOperation("asSet", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Collection,
 			6, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionAsSetOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__collect = new ExecutorOperation("collect", Parameters._Lambda_Collection_T_Collection_collect_V, Types._Collection,
-			7, TypeUtil.createTemplateParameters(TypeParameters.__Collection__collect_V), org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__collectBy = new ExecutorOperation("collectBy", Parameters._Lambda_Collection_T_Collection_collectBy_V, Types._Collection,
-			8, TypeUtil.createTemplateParameters(TypeParameters.__Collection__collectBy_V), org.eclipse.ocl.pivot.library.iterator.CollectByIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__collectNested = new ExecutorOperation("collectNested", Parameters._Lambda_Collection_T_Collection_collectNested_V, Types._Collection,
-			9, TypeUtil.createTemplateParameters(TypeParameters.__Collection__collectNested_V), org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__count = new ExecutorOperation("count", Parameters._Collection_T, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__collect = new ExecutorOperation("collect", Parameters._Lambda_0_T_1_V, Types._Collection,
+			7, TypeUtil.createTemplateParameters(TypeParameters._1_V), org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _Collection__collectBy = new ExecutorOperation("collectBy", Parameters._Lambda_0_T_1_V, Types._Collection,
+			8, TypeUtil.createTemplateParameters(TypeParameters._1_V), org.eclipse.ocl.pivot.library.iterator.CollectByIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _Collection__collectNested = new ExecutorOperation("collectNested", Parameters._Lambda_0_T_1_V, Types._Collection,
+			9, TypeUtil.createTemplateParameters(TypeParameters._1_V), org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _Collection__count = new ExecutorOperation("count", Parameters._0_T, Types._Collection,
 			10, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionCountOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__excludes = new ExecutorOperation("excludes", Parameters._Collection_T, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__excludes = new ExecutorOperation("excludes", Parameters._0_T, Types._Collection,
 			11, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionExcludesOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__excludesAll = new ExecutorOperation("excludesAll", Parameters._Collection__Collection_excludesAll_T2__, Types._Collection,
-			12, TypeUtil.createTemplateParameters(TypeParameters.__Collection__excludesAll_T2), org.eclipse.ocl.pivot.library.collection.CollectionExcludesAllOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__excluding = new ExecutorOperation("excluding", Parameters._Collection_T, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__excludesAll = new ExecutorOperation("excludesAll", Parameters._Collection__1_T2__, Types._Collection,
+			12, TypeUtil.createTemplateParameters(TypeParameters._1_T2), org.eclipse.ocl.pivot.library.collection.CollectionExcludesAllOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Collection__excluding = new ExecutorOperation("excluding", Parameters._0_T, Types._Collection,
 			13, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Collection__excludingAll = new ExecutorOperation("excludingAll", Parameters._Collection, Types._Collection,
 			14, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__0_exists = new ExecutorOperation("exists", Parameters._Lambda_Collection_T_Boolean, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__2_exists = new ExecutorOperation("exists", Parameters._Lambda_0_T_Boolean, Types._Collection,
 			15, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ExistsIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__1_exists = new ExecutorOperation("exists", Parameters._Lambda_Collection_T_Boolean, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__1_exists = new ExecutorOperation("exists", Parameters._Lambda_0_T_Boolean, Types._Collection,
 			16, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ExistsIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__2_exists = new ExecutorOperation("exists", Parameters._Lambda_Collection_T_Boolean, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__0_exists = new ExecutorOperation("exists", Parameters._Lambda_0_T_Boolean, Types._Collection,
 			17, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ExistsIteration.INSTANCE);
 		public static final @NonNull ExecutorOperation _Collection__flatten = new ExecutorOperation("flatten", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Collection,
-			18, TypeUtil.createTemplateParameters(TypeParameters.__Collection__flatten_T2), org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__0_forAll = new ExecutorOperation("forAll", Parameters._Lambda_Collection_T_Boolean, Types._Collection,
+			18, TypeUtil.createTemplateParameters(TypeParameters._1_T2), org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Collection__2_forAll = new ExecutorOperation("forAll", Parameters._Lambda_0_T_Boolean, Types._Collection,
 			19, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ForAllIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__1_forAll = new ExecutorOperation("forAll", Parameters._Lambda_Collection_T_Boolean, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__1_forAll = new ExecutorOperation("forAll", Parameters._Lambda_0_T_Boolean, Types._Collection,
 			20, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ForAllIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__2_forAll = new ExecutorOperation("forAll", Parameters._Lambda_Collection_T_Boolean, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__0_forAll = new ExecutorOperation("forAll", Parameters._Lambda_0_T_Boolean, Types._Collection,
 			21, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ForAllIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__includes = new ExecutorOperation("includes", Parameters._Collection_T, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__includes = new ExecutorOperation("includes", Parameters._0_T, Types._Collection,
 			22, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIncludesOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__includesAll = new ExecutorOperation("includesAll", Parameters._Collection__Collection_includesAll_T2__, Types._Collection,
-			23, TypeUtil.createTemplateParameters(TypeParameters.__Collection__includesAll_T2), org.eclipse.ocl.pivot.library.collection.CollectionIncludesAllOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__including = new ExecutorOperation("including", Parameters._Collection_T, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__includesAll = new ExecutorOperation("includesAll", Parameters._Collection__1_T2__, Types._Collection,
+			23, TypeUtil.createTemplateParameters(TypeParameters._1_T2), org.eclipse.ocl.pivot.library.collection.CollectionIncludesAllOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Collection__including = new ExecutorOperation("including", Parameters._0_T, Types._Collection,
 			24, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Collection__includingAll = new ExecutorOperation("includingAll", Parameters._Collection, Types._Collection,
 			25, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Collection__0_intersection = new ExecutorOperation("intersection", Parameters._Collection, Types._Collection,
 			26, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__1_intersection = new ExecutorOperation("intersection", Parameters._UniqueCollection__Collection_T__, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__1_intersection = new ExecutorOperation("intersection", Parameters._UniqueCollection__0_T__, Types._Collection,
 			27, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Collection__isEmpty = new ExecutorOperation("isEmpty", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Collection,
 			28, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIsEmptyOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__isUnique = new ExecutorOperation("isUnique", Parameters._Lambda_Collection_T_OclAny, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__isUnique = new ExecutorOperation("isUnique", Parameters._Lambda_0_T_OclAny, Types._Collection,
 			29, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.IsUniqueIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__iterate = new ExecutorOperation("iterate", Parameters._Lambda_Collection_T_Collection_iterate_Tacc, Types._Collection,
-			30, TypeUtil.createTemplateParameters(TypeParameters.__Collection__iterate_Tacc), org.eclipse.ocl.pivot.library.iterator.IterateIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _Collection__iterate = new ExecutorOperation("iterate", Parameters._Lambda_0_T_1_Tacc, Types._Collection,
+			30, TypeUtil.createTemplateParameters(TypeParameters._1_Tacc), org.eclipse.ocl.pivot.library.iterator.IterateIteration.INSTANCE);
 		public static final @NonNull ExecutorOperation _Collection__max = new ExecutorOperation("max", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Collection,
 			31, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionMaxOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Collection__min = new ExecutorOperation("min", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Collection,
 			32, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionMinOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Collection__notEmpty = new ExecutorOperation("notEmpty", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Collection,
 			33, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionNotEmptyOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__one = new ExecutorOperation("one", Parameters._Lambda_Collection_T_Boolean, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__one = new ExecutorOperation("one", Parameters._Lambda_0_T_Boolean, Types._Collection,
 			34, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.OneIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__product = new ExecutorOperation("product", Parameters._Collection__Collection_product_T2__, Types._Collection,
-			35, TypeUtil.createTemplateParameters(TypeParameters.__Collection__product_T2), org.eclipse.ocl.pivot.library.collection.CollectionProductOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__reject = new ExecutorOperation("reject", Parameters._Lambda_Collection_T_Boolean, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__product = new ExecutorOperation("product", Parameters._Collection__1_T2__, Types._Collection,
+			35, TypeUtil.createTemplateParameters(TypeParameters._1_T2), org.eclipse.ocl.pivot.library.collection.CollectionProductOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Collection__reject = new ExecutorOperation("reject", Parameters._Lambda_0_T_Boolean, Types._Collection,
 			36, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.RejectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__select = new ExecutorOperation("select", Parameters._Lambda_Collection_T_Boolean, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__select = new ExecutorOperation("select", Parameters._Lambda_0_T_Boolean, Types._Collection,
 			37, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.SelectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__selectByKind = new ExecutorOperation("selectByKind", Parameters._Collection_selectByKind_TT, Types._Collection,
-			38, TypeUtil.createTemplateParameters(TypeParameters.__Collection__selectByKind_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__selectByType = new ExecutorOperation("selectByType", Parameters._Collection_selectByType_TT, Types._Collection,
-			39, TypeUtil.createTemplateParameters(TypeParameters.__Collection__selectByType_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Collection__selectByKind = new ExecutorOperation("selectByKind", Parameters._1_TT, Types._Collection,
+			38, TypeUtil.createTemplateParameters(TypeParameters._1_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Collection__selectByType = new ExecutorOperation("selectByType", Parameters._1_TT, Types._Collection,
+			39, TypeUtil.createTemplateParameters(TypeParameters._1_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Collection__size = new ExecutorOperation("size", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Collection,
 			40, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionSizeOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Collection__sortedBy = new ExecutorOperation("sortedBy", Parameters._Lambda_Collection_T_OclAny, Types._Collection,
+		public static final @NonNull ExecutorOperation _Collection__sortedBy = new ExecutorOperation("sortedBy", Parameters._Lambda_0_T_OclAny, Types._Collection,
 			41, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
 		public static final @NonNull ExecutorOperation _Collection__sum = new ExecutorOperation("sum", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Collection,
 			42, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionSumOperation.INSTANCE);
@@ -668,75 +767,75 @@
 			0, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Map___eq_ = new ExecutorOperation("=", Parameters._OclSelf, Types._Map,
 			1, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__any = new ExecutorOperation("any", Parameters._Lambda_Map_K_Boolean, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__any = new ExecutorOperation("any", Parameters._Lambda_0_K_Boolean, Types._Map,
 			2, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.AnyIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__at = new ExecutorOperation("at", Parameters._Map_K, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__at = new ExecutorOperation("at", Parameters._0_K, Types._Map,
 			3, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapAtOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__collect = new ExecutorOperation("collect", Parameters._Lambda_Map_K_Map_collect_V2, Types._Map,
-			4, TypeUtil.createTemplateParameters(TypeParameters.__Map__collect_V2), org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__collectBy = new ExecutorOperation("collectBy", Parameters._Lambda_Map_K_Map_collectBy_V2, Types._Map,
-			5, TypeUtil.createTemplateParameters(TypeParameters.__Map__collectBy_V2), org.eclipse.ocl.pivot.library.iterator.CollectByIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__collectNested = new ExecutorOperation("collectNested", Parameters._Lambda_Map_K_Map_collectNested_V2, Types._Map,
-			6, TypeUtil.createTemplateParameters(TypeParameters.__Map__collectNested_V2), org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__0_excludes = new ExecutorOperation("excludes", Parameters._Map_K, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__collect = new ExecutorOperation("collect", Parameters._Lambda_0_K_2_V2, Types._Map,
+			4, TypeUtil.createTemplateParameters(TypeParameters._2_V2), org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _Map__collectBy = new ExecutorOperation("collectBy", Parameters._Lambda_0_K_2_V2, Types._Map,
+			5, TypeUtil.createTemplateParameters(TypeParameters._2_V2), org.eclipse.ocl.pivot.library.iterator.CollectByIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _Map__collectNested = new ExecutorOperation("collectNested", Parameters._Lambda_0_K_2_V2, Types._Map,
+			6, TypeUtil.createTemplateParameters(TypeParameters._2_V2), org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _Map__0_excludes = new ExecutorOperation("excludes", Parameters._0_K, Types._Map,
 			7, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapExcludesOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__1_excludes = new ExecutorOperation("excludes", Parameters._Map_K___Map_V, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__1_excludes = new ExecutorOperation("excludes", Parameters._0_K___1_V, Types._Map,
 			8, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapExcludesPairOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__excludesAll = new ExecutorOperation("excludesAll", Parameters._Collection__Map_excludesAll_K2__, Types._Map,
-			9, TypeUtil.createTemplateParameters(TypeParameters.__Map__excludesAll_K2), org.eclipse.ocl.pivot.library.map.MapExcludesAllOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__excludesMap = new ExecutorOperation("excludesMap", Parameters._Map__Map_excludesMap_K2_Map_excludesMap_V2__, Types._Map,
-			10, TypeUtil.createTemplateParameters(TypeParameters.__Map__excludesMap_K2, TypeParameters.__Map__excludesMap_V2), org.eclipse.ocl.pivot.library.map.MapExcludesMapOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__excludesValue = new ExecutorOperation("excludesValue", Parameters._Map_V, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__excludesAll = new ExecutorOperation("excludesAll", Parameters._Collection__2_K2__, Types._Map,
+			9, TypeUtil.createTemplateParameters(TypeParameters._2_K2), org.eclipse.ocl.pivot.library.map.MapExcludesAllOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Map__excludesMap = new ExecutorOperation("excludesMap", Parameters._Map__2_K2_3_V2__, Types._Map,
+			10, TypeUtil.createTemplateParameters(TypeParameters._2_K2, TypeParameters._3_V2), org.eclipse.ocl.pivot.library.map.MapExcludesMapOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Map__excludesValue = new ExecutorOperation("excludesValue", Parameters._1_V, Types._Map,
 			11, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapExcludesValueOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__0_excluding = new ExecutorOperation("excluding", Parameters._Map_K, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__0_excluding = new ExecutorOperation("excluding", Parameters._0_K, Types._Map,
 			12, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapExcludingOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__1_excluding = new ExecutorOperation("excluding", Parameters._Map_K___Map_V, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__1_excluding = new ExecutorOperation("excluding", Parameters._0_K___1_V, Types._Map,
 			13, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapExcludingPairOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__excludingAll = new ExecutorOperation("excludingAll", Parameters._Collection__Map_K__, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__excludingAll = new ExecutorOperation("excludingAll", Parameters._Collection__0_K__, Types._Map,
 			14, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapExcludingAllOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__excludingMap = new ExecutorOperation("excludingMap", Parameters._Map__Map_excludingMap_K2_Map_excludingMap_V2__, Types._Map,
-			15, TypeUtil.createTemplateParameters(TypeParameters.__Map__excludingMap_K2, TypeParameters.__Map__excludingMap_V2), org.eclipse.ocl.pivot.library.map.MapExcludingMapOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__0_exists = new ExecutorOperation("exists", Parameters._Lambda_Map_K_Boolean, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__excludingMap = new ExecutorOperation("excludingMap", Parameters._Map__2_K2_3_V2__, Types._Map,
+			15, TypeUtil.createTemplateParameters(TypeParameters._2_K2, TypeParameters._3_V2), org.eclipse.ocl.pivot.library.map.MapExcludingMapOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Map__2_exists = new ExecutorOperation("exists", Parameters._Lambda_0_K_Boolean, Types._Map,
 			16, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ExistsIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__1_exists = new ExecutorOperation("exists", Parameters._Lambda_Map_K_Boolean, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__1_exists = new ExecutorOperation("exists", Parameters._Lambda_0_K_Boolean, Types._Map,
 			17, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ExistsIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__2_exists = new ExecutorOperation("exists", Parameters._Lambda_Map_K_Boolean, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__0_exists = new ExecutorOperation("exists", Parameters._Lambda_0_K_Boolean, Types._Map,
 			18, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ExistsIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__0_forAll = new ExecutorOperation("forAll", Parameters._Lambda_Map_K_Boolean, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__2_forAll = new ExecutorOperation("forAll", Parameters._Lambda_0_K_Boolean, Types._Map,
 			19, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ForAllIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__1_forAll = new ExecutorOperation("forAll", Parameters._Lambda_Map_K_Boolean, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__1_forAll = new ExecutorOperation("forAll", Parameters._Lambda_0_K_Boolean, Types._Map,
 			20, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ForAllIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__2_forAll = new ExecutorOperation("forAll", Parameters._Lambda_Map_K_Boolean, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__0_forAll = new ExecutorOperation("forAll", Parameters._Lambda_0_K_Boolean, Types._Map,
 			21, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ForAllIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__0_includes = new ExecutorOperation("includes", Parameters._Map_K, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__0_includes = new ExecutorOperation("includes", Parameters._0_K, Types._Map,
 			22, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapIncludesOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__1_includes = new ExecutorOperation("includes", Parameters._Map_K___Map_V, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__1_includes = new ExecutorOperation("includes", Parameters._0_K___1_V, Types._Map,
 			23, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapIncludesPairOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__includesAll = new ExecutorOperation("includesAll", Parameters._Collection__Map_includesAll_K2__, Types._Map,
-			24, TypeUtil.createTemplateParameters(TypeParameters.__Map__includesAll_K2), org.eclipse.ocl.pivot.library.map.MapIncludesAllOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__includesMap = new ExecutorOperation("includesMap", Parameters._Map__Map_includesMap_K2_Map_includesMap_V2__, Types._Map,
-			25, TypeUtil.createTemplateParameters(TypeParameters.__Map__includesMap_K2, TypeParameters.__Map__includesMap_V2), org.eclipse.ocl.pivot.library.map.MapIncludesMapOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__includesValue = new ExecutorOperation("includesValue", Parameters._Map_V, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__includesAll = new ExecutorOperation("includesAll", Parameters._Collection__2_K2__, Types._Map,
+			24, TypeUtil.createTemplateParameters(TypeParameters._2_K2), org.eclipse.ocl.pivot.library.map.MapIncludesAllOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Map__includesMap = new ExecutorOperation("includesMap", Parameters._Map__2_K2_3_V2__, Types._Map,
+			25, TypeUtil.createTemplateParameters(TypeParameters._2_K2, TypeParameters._3_V2), org.eclipse.ocl.pivot.library.map.MapIncludesMapOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Map__includesValue = new ExecutorOperation("includesValue", Parameters._1_V, Types._Map,
 			26, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapIncludesValueOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__including = new ExecutorOperation("including", Parameters._Map_K___Map_V, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__including = new ExecutorOperation("including", Parameters._0_K___1_V, Types._Map,
 			27, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapIncludingPairOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__includingMap = new ExecutorOperation("includingMap", Parameters._Map__Map_includingMap_K2_Map_includingMap_V2__, Types._Map,
-			28, TypeUtil.createTemplateParameters(TypeParameters.__Map__includingMap_K2, TypeParameters.__Map__includingMap_V2), org.eclipse.ocl.pivot.library.map.MapIncludingMapOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Map__includingMap = new ExecutorOperation("includingMap", Parameters._Map__2_K2_3_V2__, Types._Map,
+			28, TypeUtil.createTemplateParameters(TypeParameters._2_K2, TypeParameters._3_V2), org.eclipse.ocl.pivot.library.map.MapIncludingMapOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Map__isEmpty = new ExecutorOperation("isEmpty", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Map,
 			29, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapIsEmptyOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__isUnique = new ExecutorOperation("isUnique", Parameters._Lambda_Map_K_OclAny, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__isUnique = new ExecutorOperation("isUnique", Parameters._Lambda_0_K_OclAny, Types._Map,
 			30, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.IsUniqueIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__iterate = new ExecutorOperation("iterate", Parameters._Lambda_Map_K_Map_iterate_Tacc, Types._Map,
-			31, TypeUtil.createTemplateParameters(TypeParameters.__Map__iterate_Tacc), org.eclipse.ocl.pivot.library.iterator.IterateIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _Map__iterate = new ExecutorOperation("iterate", Parameters._Lambda_0_K_2_Tacc, Types._Map,
+			31, TypeUtil.createTemplateParameters(TypeParameters._2_Tacc), org.eclipse.ocl.pivot.library.iterator.IterateIteration.INSTANCE);
 		public static final @NonNull ExecutorOperation _Map__keys = new ExecutorOperation("keys", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Map,
 			32, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapKeysOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Map__notEmpty = new ExecutorOperation("notEmpty", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Map,
 			33, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapNotEmptyOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__one = new ExecutorOperation("one", Parameters._Lambda_Map_K_Boolean, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__one = new ExecutorOperation("one", Parameters._Lambda_0_K_Boolean, Types._Map,
 			34, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.OneIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__reject = new ExecutorOperation("reject", Parameters._Lambda_Map_K_Boolean, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__reject = new ExecutorOperation("reject", Parameters._Lambda_0_K_Boolean, Types._Map,
 			35, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.MapRejectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Map__select = new ExecutorOperation("select", Parameters._Lambda_Map_K_Boolean, Types._Map,
+		public static final @NonNull ExecutorOperation _Map__select = new ExecutorOperation("select", Parameters._Lambda_0_K_Boolean, Types._Map,
 			36, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.MapSelectIteration.INSTANCE);
 		public static final @NonNull ExecutorOperation _Map__size = new ExecutorOperation("size", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Map,
 			37, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.map.MapSizeOperation.INSTANCE);
@@ -749,8 +848,8 @@
 			1, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _OclAny__oclAsSet = new ExecutorOperation("oclAsSet", TypeUtil.EMPTY_PARAMETER_TYPES, Types._OclAny,
 			2, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OclAny__oclAsType = new ExecutorOperation("oclAsType", Parameters._OclAny_oclAsType_TT, Types._OclAny,
-			3, TypeUtil.createTemplateParameters(TypeParameters.__OclAny__oclAsType_TT), org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _OclAny__oclAsType = new ExecutorOperation("oclAsType", Parameters._0_TT, Types._OclAny,
+			3, TypeUtil.createTemplateParameters(TypeParameters._0_TT), org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _OclAny__oclIsInState = new ExecutorOperation("oclIsInState", Parameters._OclState, Types._OclAny,
 			4, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsInStateOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _OclAny__oclIsInvalid = new ExecutorOperation("oclIsInvalid", TypeUtil.EMPTY_PARAMETER_TYPES, Types._OclAny,
@@ -787,11 +886,11 @@
 
 		public static final @NonNull ExecutorOperation _OclElement__allInstances = new ExecutorOperation("allInstances", Parameters._Integer, Types._OclElement,
 			0, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OclElement__oclAsModelType = new ExecutorOperation("oclAsModelType", Parameters._OclElement_oclAsModelType_TT, Types._OclElement,
-			1, TypeUtil.createTemplateParameters(TypeParameters.__OclElement__oclAsModelType_TT), org.eclipse.ocl.pivot.library.oclany.OclElementOclAsModelTypeOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OclElement__1_oclBase = new ExecutorOperation("oclBase", TypeUtil.EMPTY_PARAMETER_TYPES, Types._OclElement,
+		public static final @NonNull ExecutorOperation _OclElement__oclAsModelType = new ExecutorOperation("oclAsModelType", Parameters._0_TT, Types._OclElement,
+			1, TypeUtil.createTemplateParameters(TypeParameters._0_TT), org.eclipse.ocl.pivot.library.oclany.OclElementOclAsModelTypeOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _OclElement__0_oclBase = new ExecutorOperation("oclBase", TypeUtil.EMPTY_PARAMETER_TYPES, Types._OclElement,
 			2, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclElementOclBaseOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OclElement__0_oclBase = new ExecutorOperation("oclBase", Parameters._OclType, Types._OclElement,
+		public static final @NonNull ExecutorOperation _OclElement__1_oclBase = new ExecutorOperation("oclBase", Parameters._OclType, Types._OclElement,
 			3, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclElementOclBaseOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _OclElement__oclContainer = new ExecutorOperation("oclContainer", TypeUtil.EMPTY_PARAMETER_TYPES, Types._OclElement,
 			4, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.classifier.ClassifierOclContainerOperation.INSTANCE);
@@ -827,8 +926,8 @@
 			5, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _OclInvalid__oclAsSet = new ExecutorOperation("oclAsSet", TypeUtil.EMPTY_PARAMETER_TYPES, Types._OclInvalid,
 			6, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OclInvalid__oclAsType = new ExecutorOperation("oclAsType", Parameters._OclInvalid_oclAsType_TT, Types._OclInvalid,
-			7, TypeUtil.createTemplateParameters(TypeParameters.__OclInvalid__oclAsType_TT), org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _OclInvalid__oclAsType = new ExecutorOperation("oclAsType", Parameters._0_TT, Types._OclInvalid,
+			7, TypeUtil.createTemplateParameters(TypeParameters._0_TT), org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _OclInvalid__oclBadOperation = new ExecutorOperation("oclBadOperation", TypeUtil.EMPTY_PARAMETER_TYPES, Types._OclInvalid,
 			8, TemplateParameters.EMPTY_LIST, null);
 		public static final @NonNull ExecutorOperation _OclInvalid__oclIsInvalid = new ExecutorOperation("oclIsInvalid", TypeUtil.EMPTY_PARAMETER_TYPES, Types._OclInvalid,
@@ -891,8 +990,8 @@
 			9, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.string.StringConcatOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _OclVoid__oclAsSet = new ExecutorOperation("oclAsSet", TypeUtil.EMPTY_PARAMETER_TYPES, Types._OclVoid,
 			10, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OclVoid__oclAsType = new ExecutorOperation("oclAsType", Parameters._OclVoid_oclAsType_TT, Types._OclVoid,
-			11, TypeUtil.createTemplateParameters(TypeParameters.__OclVoid__oclAsType_TT), org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _OclVoid__oclAsType = new ExecutorOperation("oclAsType", Parameters._0_TT, Types._OclVoid,
+			11, TypeUtil.createTemplateParameters(TypeParameters._0_TT), org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _OclVoid__oclIsInvalid = new ExecutorOperation("oclIsInvalid", TypeUtil.EMPTY_PARAMETER_TYPES, Types._OclVoid,
 			12, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsInvalidOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _OclVoid__oclIsKindOf = new ExecutorOperation("oclIsKindOf", Parameters._OclType, Types._OclVoid,
@@ -912,7 +1011,7 @@
 			0, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionAtOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _OrderedCollection__first = new ExecutorOperation("first", TypeUtil.EMPTY_PARAMETER_TYPES, Types._OrderedCollection,
 			1, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionFirstOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedCollection__indexOf = new ExecutorOperation("indexOf", Parameters._OrderedCollection_T, Types._OrderedCollection,
+		public static final @NonNull ExecutorOperation _OrderedCollection__indexOf = new ExecutorOperation("indexOf", Parameters._0_T, Types._OrderedCollection,
 			2, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionIndexOfOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _OrderedCollection__last = new ExecutorOperation("last", TypeUtil.EMPTY_PARAMETER_TYPES, Types._OrderedCollection,
 			3, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionLastOperation.INSTANCE);
@@ -923,43 +1022,43 @@
 			1, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _OrderedSet___eq_ = new ExecutorOperation("=", Parameters._OclSelf, Types._OrderedSet,
 			2, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__append = new ExecutorOperation("append", Parameters._OrderedSet_T, Types._OrderedSet,
+		public static final @NonNull ExecutorOperation _OrderedSet__append = new ExecutorOperation("append", Parameters._0_T, Types._OrderedSet,
 			3, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionAppendOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__appendAll = new ExecutorOperation("appendAll", Parameters._OrderedCollection__OrderedSet_T__, Types._OrderedSet,
+		public static final @NonNull ExecutorOperation _OrderedSet__appendAll = new ExecutorOperation("appendAll", Parameters._OrderedCollection__0_T__, Types._OrderedSet,
 			4, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionAppendAllOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__closure = new ExecutorOperation("closure", Parameters._Lambda_OrderedSet_T_OrderedSet, Types._OrderedSet,
+		public static final @NonNull ExecutorOperation _OrderedSet__closure = new ExecutorOperation("closure", Parameters._Lambda_0_T_OrderedSet, Types._OrderedSet,
 			5, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ClosureIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__collect = new ExecutorOperation("collect", Parameters._Lambda_OrderedSet_T_OrderedSet_collect_V, Types._OrderedSet,
-			6, TypeUtil.createTemplateParameters(TypeParameters.__OrderedSet__collect_V), org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__collectNested = new ExecutorOperation("collectNested", Parameters._Lambda_OrderedSet_T_OrderedSet_collectNested_V, Types._OrderedSet,
-			7, TypeUtil.createTemplateParameters(TypeParameters.__OrderedSet__collectNested_V), org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__excluding = new ExecutorOperation("excluding", Parameters._OrderedSet_T, Types._OrderedSet,
+		public static final @NonNull ExecutorOperation _OrderedSet__collect = new ExecutorOperation("collect", Parameters._Lambda_0_T_1_V, Types._OrderedSet,
+			6, TypeUtil.createTemplateParameters(TypeParameters._1_V), org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _OrderedSet__collectNested = new ExecutorOperation("collectNested", Parameters._Lambda_0_T_1_V, Types._OrderedSet,
+			7, TypeUtil.createTemplateParameters(TypeParameters._1_V), org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _OrderedSet__excluding = new ExecutorOperation("excluding", Parameters._0_T, Types._OrderedSet,
 			8, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__excludingAll = new ExecutorOperation("excludingAll", Parameters._Collection__OrderedSet_T__, Types._OrderedSet,
+		public static final @NonNull ExecutorOperation _OrderedSet__excludingAll = new ExecutorOperation("excludingAll", Parameters._Collection__0_T__, Types._OrderedSet,
 			9, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _OrderedSet__flatten = new ExecutorOperation("flatten", TypeUtil.EMPTY_PARAMETER_TYPES, Types._OrderedSet,
-			10, TypeUtil.createTemplateParameters(TypeParameters.__OrderedSet__flatten_T2), org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__including = new ExecutorOperation("including", Parameters._OrderedSet_T, Types._OrderedSet,
+			10, TypeUtil.createTemplateParameters(TypeParameters._1_T2), org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _OrderedSet__including = new ExecutorOperation("including", Parameters._0_T, Types._OrderedSet,
 			11, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__includingAll = new ExecutorOperation("includingAll", Parameters._Collection__OrderedSet_T__, Types._OrderedSet,
+		public static final @NonNull ExecutorOperation _OrderedSet__includingAll = new ExecutorOperation("includingAll", Parameters._Collection__0_T__, Types._OrderedSet,
 			12, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__insertAt = new ExecutorOperation("insertAt", Parameters._Integer___OrderedSet_T, Types._OrderedSet,
+		public static final @NonNull ExecutorOperation _OrderedSet__insertAt = new ExecutorOperation("insertAt", Parameters._Integer___0_T, Types._OrderedSet,
 			13, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionInsertAtOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__prepend = new ExecutorOperation("prepend", Parameters._OrderedSet_T, Types._OrderedSet,
+		public static final @NonNull ExecutorOperation _OrderedSet__prepend = new ExecutorOperation("prepend", Parameters._0_T, Types._OrderedSet,
 			14, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionPrependOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__prependAll = new ExecutorOperation("prependAll", Parameters._OrderedCollection__OrderedSet_T__, Types._OrderedSet,
+		public static final @NonNull ExecutorOperation _OrderedSet__prependAll = new ExecutorOperation("prependAll", Parameters._OrderedCollection__0_T__, Types._OrderedSet,
 			15, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionPrependAllOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__reject = new ExecutorOperation("reject", Parameters._Lambda_OrderedSet_T_Boolean, Types._OrderedSet,
+		public static final @NonNull ExecutorOperation _OrderedSet__reject = new ExecutorOperation("reject", Parameters._Lambda_0_T_Boolean, Types._OrderedSet,
 			16, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.RejectIteration.INSTANCE);
 		public static final @NonNull ExecutorOperation _OrderedSet__reverse = new ExecutorOperation("reverse", TypeUtil.EMPTY_PARAMETER_TYPES, Types._OrderedSet,
 			17, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionReverseOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__select = new ExecutorOperation("select", Parameters._Lambda_OrderedSet_T_Boolean, Types._OrderedSet,
+		public static final @NonNull ExecutorOperation _OrderedSet__select = new ExecutorOperation("select", Parameters._Lambda_0_T_Boolean, Types._OrderedSet,
 			18, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.SelectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__selectByKind = new ExecutorOperation("selectByKind", Parameters._OrderedSet_selectByKind_TT, Types._OrderedSet,
-			19, TypeUtil.createTemplateParameters(TypeParameters.__OrderedSet__selectByKind_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__selectByType = new ExecutorOperation("selectByType", Parameters._OrderedSet_selectByType_TT, Types._OrderedSet,
-			20, TypeUtil.createTemplateParameters(TypeParameters.__OrderedSet__selectByType_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _OrderedSet__sortedBy = new ExecutorOperation("sortedBy", Parameters._Lambda_OrderedSet_T_OclAny, Types._OrderedSet,
+		public static final @NonNull ExecutorOperation _OrderedSet__selectByKind = new ExecutorOperation("selectByKind", Parameters._1_TT, Types._OrderedSet,
+			19, TypeUtil.createTemplateParameters(TypeParameters._1_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _OrderedSet__selectByType = new ExecutorOperation("selectByType", Parameters._1_TT, Types._OrderedSet,
+			20, TypeUtil.createTemplateParameters(TypeParameters._1_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _OrderedSet__sortedBy = new ExecutorOperation("sortedBy", Parameters._Lambda_0_T_OclAny, Types._OrderedSet,
 			21, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
 		public static final @NonNull ExecutorOperation _OrderedSet__subOrderedSet = new ExecutorOperation("subOrderedSet", Parameters._Integer___Integer, Types._OrderedSet,
 			22, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedSetSubOrderedSetOperation.INSTANCE);
@@ -995,43 +1094,43 @@
 			0, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Sequence___eq_ = new ExecutorOperation("=", Parameters._OclSelf, Types._Sequence,
 			1, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__append = new ExecutorOperation("append", Parameters._Sequence_T, Types._Sequence,
+		public static final @NonNull ExecutorOperation _Sequence__append = new ExecutorOperation("append", Parameters._0_T, Types._Sequence,
 			2, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionAppendOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__appendAll = new ExecutorOperation("appendAll", Parameters._OrderedCollection__Sequence_T__, Types._Sequence,
+		public static final @NonNull ExecutorOperation _Sequence__appendAll = new ExecutorOperation("appendAll", Parameters._OrderedCollection__0_T__, Types._Sequence,
 			3, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionAppendAllOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__closure = new ExecutorOperation("closure", Parameters._Lambda_Sequence_T_OrderedSet__Sequence_T__, Types._Sequence,
+		public static final @NonNull ExecutorOperation _Sequence__closure = new ExecutorOperation("closure", Parameters._Lambda_0_T_OrderedSet__0_T__, Types._Sequence,
 			4, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ClosureIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__collect = new ExecutorOperation("collect", Parameters._Lambda_Sequence_T_Sequence_collect_V, Types._Sequence,
-			5, TypeUtil.createTemplateParameters(TypeParameters.__Sequence__collect_V), org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__collectNested = new ExecutorOperation("collectNested", Parameters._Lambda_Sequence_T_Sequence_collectNested_V, Types._Sequence,
-			6, TypeUtil.createTemplateParameters(TypeParameters.__Sequence__collectNested_V), org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__excluding = new ExecutorOperation("excluding", Parameters._Sequence_T, Types._Sequence,
+		public static final @NonNull ExecutorOperation _Sequence__collect = new ExecutorOperation("collect", Parameters._Lambda_0_T_1_V, Types._Sequence,
+			5, TypeUtil.createTemplateParameters(TypeParameters._1_V), org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _Sequence__collectNested = new ExecutorOperation("collectNested", Parameters._Lambda_0_T_1_V, Types._Sequence,
+			6, TypeUtil.createTemplateParameters(TypeParameters._1_V), org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _Sequence__excluding = new ExecutorOperation("excluding", Parameters._0_T, Types._Sequence,
 			7, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__excludingAll = new ExecutorOperation("excludingAll", Parameters._Collection__Sequence_T__, Types._Sequence,
+		public static final @NonNull ExecutorOperation _Sequence__excludingAll = new ExecutorOperation("excludingAll", Parameters._Collection__0_T__, Types._Sequence,
 			8, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Sequence__flatten = new ExecutorOperation("flatten", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Sequence,
-			9, TypeUtil.createTemplateParameters(TypeParameters.__Sequence__flatten_T2), org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__including = new ExecutorOperation("including", Parameters._Sequence_T, Types._Sequence,
+			9, TypeUtil.createTemplateParameters(TypeParameters._1_T2), org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Sequence__including = new ExecutorOperation("including", Parameters._0_T, Types._Sequence,
 			10, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__includingAll = new ExecutorOperation("includingAll", Parameters._Collection__Sequence_T__, Types._Sequence,
+		public static final @NonNull ExecutorOperation _Sequence__includingAll = new ExecutorOperation("includingAll", Parameters._Collection__0_T__, Types._Sequence,
 			11, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__insertAt = new ExecutorOperation("insertAt", Parameters._Integer___Sequence_T, Types._Sequence,
+		public static final @NonNull ExecutorOperation _Sequence__insertAt = new ExecutorOperation("insertAt", Parameters._Integer___0_T, Types._Sequence,
 			12, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionInsertAtOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__prepend = new ExecutorOperation("prepend", Parameters._Sequence_T, Types._Sequence,
+		public static final @NonNull ExecutorOperation _Sequence__prepend = new ExecutorOperation("prepend", Parameters._0_T, Types._Sequence,
 			13, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionPrependOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__prependAll = new ExecutorOperation("prependAll", Parameters._OrderedCollection__Sequence_T__, Types._Sequence,
+		public static final @NonNull ExecutorOperation _Sequence__prependAll = new ExecutorOperation("prependAll", Parameters._OrderedCollection__0_T__, Types._Sequence,
 			14, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionPrependAllOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__reject = new ExecutorOperation("reject", Parameters._Lambda_Sequence_T_Boolean, Types._Sequence,
+		public static final @NonNull ExecutorOperation _Sequence__reject = new ExecutorOperation("reject", Parameters._Lambda_0_T_Boolean, Types._Sequence,
 			15, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.RejectIteration.INSTANCE);
 		public static final @NonNull ExecutorOperation _Sequence__reverse = new ExecutorOperation("reverse", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Sequence,
 			16, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.OrderedCollectionReverseOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__select = new ExecutorOperation("select", Parameters._Lambda_Sequence_T_Boolean, Types._Sequence,
+		public static final @NonNull ExecutorOperation _Sequence__select = new ExecutorOperation("select", Parameters._Lambda_0_T_Boolean, Types._Sequence,
 			17, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.SelectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__selectByKind = new ExecutorOperation("selectByKind", Parameters._Sequence_selectByKind_TT, Types._Sequence,
-			18, TypeUtil.createTemplateParameters(TypeParameters.__Sequence__selectByKind_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__selectByType = new ExecutorOperation("selectByType", Parameters._Sequence_selectByType_TT, Types._Sequence,
-			19, TypeUtil.createTemplateParameters(TypeParameters.__Sequence__selectByType_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Sequence__sortedBy = new ExecutorOperation("sortedBy", Parameters._Lambda_Sequence_T_OclAny, Types._Sequence,
+		public static final @NonNull ExecutorOperation _Sequence__selectByKind = new ExecutorOperation("selectByKind", Parameters._1_TT, Types._Sequence,
+			18, TypeUtil.createTemplateParameters(TypeParameters._1_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Sequence__selectByType = new ExecutorOperation("selectByType", Parameters._1_TT, Types._Sequence,
+			19, TypeUtil.createTemplateParameters(TypeParameters._1_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Sequence__sortedBy = new ExecutorOperation("sortedBy", Parameters._Lambda_0_T_OclAny, Types._Sequence,
 			20, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
 		public static final @NonNull ExecutorOperation _Sequence__subSequence = new ExecutorOperation("subSequence", Parameters._Integer___Integer, Types._Sequence,
 			21, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.SequenceSubSequenceOperation.INSTANCE);
@@ -1042,31 +1141,31 @@
 			1, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyNotEqualOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Set___eq_ = new ExecutorOperation("=", Parameters._OclSelf, Types._Set,
 			2, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.oclany.OclAnyEqualOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Set__closure = new ExecutorOperation("closure", Parameters._Lambda_Set_T_Set, Types._Set,
+		public static final @NonNull ExecutorOperation _Set__closure = new ExecutorOperation("closure", Parameters._Lambda_0_T_Set, Types._Set,
 			3, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.ClosureIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Set__collect = new ExecutorOperation("collect", Parameters._Lambda_Set_T_Set_collect_V, Types._Set,
-			4, TypeUtil.createTemplateParameters(TypeParameters.__Set__collect_V), org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Set__collectNested = new ExecutorOperation("collectNested", Parameters._Lambda_Set_T_Set_collectNested_V, Types._Set,
-			5, TypeUtil.createTemplateParameters(TypeParameters.__Set__collectNested_V), org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Set__excluding = new ExecutorOperation("excluding", Parameters._Set_T, Types._Set,
+		public static final @NonNull ExecutorOperation _Set__collect = new ExecutorOperation("collect", Parameters._Lambda_0_T_1_V, Types._Set,
+			4, TypeUtil.createTemplateParameters(TypeParameters._1_V), org.eclipse.ocl.pivot.library.iterator.CollectIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _Set__collectNested = new ExecutorOperation("collectNested", Parameters._Lambda_0_T_1_V, Types._Set,
+			5, TypeUtil.createTemplateParameters(TypeParameters._1_V), org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration.INSTANCE);
+		public static final @NonNull ExecutorOperation _Set__excluding = new ExecutorOperation("excluding", Parameters._0_T, Types._Set,
 			6, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionExcludingOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Set__excludingAll = new ExecutorOperation("excludingAll", Parameters._Collection__Set_T__, Types._Set,
+		public static final @NonNull ExecutorOperation _Set__excludingAll = new ExecutorOperation("excludingAll", Parameters._Collection__0_T__, Types._Set,
 			7, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionExcludingAllOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _Set__flatten = new ExecutorOperation("flatten", TypeUtil.EMPTY_PARAMETER_TYPES, Types._Set,
-			8, TypeUtil.createTemplateParameters(TypeParameters.__Set__flatten_T2), org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Set__including = new ExecutorOperation("including", Parameters._Set_T, Types._Set,
+			8, TypeUtil.createTemplateParameters(TypeParameters._1_T2), org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Set__including = new ExecutorOperation("including", Parameters._0_T, Types._Set,
 			9, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIncludingOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Set__includingAll = new ExecutorOperation("includingAll", Parameters._Collection__Set_T__, Types._Set,
+		public static final @NonNull ExecutorOperation _Set__includingAll = new ExecutorOperation("includingAll", Parameters._Collection__0_T__, Types._Set,
 			10, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIncludingAllOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Set__reject = new ExecutorOperation("reject", Parameters._Lambda_Set_T_Boolean, Types._Set,
+		public static final @NonNull ExecutorOperation _Set__reject = new ExecutorOperation("reject", Parameters._Lambda_0_T_Boolean, Types._Set,
 			11, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.RejectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Set__select = new ExecutorOperation("select", Parameters._Lambda_Set_T_Boolean, Types._Set,
+		public static final @NonNull ExecutorOperation _Set__select = new ExecutorOperation("select", Parameters._Lambda_0_T_Boolean, Types._Set,
 			12, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.SelectIteration.INSTANCE);
-		public static final @NonNull ExecutorOperation _Set__selectByKind = new ExecutorOperation("selectByKind", Parameters._Set_selectByKind_TT, Types._Set,
-			13, TypeUtil.createTemplateParameters(TypeParameters.__Set__selectByKind_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Set__selectByType = new ExecutorOperation("selectByType", Parameters._Set_selectByType_TT, Types._Set,
-			14, TypeUtil.createTemplateParameters(TypeParameters.__Set__selectByType_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _Set__sortedBy = new ExecutorOperation("sortedBy", Parameters._Lambda_Set_T_OclAny, Types._Set,
+		public static final @NonNull ExecutorOperation _Set__selectByKind = new ExecutorOperation("selectByKind", Parameters._1_TT, Types._Set,
+			13, TypeUtil.createTemplateParameters(TypeParameters._1_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Set__selectByType = new ExecutorOperation("selectByType", Parameters._1_TT, Types._Set,
+			14, TypeUtil.createTemplateParameters(TypeParameters._1_TT), org.eclipse.ocl.pivot.library.collection.CollectionSelectByTypeOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _Set__sortedBy = new ExecutorOperation("sortedBy", Parameters._Lambda_0_T_OclAny, Types._Set,
 			15, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
 
 		public static final @NonNull ExecutorOperation _String___add_ = new ExecutorOperation("+", Parameters._String, Types._String,
@@ -1142,9 +1241,9 @@
 
 		public static final @NonNull ExecutorOperation _UniqueCollection___sub_ = new ExecutorOperation("-", Parameters._UniqueCollection__OclAny__, Types._UniqueCollection,
 			0, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.SetMinusOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _UniqueCollection__intersection = new ExecutorOperation("intersection", Parameters._Collection__UniqueCollection_T__, Types._UniqueCollection,
+		public static final @NonNull ExecutorOperation _UniqueCollection__intersection = new ExecutorOperation("intersection", Parameters._Collection__0_T__, Types._UniqueCollection,
 			1, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.CollectionIntersectionOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _UniqueCollection__sortedBy = new ExecutorOperation("sortedBy", Parameters._Lambda_UniqueCollection_T_OclAny, Types._UniqueCollection,
+		public static final @NonNull ExecutorOperation _UniqueCollection__sortedBy = new ExecutorOperation("sortedBy", Parameters._Lambda_0_T_OclAny, Types._UniqueCollection,
 			2, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.iterator.SortedByIteration.INSTANCE);
 		public static final @NonNull ExecutorOperation _UniqueCollection__symmetricDifference = new ExecutorOperation("symmetricDifference", Parameters._UniqueCollection__OclAny__, Types._UniqueCollection,
 			3, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.collection.SetSymmetricDifferenceOperation.INSTANCE);
@@ -1155,8 +1254,8 @@
 			0, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.numeric.UnlimitedNaturalMaxOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _UnlimitedNatural__min = new ExecutorOperation("min", Parameters._OclSelf, Types._UnlimitedNatural,
 			1, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.numeric.UnlimitedNaturalMinOperation.INSTANCE);
-		public static final @NonNull ExecutorOperation _UnlimitedNatural__oclAsType = new ExecutorOperation("oclAsType", Parameters._UnlimitedNatural_oclAsType_TT, Types._UnlimitedNatural,
-			2, TypeUtil.createTemplateParameters(TypeParameters.__UnlimitedNatural__oclAsType_TT), org.eclipse.ocl.pivot.library.numeric.UnlimitedNaturalOclAsTypeOperation.INSTANCE);
+		public static final @NonNull ExecutorOperation _UnlimitedNatural__oclAsType = new ExecutorOperation("oclAsType", Parameters._0_TT, Types._UnlimitedNatural,
+			2, TypeUtil.createTemplateParameters(TypeParameters._0_TT), org.eclipse.ocl.pivot.library.numeric.UnlimitedNaturalOclAsTypeOperation.INSTANCE);
 		public static final @NonNull ExecutorOperation _UnlimitedNatural__toInteger = new ExecutorOperation("toInteger", TypeUtil.EMPTY_PARAMETER_TYPES, Types._UnlimitedNatural,
 			3, TemplateParameters.EMPTY_LIST, org.eclipse.ocl.pivot.library.numeric.UnlimitedNaturalToIntegerOperation.INSTANCE);
 
@@ -1513,13 +1612,13 @@
 			OCLstdlibTables.Operations._Collection__excludesAll /* excludesAll(T2)(Collection(T2)) */,
 			OCLstdlibTables.Operations._Bag__excluding /* excluding(T[?]) */,
 			OCLstdlibTables.Operations._Bag__excludingAll /* excludingAll(Collection(T)) */,
-			OCLstdlibTables.Operations._Collection__0_exists /* exists(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__2_exists /* exists(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__1_exists /* exists(T[?],T[?]|Lambda T() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Collection__2_exists /* exists(T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__0_exists /* exists(T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Bag__flatten /* flatten(T2)() */,
-			OCLstdlibTables.Operations._Collection__0_forAll /* forAll(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__2_forAll /* forAll(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__1_forAll /* forAll(T[?],T[?]|Lambda T() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Collection__2_forAll /* forAll(T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__0_forAll /* forAll(T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__includes /* includes(T[?]) */,
 			OCLstdlibTables.Operations._Collection__includesAll /* includesAll(T2)(Collection(T2)) */,
 			OCLstdlibTables.Operations._Bag__including /* including(T[?]) */,
@@ -1611,13 +1710,13 @@
 			OCLstdlibTables.Operations._Collection__excludesAll /* excludesAll(T2)(Collection(T2)) */,
 			OCLstdlibTables.Operations._Collection__excluding /* excluding(T[?]) */,
 			OCLstdlibTables.Operations._Collection__excludingAll /* excludingAll(Collection(T)) */,
-			OCLstdlibTables.Operations._Collection__0_exists /* exists(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__2_exists /* exists(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__1_exists /* exists(T[?],T[?]|Lambda T() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Collection__2_exists /* exists(T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__0_exists /* exists(T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__flatten /* flatten(T2)() */,
-			OCLstdlibTables.Operations._Collection__0_forAll /* forAll(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__2_forAll /* forAll(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__1_forAll /* forAll(T[?],T[?]|Lambda T() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Collection__2_forAll /* forAll(T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__0_forAll /* forAll(T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__includes /* includes(T[?]) */,
 			OCLstdlibTables.Operations._Collection__includesAll /* includesAll(T2)(Collection(T2)) */,
 			OCLstdlibTables.Operations._Collection__including /* including(T[?]) */,
@@ -1734,12 +1833,12 @@
 			OCLstdlibTables.Operations._Map__1_excluding /* excluding(K[?],V[?]) */,
 			OCLstdlibTables.Operations._Map__excludingAll /* excludingAll(Collection(K)) */,
 			OCLstdlibTables.Operations._Map__excludingMap /* excludingMap(K2, V2)(Map(K2[1],V2[1])[1]) */,
-			OCLstdlibTables.Operations._Map__0_exists /* exists(K[?],K[?],K[?]|Lambda K() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Map__2_exists /* exists(K[?],K[?],K[?]|Lambda K() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Map__1_exists /* exists(K[?],K[?]|Lambda K() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Map__2_exists /* exists(K[?]|Lambda K() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Map__0_forAll /* forAll(K[?],K[?],K[?]|Lambda K() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Map__0_exists /* exists(K[?]|Lambda K() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Map__2_forAll /* forAll(K[?],K[?],K[?]|Lambda K() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Map__1_forAll /* forAll(K[?],K[?]|Lambda K() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Map__2_forAll /* forAll(K[?]|Lambda K() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Map__0_forAll /* forAll(K[?]|Lambda K() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Map__0_includes /* includes(K[?]) */,
 			OCLstdlibTables.Operations._Map__1_includes /* includes(K[?],V[?]) */,
 			OCLstdlibTables.Operations._Map__includesAll /* includesAll(K2)(Collection(K2)) */,
@@ -1822,8 +1921,8 @@
 		private static final @NonNull ExecutorOperation @NonNull [] _OclElement__OclElement = {
 			OCLstdlibTables.Operations._OclElement__allInstances /* allInstances(Integer[1]) */,
 			OCLstdlibTables.Operations._OclElement__oclAsModelType /* oclAsModelType(TT)(TT[1]) */,
-			OCLstdlibTables.Operations._OclElement__1_oclBase /* oclBase() */,
-			OCLstdlibTables.Operations._OclElement__0_oclBase /* oclBase(OclType[1]) */,
+			OCLstdlibTables.Operations._OclElement__0_oclBase /* oclBase() */,
+			OCLstdlibTables.Operations._OclElement__1_oclBase /* oclBase(OclType[1]) */,
 			OCLstdlibTables.Operations._OclElement__oclContainer /* oclContainer() */,
 			OCLstdlibTables.Operations._OclElement__oclContents /* oclContents() */,
 			OCLstdlibTables.Operations._OclElement__oclExtension /* oclExtension(OclStereotype[1]) */,
@@ -1874,8 +1973,8 @@
 		private static final @NonNull ExecutorOperation @NonNull [] _OclEnumeration__OclElement = {
 			OCLstdlibTables.Operations._OclEnumeration__allInstances /* allInstances(Integer[1]) */,
 			OCLstdlibTables.Operations._OclElement__oclAsModelType /* oclAsModelType(TT)(TT[1]) */,
-			OCLstdlibTables.Operations._OclElement__1_oclBase /* oclBase() */,
-			OCLstdlibTables.Operations._OclElement__0_oclBase /* oclBase(OclType[1]) */,
+			OCLstdlibTables.Operations._OclElement__0_oclBase /* oclBase() */,
+			OCLstdlibTables.Operations._OclElement__1_oclBase /* oclBase(OclType[1]) */,
 			OCLstdlibTables.Operations._OclElement__oclContainer /* oclContainer() */,
 			OCLstdlibTables.Operations._OclElement__oclContents /* oclContents() */,
 			OCLstdlibTables.Operations._OclElement__oclExtension /* oclExtension(OclStereotype[1]) */,
@@ -2049,8 +2148,8 @@
 		private static final @NonNull ExecutorOperation @NonNull [] _OclStereotype__OclElement = {
 			OCLstdlibTables.Operations._OclStereotype__allInstances /* allInstances(Integer[1]) */,
 			OCLstdlibTables.Operations._OclElement__oclAsModelType /* oclAsModelType(TT)(TT[1]) */,
-			OCLstdlibTables.Operations._OclElement__1_oclBase /* oclBase() */,
-			OCLstdlibTables.Operations._OclElement__0_oclBase /* oclBase(OclType[1]) */,
+			OCLstdlibTables.Operations._OclElement__0_oclBase /* oclBase() */,
+			OCLstdlibTables.Operations._OclElement__1_oclBase /* oclBase(OclType[1]) */,
 			OCLstdlibTables.Operations._OclElement__oclContainer /* oclContainer() */,
 			OCLstdlibTables.Operations._OclElement__oclContents /* oclContents() */,
 			OCLstdlibTables.Operations._OclElement__oclExtension /* oclExtension(OclStereotype[1]) */,
@@ -2131,8 +2230,8 @@
 		private static final @NonNull ExecutorOperation @NonNull [] _OclType__OclElement = {
 			OCLstdlibTables.Operations._OclElement__allInstances /* allInstances(Integer[1]) */,
 			OCLstdlibTables.Operations._OclElement__oclAsModelType /* oclAsModelType(TT)(TT[1]) */,
-			OCLstdlibTables.Operations._OclElement__1_oclBase /* oclBase() */,
-			OCLstdlibTables.Operations._OclElement__0_oclBase /* oclBase(OclType[1]) */,
+			OCLstdlibTables.Operations._OclElement__0_oclBase /* oclBase() */,
+			OCLstdlibTables.Operations._OclElement__1_oclBase /* oclBase(OclType[1]) */,
 			OCLstdlibTables.Operations._OclElement__oclContainer /* oclContainer() */,
 			OCLstdlibTables.Operations._OclElement__oclContents /* oclContents() */,
 			OCLstdlibTables.Operations._OclElement__oclExtension /* oclExtension(OclStereotype[1]) */,
@@ -2204,13 +2303,13 @@
 			OCLstdlibTables.Operations._Collection__excludesAll /* excludesAll(T2)(Collection(T2)) */,
 			OCLstdlibTables.Operations._Collection__excluding /* excluding(T[?]) */,
 			OCLstdlibTables.Operations._Collection__excludingAll /* excludingAll(Collection(T)) */,
-			OCLstdlibTables.Operations._Collection__0_exists /* exists(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__2_exists /* exists(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__1_exists /* exists(T[?],T[?]|Lambda T() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Collection__2_exists /* exists(T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__0_exists /* exists(T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__flatten /* flatten(T2)() */,
-			OCLstdlibTables.Operations._Collection__0_forAll /* forAll(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__2_forAll /* forAll(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__1_forAll /* forAll(T[?],T[?]|Lambda T() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Collection__2_forAll /* forAll(T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__0_forAll /* forAll(T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__includes /* includes(T[?]) */,
 			OCLstdlibTables.Operations._Collection__includesAll /* includesAll(T2)(Collection(T2)) */,
 			OCLstdlibTables.Operations._Collection__including /* including(T[?]) */,
@@ -2293,13 +2392,13 @@
 			OCLstdlibTables.Operations._Collection__excludesAll /* excludesAll(T2)(Collection(T2)) */,
 			OCLstdlibTables.Operations._OrderedSet__excluding /* excluding(T[?]) */,
 			OCLstdlibTables.Operations._OrderedSet__excludingAll /* excludingAll(Collection(T)) */,
-			OCLstdlibTables.Operations._Collection__0_exists /* exists(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__2_exists /* exists(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__1_exists /* exists(T[?],T[?]|Lambda T() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Collection__2_exists /* exists(T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__0_exists /* exists(T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._OrderedSet__flatten /* flatten(T2)() */,
-			OCLstdlibTables.Operations._Collection__0_forAll /* forAll(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__2_forAll /* forAll(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__1_forAll /* forAll(T[?],T[?]|Lambda T() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Collection__2_forAll /* forAll(T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__0_forAll /* forAll(T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__includes /* includes(T[?]) */,
 			OCLstdlibTables.Operations._Collection__includesAll /* includesAll(T2)(Collection(T2)) */,
 			OCLstdlibTables.Operations._OrderedSet__including /* including(T[?]) */,
@@ -2438,13 +2537,13 @@
 			OCLstdlibTables.Operations._Collection__excludesAll /* excludesAll(T2)(Collection(T2)) */,
 			OCLstdlibTables.Operations._Sequence__excluding /* excluding(T[?]) */,
 			OCLstdlibTables.Operations._Sequence__excludingAll /* excludingAll(Collection(T)) */,
-			OCLstdlibTables.Operations._Collection__0_exists /* exists(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__2_exists /* exists(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__1_exists /* exists(T[?],T[?]|Lambda T() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Collection__2_exists /* exists(T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__0_exists /* exists(T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Sequence__flatten /* flatten(T2)() */,
-			OCLstdlibTables.Operations._Collection__0_forAll /* forAll(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__2_forAll /* forAll(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__1_forAll /* forAll(T[?],T[?]|Lambda T() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Collection__2_forAll /* forAll(T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__0_forAll /* forAll(T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__includes /* includes(T[?]) */,
 			OCLstdlibTables.Operations._Collection__includesAll /* includesAll(T2)(Collection(T2)) */,
 			OCLstdlibTables.Operations._Sequence__including /* including(T[?]) */,
@@ -2526,13 +2625,13 @@
 			OCLstdlibTables.Operations._Collection__excludesAll /* excludesAll(T2)(Collection(T2)) */,
 			OCLstdlibTables.Operations._Set__excluding /* excluding(T[?]) */,
 			OCLstdlibTables.Operations._Set__excludingAll /* excludingAll(Collection(T)) */,
-			OCLstdlibTables.Operations._Collection__0_exists /* exists(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__2_exists /* exists(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__1_exists /* exists(T[?],T[?]|Lambda T() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Collection__2_exists /* exists(T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__0_exists /* exists(T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Set__flatten /* flatten(T2)() */,
-			OCLstdlibTables.Operations._Collection__0_forAll /* forAll(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__2_forAll /* forAll(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__1_forAll /* forAll(T[?],T[?]|Lambda T() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Collection__2_forAll /* forAll(T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__0_forAll /* forAll(T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__includes /* includes(T[?]) */,
 			OCLstdlibTables.Operations._Collection__includesAll /* includesAll(T2)(Collection(T2)) */,
 			OCLstdlibTables.Operations._Set__including /* including(T[?]) */,
@@ -2670,13 +2769,13 @@
 			OCLstdlibTables.Operations._Collection__excludesAll /* excludesAll(T2)(Collection(T2)) */,
 			OCLstdlibTables.Operations._Collection__excluding /* excluding(T[?]) */,
 			OCLstdlibTables.Operations._Collection__excludingAll /* excludingAll(Collection(T)) */,
-			OCLstdlibTables.Operations._Collection__0_exists /* exists(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__2_exists /* exists(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__1_exists /* exists(T[?],T[?]|Lambda T() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Collection__2_exists /* exists(T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__0_exists /* exists(T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__flatten /* flatten(T2)() */,
-			OCLstdlibTables.Operations._Collection__0_forAll /* forAll(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__2_forAll /* forAll(T[?],T[?],T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__1_forAll /* forAll(T[?],T[?]|Lambda T() : Boolean[?]) */,
-			OCLstdlibTables.Operations._Collection__2_forAll /* forAll(T[?]|Lambda T() : Boolean[?]) */,
+			OCLstdlibTables.Operations._Collection__0_forAll /* forAll(T[?]|Lambda T() : Boolean[?]) */,
 			OCLstdlibTables.Operations._Collection__includes /* includes(T[?]) */,
 			OCLstdlibTables.Operations._Collection__includesAll /* includesAll(T2)(Collection(T2)) */,
 			OCLstdlibTables.Operations._Collection__including /* including(T[?]) */,
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/util/PivotValidator.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/util/PivotValidator.java
index 82c1a77..c4e4662 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/util/PivotValidator.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/util/PivotValidator.java
@@ -1810,7 +1810,7 @@
 	 */
 	public boolean validatePivotable(Pivotable pivotable, DiagnosticChain diagnostics, Map<Object, Object> context)
 	{
-		return validate_EveryDefaultConstraint(pivotable, diagnostics, context);
+		return validate_EveryDefaultConstraint((EObject)pivotable, diagnostics, context);
 	}
 
 	/**
@@ -3893,7 +3893,7 @@
 	 */
 	public boolean validateMorePivotable(MorePivotable morePivotable, DiagnosticChain diagnostics, Map<Object, Object> context)
 	{
-		return validate_EveryDefaultConstraint(morePivotable, diagnostics, context);
+		return validate_EveryDefaultConstraint((EObject)morePivotable, diagnostics, context);
 	}
 
 	/**
diff --git a/plugins/org.eclipse.ocl.pivot/model-gen/OCL-2.5.oclas b/plugins/org.eclipse.ocl.pivot/model-gen/OCL-2.5.oclas
index af7249f..0878de1 100644
--- a/plugins/org.eclipse.ocl.pivot/model-gen/OCL-2.5.oclas
+++ b/plugins/org.eclipse.ocl.pivot/model-gen/OCL-2.5.oclas
@@ -574,7 +574,7 @@
         </ownedSignature>
       </ownedOperations>
       <ownedOperations xsi:type="pivot:Iteration" xmi:id="f2tFH" implementationClass="org.eclipse.ocl.pivot.library.iterator.CollectByIteration"
-          name="collectBy" type="#w1Ift">
+          name="collectBy" type="#C3rSN">
         <ownedComments body="The Map from each element oclText[i] of the source collection, the key, to the set of values to and values that results from applying body to every value of the source map.&#xA;The result is not flattened.&#xA;"/>
         <ownedIterators xmi:id="sKLIt" isRequired="false" name="i" type="#qs59R"/>
         <ownedParameters xmi:id="VcpnN" isRequired="false" name="lambda" type="#ZBaNC"/>
@@ -619,13 +619,11 @@
         <ownedComments body="The collection containing all elements of oclText[self] apart from all occurrences of all objects.&#xA;"/>
         <ownedParameters xmi:id="CEbWM" name="objects" type="#IgEJU"/>
       </ownedOperations>
-      <ownedOperations xsi:type="pivot:Iteration" xmi:id=",yQ+J" implementationClass="org.eclipse.ocl.pivot.library.iterator.ExistsIteration"
+      <ownedOperations xsi:type="pivot:Iteration" xmi:id="arQ+J" implementationClass="org.eclipse.ocl.pivot.library.iterator.ExistsIteration"
           isInvalidating="true" isRequired="false" isValidating="true" name="exists" type="#XEMMs">
-        <ownedComments body="Results in oclText[true] if body evaluates to oclText[true] for at least one permutation of elements oclText[i], oclText[j], oclText[k] in the source collection.&#xA;"/>
-        <ownedIterators xmi:id="MVqNt" isRequired="false" name="i" type="#qs59R"/>
-        <ownedIterators xmi:id="NVqNt" isRequired="false" name="j" type="#qs59R"/>
-        <ownedIterators xmi:id="OVqNt" isRequired="false" name="k" type="#qs59R"/>
-        <ownedParameters xmi:id="1mItN" isRequired="false" name="lambda" type="#9VTck"/>
+        <ownedComments body="Results in oclText[true] if body evaluates to oclText[true] for at least one element oclText[i] in the source collection.&#xA;"/>
+        <ownedIterators xmi:id="7bxLt" isRequired="false" name="i" type="#qs59R"/>
+        <ownedParameters xmi:id="ktPrN" isRequired="false" name="lambda" type="#9VTck"/>
       </ownedOperations>
       <ownedOperations xsi:type="pivot:Iteration" xmi:id="cuQ+J" implementationClass="org.eclipse.ocl.pivot.library.iterator.ExistsIteration"
           isInvalidating="true" isRequired="false" isValidating="true" name="exists" type="#XEMMs">
@@ -634,11 +632,13 @@
         <ownedIterators xmi:id="2yhMt" isRequired="false" name="j" type="#qs59R"/>
         <ownedParameters xmi:id="eEAsN" isRequired="false" name="lambda" type="#9VTck"/>
       </ownedOperations>
-      <ownedOperations xsi:type="pivot:Iteration" xmi:id="arQ+J" implementationClass="org.eclipse.ocl.pivot.library.iterator.ExistsIteration"
+      <ownedOperations xsi:type="pivot:Iteration" xmi:id=",yQ+J" implementationClass="org.eclipse.ocl.pivot.library.iterator.ExistsIteration"
           isInvalidating="true" isRequired="false" isValidating="true" name="exists" type="#XEMMs">
-        <ownedComments body="Results in oclText[true] if body evaluates to oclText[true] for at least one element oclText[i] in the source collection.&#xA;"/>
-        <ownedIterators xmi:id="7bxLt" isRequired="false" name="i" type="#qs59R"/>
-        <ownedParameters xmi:id="ktPrN" isRequired="false" name="lambda" type="#9VTck"/>
+        <ownedComments body="Results in oclText[true] if body evaluates to oclText[true] for at least one permutation of elements oclText[i], oclText[j], oclText[k] in the source collection.&#xA;"/>
+        <ownedIterators xmi:id="MVqNt" isRequired="false" name="i" type="#qs59R"/>
+        <ownedIterators xmi:id="NVqNt" isRequired="false" name="j" type="#qs59R"/>
+        <ownedIterators xmi:id="OVqNt" isRequired="false" name="k" type="#qs59R"/>
+        <ownedParameters xmi:id="1mItN" isRequired="false" name="lambda" type="#9VTck"/>
       </ownedOperations>
       <ownedOperations xmi:id="hg3Zo" implementationClass="org.eclipse.ocl.pivot.library.collection.CollectionFlattenOperation" name="flatten"
           type="#ibDmk">
@@ -647,13 +647,11 @@
           <ownedParameters xmi:id="V4fY9" name="T2"/>
         </ownedSignature>
       </ownedOperations>
-      <ownedOperations xsi:type="pivot:Iteration" xmi:id="7xmML" implementationClass="org.eclipse.ocl.pivot.library.iterator.ForAllIteration"
+      <ownedOperations xsi:type="pivot:Iteration" xmi:id="WqmML" implementationClass="org.eclipse.ocl.pivot.library.iterator.ForAllIteration"
           isInvalidating="true" isRequired="false" isValidating="true" name="forAll" type="#XEMMs">
-        <ownedComments body="Results in oclText[true] if the body expression evaluates to oclText[true] for each permutation of elements oclText[i], oclText[j] in the source collection; otherwise, result is oclText[false].&#xA;"/>
-        <ownedIterators xmi:id="YYXCP" isRequired="false" name="i" type="#qs59R"/>
-        <ownedIterators xmi:id="ZYXCP" isRequired="false" name="j" type="#qs59R"/>
-        <ownedIterators xmi:id="aYXCP" isRequired="false" name="k" type="#qs59R"/>
-        <ownedParameters xmi:id="Bq1hv" isRequired="false" name="lambda" type="#9VTck"/>
+        <ownedComments body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element oclText[i] in the source collection; otherwise, result is oclText[false].&#xA;"/>
+        <ownedIterators xmi:id="HfeAP" isRequired="false" name="i" type="#qs59R"/>
+        <ownedParameters xmi:id="ww8fv" isRequired="false" name="lambda" type="#9VTck"/>
       </ownedOperations>
       <ownedOperations xsi:type="pivot:Iteration" xmi:id="YtmML" implementationClass="org.eclipse.ocl.pivot.library.iterator.ForAllIteration"
           isInvalidating="true" isRequired="false" isValidating="true" name="forAll" type="#XEMMs">
@@ -662,11 +660,13 @@
         <ownedIterators xmi:id="C2OBP" isRequired="false" name="j" type="#qs59R"/>
         <ownedParameters xmi:id="qHtgv" isRequired="false" name="lambda" type="#9VTck"/>
       </ownedOperations>
-      <ownedOperations xsi:type="pivot:Iteration" xmi:id="WqmML" implementationClass="org.eclipse.ocl.pivot.library.iterator.ForAllIteration"
+      <ownedOperations xsi:type="pivot:Iteration" xmi:id="7xmML" implementationClass="org.eclipse.ocl.pivot.library.iterator.ForAllIteration"
           isInvalidating="true" isRequired="false" isValidating="true" name="forAll" type="#XEMMs">
-        <ownedComments body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element oclText[i] in the source collection; otherwise, result is oclText[false].&#xA;"/>
-        <ownedIterators xmi:id="HfeAP" isRequired="false" name="i" type="#qs59R"/>
-        <ownedParameters xmi:id="ww8fv" isRequired="false" name="lambda" type="#9VTck"/>
+        <ownedComments body="Results in oclText[true] if the body expression evaluates to oclText[true] for each permutation of elements oclText[i], oclText[j] in the source collection; otherwise, result is oclText[false].&#xA;"/>
+        <ownedIterators xmi:id="YYXCP" isRequired="false" name="i" type="#qs59R"/>
+        <ownedIterators xmi:id="ZYXCP" isRequired="false" name="j" type="#qs59R"/>
+        <ownedIterators xmi:id="aYXCP" isRequired="false" name="k" type="#qs59R"/>
+        <ownedParameters xmi:id="Bq1hv" isRequired="false" name="lambda" type="#9VTck"/>
       </ownedOperations>
       <ownedOperations xmi:id="JdFNc" implementationClass="org.eclipse.ocl.pivot.library.collection.CollectionIncludesOperation" name="includes"
           type="#XEMMs">
@@ -818,7 +818,7 @@
         </ownedDetails>
       </ownedAnnotations>
       <ownedProperties xmi:id="5RgO0" implementationClass="org.eclipse.ocl.pivot.library.collection.CollectionElementTypeProperty" name="elementType"
-          type="#pBMRF">
+          opposite="#PjpFg" type="#pBMRF">
         <ownedComments body="Evaluates to the type of the collection elements.&#xA;"/>
       </ownedProperties>
       <ownedProperties xmi:id="ksONS" implementationClass="org.eclipse.ocl.pivot.library.collection.CollectionLowerProperty" name="lower"
@@ -954,7 +954,7 @@
         </ownedSignature>
       </ownedOperations>
       <ownedOperations xsi:type="pivot:Iteration" xmi:id="WLwsa" implementationClass="org.eclipse.ocl.pivot.library.iterator.CollectByIteration"
-          name="collectBy" type="#fF1Yk">
+          name="collectBy" type="#Li7MS">
         <ownedComments body="The Map from each element oclText[i] of the source collection, the key, to the set of values to and values that results from applying body to every value of the source map.&#xA;The result is not flattened.&#xA;"/>
         <ownedIterators xmi:id="J8R4i" isRequired="false" name="k" type="#8dAuH"/>
         <ownedParameters xmi:id="wNwXD" isRequired="false" name="lambda" type="#yptMt"/>
@@ -963,7 +963,7 @@
         </ownedSignature>
       </ownedOperations>
       <ownedOperations xsi:type="pivot:Iteration" xmi:id="2Ju3K" implementationClass="org.eclipse.ocl.pivot.library.iterator.CollectNestedIteration"
-          name="collectNested" type="#,Twy1">
+          name="collectNested" type="#rNtaG">
         <ownedComments body="The Map of key and values which results from applying body to every value of the source map.&#xA;"/>
         <ownedIterators xmi:id="pAA3B" isRequired="false" name="k" type="#8dAuH"/>
         <ownedParameters xmi:id="QSeWi" isRequired="false" name="lambda" type="#S,+0s"/>
@@ -989,13 +989,13 @@
           <ownedParameters xmi:id="+Zdec" name="K2"/>
         </ownedSignature>
       </ownedOperations>
-      <ownedOperations xmi:id="n0IE2" implementationClass="org.eclipse.ocl.pivot.library.map.MapExcludesMapOperation" name="excludesMap"
+      <ownedOperations xmi:id="JciU2" implementationClass="org.eclipse.ocl.pivot.library.map.MapExcludesMapOperation" name="excludesMap"
           type="#XEMMs">
         <ownedComments body="True if none of the key-value pairs of oclText[map] are also key-value pairs of oclText[self], oclText[false] otherwise.&#xA;"/>
-        <ownedParameters xmi:id="So,mp" name="map" type="#ILFp8"/>
+        <ownedParameters xmi:id="sRrPv" name="map" type="#Si8ek"/>
         <ownedSignature>
-          <ownedParameters xmi:id="0oyuu" name="K2"/>
-          <ownedParameters xmi:id="Juyuu" name="V2"/>
+          <ownedParameters xmi:id="mMGvo" name="K2"/>
+          <ownedParameters xmi:id="7RGvo" name="V2"/>
         </ownedSignature>
       </ownedOperations>
       <ownedOperations xmi:id="u87CC" implementationClass="org.eclipse.ocl.pivot.library.map.MapExcludesValueOperation" name="excludesValue"
@@ -1018,15 +1018,28 @@
         <ownedComments body="The map containing all key-value pairs of oclText[self] except any whose key is included in oclText[keys].&#xA;"/>
         <ownedParameters xmi:id="YgAdz" name="keys" type="#xuXg8"/>
       </ownedOperations>
-      <ownedOperations xmi:id="p4+Il" implementationClass="org.eclipse.ocl.pivot.library.map.MapExcludingMapOperation" name="excludingMap"
+      <ownedOperations xmi:id="LgYZl" implementationClass="org.eclipse.ocl.pivot.library.map.MapExcludingMapOperation" name="excludingMap"
           type="#LpeHF">
         <ownedComments body="The map containing all key-value pairs of oclText[self] except any which is also included in oclText[map].&#xA;"/>
-        <ownedParameters xmi:id="M8d5p" name="map" type="#MFAWn"/>
+        <ownedParameters xmi:id="mlJiv" name="map" type="#aWy45"/>
         <ownedSignature>
-          <ownedParameters xmi:id="GNWcV" name="K2"/>
-          <ownedParameters xmi:id="bSWcV" name="V2"/>
+          <ownedParameters xmi:id="4wpcP" name="K2"/>
+          <ownedParameters xmi:id="N2pcP" name="V2"/>
         </ownedSignature>
       </ownedOperations>
+      <ownedOperations xsi:type="pivot:Iteration" xmi:id="RATld" implementationClass="org.eclipse.ocl.pivot.library.iterator.ExistsIteration"
+          isInvalidating="true" isRequired="false" isValidating="true" name="exists" type="#XEMMs">
+        <ownedComments body="Results in oclText[true] if body evaluates to oclText[true] for at least one key oclText[k] in the source map.&#xA;"/>
+        <ownedIterators xmi:id="YN47i" isRequired="false" name="k" type="#8dAuH"/>
+        <ownedParameters xmi:id=",eWbD" isRequired="false" name="lambda" type="#7A0zM"/>
+      </ownedOperations>
+      <ownedOperations xsi:type="pivot:Iteration" xmi:id="TDTld" implementationClass="org.eclipse.ocl.pivot.library.iterator.ExistsIteration"
+          isInvalidating="true" isRequired="false" isValidating="true" name="exists" type="#XEMMs">
+        <ownedComments body="Results in oclText[true] if body evaluates to oclText[true] for at least one permutation of keys oclText[k1], oclText[k2] in the source map.&#xA;"/>
+        <ownedIterators xmi:id="NXp8i" isRequired="false" name="k1" type="#8dAuH"/>
+        <ownedIterators xmi:id="OXp8i" isRequired="false" name="k2" type="#8dAuH"/>
+        <ownedParameters xmi:id="51GcD" isRequired="false" name="lambda" type="#7A0zM"/>
+      </ownedOperations>
       <ownedOperations xsi:type="pivot:Iteration" xmi:id="2HTld" implementationClass="org.eclipse.ocl.pivot.library.iterator.ExistsIteration"
           isInvalidating="true" isRequired="false" isValidating="true" name="exists" type="#XEMMs">
         <ownedComments body="Results in oclText[true] if body evaluates to oclText[true] for at least one permutation of keys oclText[k1], oclText[k2], oclText[k3] in the source map.&#xA;"/>
@@ -1035,26 +1048,11 @@
         <ownedIterators xmi:id="m5x9i" isRequired="false" name="k3" type="#8dAuH"/>
         <ownedParameters xmi:id="QYPdD" isRequired="false" name="lambda" type="#7A0zM"/>
       </ownedOperations>
-      <ownedOperations xsi:type="pivot:Iteration" xmi:id="TDTld" implementationClass="org.eclipse.ocl.pivot.library.iterator.ExistsIteration"
-          isInvalidating="true" isRequired="false" isValidating="true" name="exists" type="#XEMMs">
-        <ownedComments body="Results in oclText[true] if body evaluates to oclText[true] for at least one permutation of keys oclText[k1], oclText[k2] in the source map.&#xA;"/>
-        <ownedIterators xmi:id="NXp8i" isRequired="false" name="k1" type="#8dAuH"/>
-        <ownedIterators xmi:id="OXp8i" isRequired="false" name="k2" type="#8dAuH"/>
-        <ownedParameters xmi:id="51GcD" isRequired="false" name="lambda" type="#7A0zM"/>
-      </ownedOperations>
-      <ownedOperations xsi:type="pivot:Iteration" xmi:id="RATld" implementationClass="org.eclipse.ocl.pivot.library.iterator.ExistsIteration"
-          isInvalidating="true" isRequired="false" isValidating="true" name="exists" type="#XEMMs">
-        <ownedComments body="Results in oclText[true] if body evaluates to oclText[true] for at least one key oclText[k] in the source map.&#xA;"/>
-        <ownedIterators xmi:id="YN47i" isRequired="false" name="k" type="#8dAuH"/>
-        <ownedParameters xmi:id=",eWbD" isRequired="false" name="lambda" type="#7A0zM"/>
-      </ownedOperations>
-      <ownedOperations xsi:type="pivot:Iteration" xmi:id="yGpze" implementationClass="org.eclipse.ocl.pivot.library.iterator.ForAllIteration"
+      <ownedOperations xsi:type="pivot:Iteration" xmi:id="N,oze" implementationClass="org.eclipse.ocl.pivot.library.iterator.ForAllIteration"
           isInvalidating="true" isRequired="false" isValidating="true" name="forAll" type="#XEMMs">
-        <ownedComments body="Results in oclText[true] if the body expression evaluates to oclText[true] for each permutation of keys oclText[k1], oclText[k2], oclText[k3] in the source map; otherwise, result is oclText[false].&#xA;"/>
-        <ownedIterators xmi:id="w8eyE" isRequired="false" name="k1" type="#8dAuH"/>
-        <ownedIterators xmi:id="x8eyE" isRequired="false" name="k2" type="#8dAuH"/>
-        <ownedIterators xmi:id="y8eyE" isRequired="false" name="k3" type="#8dAuH"/>
-        <ownedParameters xmi:id="cb8Rl" isRequired="false" name="lambda" type="#7A0zM"/>
+        <ownedComments body="Results in oclText[true] if the body expression evaluates to oclText[true] for each key oclText[k] in the source map; otherwise, result is oclText[false].&#xA;"/>
+        <ownedIterators xmi:id="kQlwE" isRequired="false" name="k" type="#8dAuH"/>
+        <ownedParameters xmi:id="LiDQl" isRequired="false" name="lambda" type="#7A0zM"/>
       </ownedOperations>
       <ownedOperations xsi:type="pivot:Iteration" xmi:id="PCpze" implementationClass="org.eclipse.ocl.pivot.library.iterator.ForAllIteration"
           isInvalidating="true" isRequired="false" isValidating="true" name="forAll" type="#XEMMs">
@@ -1063,11 +1061,13 @@
         <ownedIterators xmi:id="aaWxE" isRequired="false" name="k2" type="#8dAuH"/>
         <ownedParameters xmi:id="F5zQl" isRequired="false" name="lambda" type="#7A0zM"/>
       </ownedOperations>
-      <ownedOperations xsi:type="pivot:Iteration" xmi:id="N,oze" implementationClass="org.eclipse.ocl.pivot.library.iterator.ForAllIteration"
+      <ownedOperations xsi:type="pivot:Iteration" xmi:id="yGpze" implementationClass="org.eclipse.ocl.pivot.library.iterator.ForAllIteration"
           isInvalidating="true" isRequired="false" isValidating="true" name="forAll" type="#XEMMs">
-        <ownedComments body="Results in oclText[true] if the body expression evaluates to oclText[true] for each key oclText[k] in the source map; otherwise, result is oclText[false].&#xA;"/>
-        <ownedIterators xmi:id="kQlwE" isRequired="false" name="k" type="#8dAuH"/>
-        <ownedParameters xmi:id="LiDQl" isRequired="false" name="lambda" type="#7A0zM"/>
+        <ownedComments body="Results in oclText[true] if the body expression evaluates to oclText[true] for each permutation of keys oclText[k1], oclText[k2], oclText[k3] in the source map; otherwise, result is oclText[false].&#xA;"/>
+        <ownedIterators xmi:id="w8eyE" isRequired="false" name="k1" type="#8dAuH"/>
+        <ownedIterators xmi:id="x8eyE" isRequired="false" name="k2" type="#8dAuH"/>
+        <ownedIterators xmi:id="y8eyE" isRequired="false" name="k3" type="#8dAuH"/>
+        <ownedParameters xmi:id="cb8Rl" isRequired="false" name="lambda" type="#7A0zM"/>
       </ownedOperations>
       <ownedOperations xmi:id="AyH0v" implementationClass="org.eclipse.ocl.pivot.library.map.MapIncludesOperation" name="includes" type="#XEMMs">
         <ownedComments body="True if oclText[key] is one of the keys of oclText[self], oclText[false] otherwise.&#xA;"/>
@@ -1087,13 +1087,13 @@
           <ownedParameters xmi:id="8Set+" name="K2"/>
         </ownedSignature>
       </ownedOperations>
-      <ownedOperations xmi:id="1zOx+" implementationClass="org.eclipse.ocl.pivot.library.map.MapIncludesMapOperation" name="includesMap"
+      <ownedOperations xmi:id="XboB," implementationClass="org.eclipse.ocl.pivot.library.map.MapIncludesMapOperation" name="includesMap"
           type="#XEMMs">
         <ownedComments body="True if all of the key-value pairs of oclText[map] are also key-value pairs of oclText[self], oclText[false] otherwise.&#xA;"/>
-        <ownedParameters xmi:id="oKh,g" name="map" type="#knjZK"/>
+        <ownedParameters xmi:id="C0Mom" name="map" type="#Kb5,,"/>
         <ownedSignature>
-          <ownedParameters xmi:id="yhz9Q" name="K2"/>
-          <ownedParameters xmi:id="Hnz9Q" name="V2"/>
+          <ownedParameters xmi:id="kFH+K" name="K2"/>
+          <ownedParameters xmi:id="5KH+K" name="V2"/>
         </ownedSignature>
       </ownedOperations>
       <ownedOperations xmi:id="8N2Jv" implementationClass="org.eclipse.ocl.pivot.library.map.MapIncludesValueOperation" name="includesValue"
@@ -1107,13 +1107,13 @@
         <ownedParameters xmi:id="wiQiu" isRequired="false" name="key" type="#8dAuH"/>
         <ownedParameters xmi:id="Cv,M1" isRequired="false" name="value" type="#HeAuH"/>
       </ownedOperations>
-      <ownedOperations xmi:id="bg4+y" implementationClass="org.eclipse.ocl.pivot.library.map.MapIncludingMapOperation" name="includingMap"
+      <ownedOperations xmi:id="9HSPz" implementationClass="org.eclipse.ocl.pivot.library.map.MapIncludingMapOperation" name="includingMap"
           type="#LpeHF">
         <ownedComments body="The map containing all of the key-value pairs of oclText[self] and oclText[map].&#xA;The values associated with key-value pairs in oclText[map] replace those in oclText[self] where the same key is used by both maps.&#xA;"/>
-        <ownedParameters xmi:id="2ktxe" name="map" type="#w2v0R"/>
+        <ownedParameters xmi:id="QOZak" name="map" type="#i5R2O"/>
         <ownedSignature>
-          <ownedParameters xmi:id="Izxt6" name="K2"/>
-          <ownedParameters xmi:id="d4xt6" name="V2"/>
+          <ownedParameters xmi:id="6WFu0" name="K2"/>
+          <ownedParameters xmi:id="PcFu0" name="V2"/>
         </ownedSignature>
       </ownedOperations>
       <ownedOperations xmi:id="X2mGl" implementationClass="org.eclipse.ocl.pivot.library.map.MapIsEmptyOperation" name="isEmpty" type="#XEMMs">
@@ -1184,10 +1184,12 @@
           <values>UML</values>
         </ownedDetails>
       </ownedAnnotations>
-      <ownedProperties xmi:id="ifXaB" implementationClass="org.eclipse.ocl.pivot.library.map.MapKeyTypeProperty" name="keyType" type="#pBMRF">
+      <ownedProperties xmi:id="ifXaB" implementationClass="org.eclipse.ocl.pivot.library.map.MapKeyTypeProperty" name="keyType" opposite="#CWW9w"
+          type="#pBMRF">
         <ownedComments body="The key type of the key-value pairs of oclText[self].&#xA;"/>
       </ownedProperties>
-      <ownedProperties xmi:id="0HJYE" implementationClass="org.eclipse.ocl.pivot.library.map.MapValueTypeProperty" name="valueType" type="#pBMRF">
+      <ownedProperties xmi:id="0HJYE" implementationClass="org.eclipse.ocl.pivot.library.map.MapValueTypeProperty" name="valueType" opposite="#AwxtF"
+          type="#pBMRF">
         <ownedComments body="The value type of the key-value pairs of oclText[self].&#xA;"/>
       </ownedProperties>
     </ownedClasses>
@@ -1375,15 +1377,15 @@
           <ownedParameters xmi:id="00OUM" name="TT"/>
         </ownedSignature>
       </ownedOperations>
+      <ownedOperations xmi:id="l58yN" implementationClass="org.eclipse.ocl.pivot.library.oclany.OclElementOclBaseOperation" isRequired="false"
+          name="oclBase" type="#hlrMH">
+        <ownedComments body="Returns the application class that is extended by this extension element. Returns null for an orphan extension of nothing."/>
+      </ownedOperations>
       <ownedOperations xmi:id="YjePj" implementationClass="org.eclipse.ocl.pivot.library.oclany.OclElementOclBaseOperation" isRequired="false"
           name="oclBase" type="#hlrMH">
         <ownedComments body="Returns the application class conforming to base extended by this extension element. Returns null if no such class."/>
         <ownedParameters xmi:id="0xwrX" name="base" type="#hlrMH"/>
       </ownedOperations>
-      <ownedOperations xmi:id="l58yN" implementationClass="org.eclipse.ocl.pivot.library.oclany.OclElementOclBaseOperation" isRequired="false"
-          name="oclBase" type="#hlrMH">
-        <ownedComments body="Returns the application class that is extended by this extension element. Returns null for an orphan extension of nothing."/>
-      </ownedOperations>
       <ownedOperations xmi:id="lyeXH" implementationClass="org.eclipse.ocl.pivot.library.classifier.ClassifierOclContainerOperation" isRequired="false"
           name="oclContainer" type="#zfDWR">
         <ownedComments body="Returns the object for which self is a composed content or null if there is no such object."/>
@@ -1420,11 +1422,11 @@
         <ownedComments body="Evaluates to all of the most derived model types of which oclText[self] is an instance. The return from oclText[oclModelTypes()]&#xA;is normally equivalent to that from oclText[oclModelType()] unless oclText[self] is an instance of multiply classified model type.&#xA;&#xA;The return is normally oclText[invalid] since few model elements have model types. UML's InstanceSpecification::classifier provides&#xA;a multiple classification for a model type.&#xA;"/>
       </ownedOperations>
       <ownedProperties xmi:id="IcnIy" implementationClass="org.eclipse.ocl.pivot.library.oclany.OclElementOclContainerProperty" isRequired="false"
-          name="oclContainer" type="#zfDWR">
+          name="oclContainer" opposite="#i+8xQ" type="#zfDWR">
         <ownedComments body="The object for which self is a composed content or null if there is no such object.&#xA;"/>
       </ownedProperties>
       <ownedProperties xmi:id="REFNQ" implementationClass="org.eclipse.ocl.pivot.library.oclany.OclElementOclContentsProperty" name="oclContents"
-          type="#U6ALG">
+          opposite="#hXMRj" type="#U6ALG">
         <ownedComments body="The composed contents of self."/>
       </ownedProperties>
       <ownedProperties xmi:id="i+8xQ" isImplicit="true" name="OclElement" opposite="#IcnIy" type="#158KG"/>
@@ -1508,7 +1510,7 @@
           type="#AlwVZ">
         <ownedComments body="Returns 'invalid'."/>
       </ownedOperations>
-      <ownedProperties xmi:id="QSjNW" isRequired="false" name="oclBadProperty" type="#jbMkR">
+      <ownedProperties xmi:id="QSjNW" isRequired="false" name="oclBadProperty" opposite="#c8rKW" type="#jbMkR">
         <ownedComments body="An oclBadProperty may be used as a placeholder in an unsuccessfully created OCLExpression."/>
       </ownedProperties>
     </ownedClasses>
@@ -1956,15 +1958,15 @@
         <ownedComments body="The value of the addition of oclText[self] and r.&#xA;"/>
         <ownedParameters xmi:id="XH6gZ" name="r" type="#zlfMH"/>
       </ownedOperations>
-      <ownedOperations xmi:id="7HGgA" implementationClass="org.eclipse.ocl.pivot.library.numeric.NumericNegateOperation" name="-" precedence="#tgQwH"
-          type="#Nr4QF">
-        <ownedComments body="The negative value of oclText[self].&#xA;"/>
-      </ownedOperations>
       <ownedOperations xmi:id="EJEtV" implementationClass="org.eclipse.ocl.pivot.library.numeric.NumericMinusOperation" name="-" precedence="#qLHeo"
           type="#Nr4QF">
         <ownedComments body="The value of the subtraction of r from oclText[self].&#xA;"/>
         <ownedParameters xmi:id="Rn6gZ" name="r" type="#zlfMH"/>
       </ownedOperations>
+      <ownedOperations xmi:id="7HGgA" implementationClass="org.eclipse.ocl.pivot.library.numeric.NumericNegateOperation" name="-" precedence="#tgQwH"
+          type="#Nr4QF">
+        <ownedComments body="The negative value of oclText[self].&#xA;"/>
+      </ownedOperations>
       <ownedOperations xmi:id="GJEtV" implementationClass="org.eclipse.ocl.pivot.library.numeric.NumericDivideOperation" isInvalidating="true"
           name="/" precedence="#0NX0o" type="#Nr4QF">
         <ownedComments body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero.&#xA;"/>
@@ -2793,6 +2795,11 @@
         <ownedSubstitutions actual="#FF0T4" formal="#qs59R"/>
       </ownedBindings>
     </ownedClasses>
+    <ownedClasses xsi:type="pivot:CollectionType" xmi:id="U,X23" name="Collection" superClasses="#jbMkR">
+      <ownedBindings>
+        <ownedSubstitutions actual="#k2OA6" formal="#qs59R"/>
+      </ownedBindings>
+    </ownedClasses>
     <ownedClasses xsi:type="pivot:CollectionType" xmi:id="qN9mM" name="Collection" superClasses="#jbMkR">
       <ownedBindings>
         <ownedSubstitutions actual="#qs59R" formal="#qs59R"/>
@@ -2813,11 +2820,6 @@
         <ownedSubstitutions actual="#ODsm5" formal="#qs59R"/>
       </ownedBindings>
     </ownedClasses>
-    <ownedClasses xsi:type="pivot:CollectionType" xmi:id="U,X23" name="Collection" superClasses="#jbMkR">
-      <ownedBindings>
-        <ownedSubstitutions actual="#k2OA6" formal="#qs59R"/>
-      </ownedBindings>
-    </ownedClasses>
     <ownedClasses xsi:type="pivot:CollectionType" xmi:id="7Me4i" name="Collection" superClasses="#jbMkR">
       <ownedBindings>
         <ownedSubstitutions actual="#jdfjE" formal="#qs59R"/>
@@ -2858,16 +2860,6 @@
         <ownedSubstitutions actual="#HeAuH" formal="#qs59R"/>
       </ownedBindings>
     </ownedClasses>
-    <ownedClasses xsi:type="pivot:CollectionType" xmi:id="wW6BZ" name="Collection" superClasses="#jbMkR">
-      <ownedBindings>
-        <ownedSubstitutions actual="#gbWpi" formal="#qs59R"/>
-      </ownedBindings>
-    </ownedClasses>
-    <ownedClasses xsi:type="pivot:CollectionType" xmi:id="nsXBY" name="Collection" superClasses="#jbMkR">
-      <ownedBindings>
-        <ownedSubstitutions actual="#vEbKc" formal="#qs59R"/>
-      </ownedBindings>
-    </ownedClasses>
     <ownedClasses xsi:type="pivot:CollectionType" xmi:id="XXVzx" name="Collection" superClasses="#jbMkR">
       <ownedBindings>
         <ownedSubstitutions actual="#ftoBy" formal="#qs59R"/>
@@ -2888,6 +2880,16 @@
         <ownedSubstitutions actual="#qdc76" formal="#qs59R"/>
       </ownedBindings>
     </ownedClasses>
+    <ownedClasses xsi:type="pivot:CollectionType" xmi:id="wW6BZ" name="Collection" superClasses="#jbMkR">
+      <ownedBindings>
+        <ownedSubstitutions actual="#gbWpi" formal="#qs59R"/>
+      </ownedBindings>
+    </ownedClasses>
+    <ownedClasses xsi:type="pivot:CollectionType" xmi:id="nsXBY" name="Collection" superClasses="#jbMkR">
+      <ownedBindings>
+        <ownedSubstitutions actual="#vEbKc" formal="#qs59R"/>
+      </ownedBindings>
+    </ownedClasses>
     <ownedClasses xsi:type="pivot:LambdaType" xmi:id="7A0zM" contextType="#8dAuH" name="Lambda" resultType="#XEMMs" superClasses="#ufpqK"/>
     <ownedClasses xsi:type="pivot:LambdaType" xmi:id="voQcV" contextType="#8dAuH" name="Lambda" resultType="#jbMkR" superClasses="#ufpqK"/>
     <ownedClasses xsi:type="pivot:LambdaType" xmi:id="uOvwZ" contextType="#8dAuH" name="Lambda" resultType="#06U6Y" superClasses="#ufpqK"/>
@@ -2921,43 +2923,43 @@
     <ownedClasses xsi:type="pivot:LambdaType" xmi:id="3dLDL" contextType="#l1i6D" name="Lambda" resultType="#qdc76" superClasses="#ufpqK"/>
     <ownedClasses xsi:type="pivot:LambdaType" xmi:id="A88rw" contextType="#ODsm5" name="Lambda" resultType="#gbWpi" superClasses="#ufpqK"/>
     <ownedClasses xsi:type="pivot:LambdaType" xmi:id="h1rgw" contextType="#ODsm5" name="Lambda" resultType="#vEbKc" superClasses="#ufpqK"/>
-    <ownedClasses xsi:type="pivot:MapType" xmi:id="ILFp8" name="Map" superClasses="#jbMkR">
+    <ownedClasses xsi:type="pivot:MapType" xmi:id="Si8ek" name="Map" superClasses="#jbMkR">
       <ownedBindings>
-        <ownedSubstitutions actual="#0oyuu" formal="#8dAuH"/>
-        <ownedSubstitutions actual="#Juyuu" formal="#HeAuH"/>
+        <ownedSubstitutions actual="#mMGvo" formal="#8dAuH"/>
+        <ownedSubstitutions actual="#7RGvo" formal="#HeAuH"/>
       </ownedBindings>
     </ownedClasses>
-    <ownedClasses xsi:type="pivot:MapType" xmi:id="MFAWn" name="Map" superClasses="#jbMkR">
+    <ownedClasses xsi:type="pivot:MapType" xmi:id="aWy45" name="Map" superClasses="#jbMkR">
       <ownedBindings>
-        <ownedSubstitutions actual="#GNWcV" formal="#8dAuH"/>
-        <ownedSubstitutions actual="#bSWcV" formal="#HeAuH"/>
+        <ownedSubstitutions actual="#4wpcP" formal="#8dAuH"/>
+        <ownedSubstitutions actual="#N2pcP" formal="#HeAuH"/>
       </ownedBindings>
     </ownedClasses>
-    <ownedClasses xsi:type="pivot:MapType" xmi:id="knjZK" name="Map" superClasses="#jbMkR">
+    <ownedClasses xsi:type="pivot:MapType" xmi:id="Kb5,," name="Map" superClasses="#jbMkR">
       <ownedBindings>
-        <ownedSubstitutions actual="#yhz9Q" formal="#8dAuH"/>
-        <ownedSubstitutions actual="#Hnz9Q" formal="#HeAuH"/>
+        <ownedSubstitutions actual="#kFH+K" formal="#8dAuH"/>
+        <ownedSubstitutions actual="#5KH+K" formal="#HeAuH"/>
       </ownedBindings>
     </ownedClasses>
-    <ownedClasses xsi:type="pivot:MapType" xmi:id="w2v0R" name="Map" superClasses="#jbMkR">
+    <ownedClasses xsi:type="pivot:MapType" xmi:id="i5R2O" name="Map" superClasses="#jbMkR">
       <ownedBindings>
-        <ownedSubstitutions actual="#Izxt6" formal="#8dAuH"/>
-        <ownedSubstitutions actual="#d4xt6" formal="#HeAuH"/>
+        <ownedSubstitutions actual="#6WFu0" formal="#8dAuH"/>
+        <ownedSubstitutions actual="#PcFu0" formal="#HeAuH"/>
       </ownedBindings>
     </ownedClasses>
-    <ownedClasses xsi:type="pivot:MapType" xmi:id="fF1Yk" keysAreNullFree="false" name="Map" superClasses="#jbMkR" valuesAreNullFree="false">
+    <ownedClasses xsi:type="pivot:MapType" xmi:id="Li7MS" keysAreNullFree="false" name="Map" superClasses="#jbMkR" valuesAreNullFree="false">
       <ownedBindings>
         <ownedSubstitutions actual="#8dAuH" formal="#8dAuH"/>
         <ownedSubstitutions actual="#waOWY" formal="#HeAuH"/>
       </ownedBindings>
     </ownedClasses>
-    <ownedClasses xsi:type="pivot:MapType" xmi:id=",Twy1" keysAreNullFree="false" name="Map" superClasses="#jbMkR" valuesAreNullFree="false">
+    <ownedClasses xsi:type="pivot:MapType" xmi:id="rNtaG" keysAreNullFree="false" name="Map" superClasses="#jbMkR" valuesAreNullFree="false">
       <ownedBindings>
         <ownedSubstitutions actual="#8dAuH" formal="#8dAuH"/>
         <ownedSubstitutions actual="#QNM7m" formal="#HeAuH"/>
       </ownedBindings>
     </ownedClasses>
-    <ownedClasses xsi:type="pivot:MapType" xmi:id="w1Ift" keysAreNullFree="false" name="Map" superClasses="#jbMkR" valuesAreNullFree="false">
+    <ownedClasses xsi:type="pivot:MapType" xmi:id="C3rSN" keysAreNullFree="false" name="Map" superClasses="#jbMkR" valuesAreNullFree="false">
       <ownedBindings>
         <ownedSubstitutions actual="#qs59R" formal="#8dAuH"/>
         <ownedSubstitutions actual="#7VL63" formal="#HeAuH"/>
diff --git a/plugins/org.eclipse.ocl.pivot/model-gen/Pivot.oclas b/plugins/org.eclipse.ocl.pivot/model-gen/Pivot.oclas
index 18ec1e7..5ba97ac 100644
--- a/plugins/org.eclipse.ocl.pivot/model-gen/Pivot.oclas
+++ b/plugins/org.eclipse.ocl.pivot/model-gen/Pivot.oclas
@@ -11,9 +11,9 @@
       </ownedDetails>
     </ownedAnnotations>
     <ownedClasses xmi:id="g7Mr0" name="Annotation" superClasses="#0kVqz">
-      <ownedProperties xmi:id="XjKgo" isComposite="true" name="ownedContents" type="#R+Drm"/>
-      <ownedProperties xmi:id="V,KBZ" isComposite="true" name="ownedDetails" type="#ehjA2"/>
-      <ownedProperties xmi:id="AahpU" name="references" type="#R+Drm"/>
+      <ownedProperties xmi:id="XjKgo" isComposite="true" name="ownedContents" opposite="#5Kk3e" type="#R+Drm"/>
+      <ownedProperties xmi:id="V,KBZ" isComposite="true" name="ownedDetails" opposite="#s7tlS" type="#ehjA2"/>
+      <ownedProperties xmi:id="AahpU" name="references" opposite="#YJE5T" type="#R+Drm"/>
     </ownedClasses>
     <ownedClasses xmi:id="3akhL" name="AnyType" superClasses="#pDcbe"/>
     <ownedClasses xmi:id="oE9s0" name="AssociationClass" superClasses="#pDcbe">
@@ -22,7 +22,7 @@
       <ownedProperties xmi:id="AgtLW" isImplicit="true" name="AssociationClassCallExp" opposite="#12PvD" type="#rZeOP"/>
     </ownedClasses>
     <ownedClasses xmi:id="ZD0WZ" name="AssociationClassCallExp" superClasses="#cmSzw">
-      <ownedProperties xmi:id="12PvD" isRequired="false" name="referredAssociationClass" type="#oE9s0"/>
+      <ownedProperties xmi:id="12PvD" isRequired="false" name="referredAssociationClass" opposite="#AgtLW" type="#oE9s0"/>
     </ownedClasses>
     <ownedClasses xsi:type="pivot:Enumeration" xmi:id=",Swbo" name="AssociativityKind" superClasses="&_0;#+8+by">
       <ownedLiterals xmi:id="XL8wB" name="left"/>
@@ -59,10 +59,10 @@
       </ownedInvariants>
       <ownedProperties xmi:id="Xbbpj" defaultValueString="false" name="isImplicit" type="#ZuwnB"/>
       <ownedProperties xmi:id=",1h8l" defaultValueString="false" name="isSafe" type="#ZuwnB"/>
-      <ownedProperties xmi:id="IjXu4" isComposite="true" isRequired="false" name="ownedSource" type="#BFtK4"/>
+      <ownedProperties xmi:id="IjXu4" isComposite="true" isRequired="false" name="ownedSource" opposite="#0VFpK" type="#BFtK4"/>
     </ownedClasses>
     <ownedClasses xmi:id="wuJTT" name="CallOperationAction" superClasses="#0kVqz">
-      <ownedProperties xmi:id="vrBiI" name="operation" type="#Yz,F1"/>
+      <ownedProperties xmi:id="vrBiI" name="operation" opposite="#AwSDc" type="#Yz,F1"/>
       <ownedProperties xmi:id="hlb5z" isImplicit="true" isRequired="false" name="MessageExp" opposite="#Ijz5s" type="#HRils"/>
     </ownedClasses>
     <ownedClasses xmi:id="pDcbe" name="Class" superClasses="#rrwsa #MzHoc #5r5y9">
@@ -82,10 +82,10 @@
         <ownedComments body="Determines whether an object specified by this Class is active or not. If true, then the owning Class is referred to as an active Class. If false, then such a Class is referred to as a passive Class."/>
       </ownedProperties>
       <ownedProperties xmi:id="MkW0s" defaultValueString="false" name="isInterface" type="#ZuwnB"/>
-      <ownedProperties xmi:id="ZkqKv" isComposite="true" name="ownedBehaviors" type="#kow3e">
+      <ownedProperties xmi:id="ZkqKv" isComposite="true" name="ownedBehaviors" opposite="#L6ktl" type="#kow3e">
         <ownedComments body="Behaviors owned by a BehavioredClassifier."/>
       </ownedProperties>
-      <ownedProperties xmi:id="VcVc," isComposite="true" name="ownedInvariants" type="#31l4V"/>
+      <ownedProperties xmi:id="VcVc," isComposite="true" name="ownedInvariants" opposite="#On6Yu" type="#31l4V"/>
       <ownedProperties xmi:id="OZRpi" isComposite="true" name="ownedOperations" opposite="#Mp0MK" type="#ELvCY">
         <ownedComments body="The Operations owned by the Class."/>
       </ownedProperties>
@@ -93,7 +93,7 @@
         <ownedComments body="The Properties owned by the StructuredClassifier.&#xA;&#xA;The attributes (i.e., the Properties) owned by the Class."/>
       </ownedProperties>
       <ownedProperties xmi:id="nvShn" isRequired="false" name="owningPackage" opposite="#0MELU" type="#3ONqN"/>
-      <ownedProperties xmi:id="IoscB" name="superClasses" type="#awKqS"/>
+      <ownedProperties xmi:id="IoscB" name="superClasses" opposite="#iReTa" type="#awKqS"/>
       <ownedProperties xmi:id="iReTa" isImplicit="true" name="Class" opposite="#IoscB" type="#7vGqS"/>
       <ownedProperties xmi:id=",UeqX" isImplicit="true" name="CompleteClass" opposite="#tpc+a" type="#q6ECS"/>
       <ownedProperties xmi:id="epBrF" isImplicit="true" name="DataType" opposite="#0zbos" type="#nrqci"/>
@@ -105,7 +105,7 @@
       <ownedInvariants xmi:id="D3ZRY" isCallable="true" name="TypeIsItemType">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="type = ownedItem.type&#xA;&#xA;"/>
       </ownedInvariants>
-      <ownedProperties xmi:id="qB57w" isComposite="true" name="ownedItem" type="#BFtK4"/>
+      <ownedProperties xmi:id="qB57w" isComposite="true" name="ownedItem" opposite="#ucQSI" type="#BFtK4"/>
     </ownedClasses>
     <ownedClasses xsi:type="pivot:Enumeration" xmi:id="DMrVx" name="CollectionKind" superClasses="&_0;#+8+by">
       <ownedLiterals xmi:id="CLrmU" name="Collection"/>
@@ -131,7 +131,7 @@
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="kind = CollectionKind::Set implies type.oclIsKindOf(SetType)&#xA;"/>
       </ownedInvariants>
       <ownedProperties xmi:id="VCsSg" name="kind" type="#DMrVx"/>
-      <ownedProperties xmi:id="8wJko" isComposite="true" name="ownedParts" type="#ZEpGc"/>
+      <ownedProperties xmi:id="8wJko" isComposite="true" name="ownedParts" opposite="#i3Nni" type="#ZEpGc"/>
     </ownedClasses>
     <ownedClasses xmi:id="1s6I1" isAbstract="true" name="CollectionLiteralPart" superClasses="#j7EI0">
       <ownedInvariants xmi:id="h1JLf" isCallable="true" name="TypeIsNotInvalid">
@@ -140,12 +140,12 @@
       <ownedProperties xmi:id="i3Nni" isImplicit="true" isRequired="false" name="CollectionLiteralExp" opposite="#8wJko" type="#dfRul"/>
     </ownedClasses>
     <ownedClasses xmi:id="wy8kd" name="CollectionRange" superClasses="#1s6I1">
-      <ownedProperties xmi:id="TGoSr" isComposite="true" name="ownedFirst" type="#BFtK4"/>
-      <ownedProperties xmi:id="jF9nj" isComposite="true" name="ownedLast" type="#BFtK4"/>
+      <ownedProperties xmi:id="TGoSr" isComposite="true" name="ownedFirst" opposite="#BdVOq" type="#BFtK4"/>
+      <ownedProperties xmi:id="jF9nj" isComposite="true" name="ownedLast" opposite="#xXoj0" type="#BFtK4"/>
     </ownedClasses>
     <ownedClasses xmi:id="pawWx" name="CollectionType" superClasses="#9ppvF">
       <ownedProperties xmi:id="zzSGt" isDerived="true" isResolveProxies="false" isTransient="true" isVolatile="true" name="elementType"
-          type="#rrwsa"/>
+          opposite="#JFc9Y" type="#rrwsa"/>
       <ownedProperties xmi:id="6Rs,j" defaultValueString="false" name="isNullFree" type="#ZuwnB"/>
       <ownedProperties xmi:id="eOBFL" defaultValueString="0" name="lower" type="#vCSey"/>
       <ownedProperties xmi:id=",E0kL" defaultValueString="*" name="upper" type="#5Oxgg"/>
@@ -162,7 +162,7 @@
     </ownedClasses>
     <ownedClasses xmi:id="wspoT" name="CompleteClass" superClasses="#0kVqz">
       <ownedProperties xmi:id="ZmPN3" isRequired="false" name="owningCompletePackage" opposite="#ms6IU" type="#+gDEJ"/>
-      <ownedProperties xmi:id="tpc+a" name="partialClasses" type="#awKqS"/>
+      <ownedProperties xmi:id="tpc+a" name="partialClasses" opposite="#,UeqX" type="#awKqS"/>
     </ownedClasses>
     <ownedClasses xmi:id="LqaWx" name="CompleteEnvironment" superClasses="#t5rpa">
       <ownedProperties xmi:id="Cv6PO" isComposite="true" name="ownedCompleteModel" opposite="#Tjqfq" type="#hzOMU"/>
@@ -173,12 +173,12 @@
         <ownedParameters xmi:id="0S+uw" isRequired="false" name="name" type="#CPVxu"/>
       </ownedOperations>
       <ownedProperties xmi:id="aU0xR" isDerived="true" isReadOnly="true" isRequired="false" isResolveProxies="false" isTransient="true"
-          name="orphanCompletePackage" type="#WaoLl"/>
+          name="orphanCompletePackage" opposite="#pwEaB" type="#WaoLl"/>
       <ownedProperties xmi:id="AQg0n" isComposite="true" name="ownedCompletePackages" opposite="#SgDQD" type="#niCJl"/>
       <ownedProperties xmi:id="Tjqfq" isRequired="false" name="owningCompleteEnvironment" opposite="#Cv6PO" type="#LqaWx"/>
-      <ownedProperties xmi:id="AF1+9" name="partialModels" type="#jKxIE"/>
+      <ownedProperties xmi:id="AF1+9" name="partialModels" opposite="#n0An," type="#jKxIE"/>
       <ownedProperties xmi:id="b7Oj2" isDerived="true" isReadOnly="true" isRequired="false" isResolveProxies="false" isTransient="true"
-          name="primitiveCompletePackage" type="#XSQ4c"/>
+          name="primitiveCompletePackage" opposite="#tpHsl" type="#XSQ4c"/>
     </ownedClasses>
     <ownedClasses xmi:id="+gDEJ" name="CompletePackage" superClasses="#0kVqz">
       <ownedOperations xmi:id="xxnVz" isRequired="false" name="getOwnedCompleteClass" type="#wspoT">
@@ -188,14 +188,14 @@
       <ownedProperties xmi:id="pXZYG" isComposite="true" name="ownedCompletePackages" opposite="#vpFYN" type="#niCJl"/>
       <ownedProperties xmi:id="SgDQD" isRequired="false" name="owningCompleteModel" opposite="#AQg0n" type="#hzOMU"/>
       <ownedProperties xmi:id="vpFYN" isRequired="false" name="owningCompletePackage" opposite="#pXZYG" type="#+gDEJ"/>
-      <ownedProperties xmi:id="slBkJ" name="partialPackages" type="#4WjM+"/>
+      <ownedProperties xmi:id="slBkJ" name="partialPackages" opposite="#CUgnW" type="#4WjM+"/>
     </ownedClasses>
     <ownedClasses xmi:id="KXGhD" name="ConnectionPointReference" superClasses="#VVKEz">
       <ownedComments body="A ConnectionPointReference represents a usage (as part of a submachine State) of an entry/exit point Pseudostate defined in the StateMachine referenced by the submachine State."/>
-      <ownedProperties xmi:id="KPNEV" name="entries" type="#91QED">
+      <ownedProperties xmi:id="KPNEV" name="entries" opposite="#1udyj" type="#91QED">
         <ownedComments body="The entryPoint Pseudostates corresponding to this connection point."/>
       </ownedProperties>
-      <ownedProperties xmi:id="Ppbt5" name="exits" type="#91QED">
+      <ownedProperties xmi:id="Ppbt5" name="exits" opposite="#YlCTk" type="#91QED">
         <ownedComments body="The exitPoints kind Pseudostates corresponding to this connection point."/>
       </ownedProperties>
       <ownedProperties xmi:id="PKvdR" isRequired="false" name="owningState" opposite="#CYTMg" type="#CwtUf">
@@ -210,11 +210,11 @@
       <ownedInvariants xmi:id="KOGGk" isCallable="true" name="UniqueName">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="true "/>
       </ownedInvariants>
-      <ownedProperties xmi:id="bdrbJ" name="constrainedElements" type="#R+Drm">
+      <ownedProperties xmi:id="bdrbJ" name="constrainedElements" opposite="#Jt0M6" type="#R+Drm">
         <ownedComments body="The ordered set of Elements referenced by this Constraint."/>
       </ownedProperties>
       <ownedProperties xmi:id="dmddj" isDerived="true" isReadOnly="true" isRequired="false" isResolveProxies="false" isTransient="true"
-          isVolatile="true" name="context" type="#MzHoc"/>
+          isVolatile="true" name="context" opposite="#6vXcR" type="#MzHoc"/>
       <ownedProperties xmi:id="wvfMx" defaultValueString="false" name="isCallable" type="#ZuwnB"/>
       <ownedProperties xmi:id="MZFY9" isComposite="true" name="ownedSpecification" opposite="#ub8yA" type="#BfHsW">
         <ownedComments body="A condition that must be true when evaluated in order for the Constraint to be satisfied."/>
@@ -223,7 +223,7 @@
       <ownedProperties xmi:id="20skK" isRequired="false" name="owningPreContext" opposite="#G0Gd," type="#Yz,F1"/>
       <ownedProperties xmi:id="Dd0RI" isRequired="false" name="owningState" opposite="#GT13x" type="#CwtUf"/>
       <ownedProperties xmi:id=",zMbl" isRequired="false" name="owningTransition" opposite="#GiZYW" type="#GEFmq"/>
-      <ownedProperties xmi:id="OvqL4" name="redefinedConstraints" type="#31l4V"/>
+      <ownedProperties xmi:id="OvqL4" name="redefinedConstraints" opposite="#L08R0" type="#31l4V"/>
       <ownedProperties xmi:id="On6Yu" isImplicit="true" isRequired="false" name="Class" opposite="#VcVc," type="#pDcbe"/>
       <ownedProperties xmi:id="L08R0" isImplicit="true" name="Constraint" opposite="#OvqL4" type="#Y1h4V"/>
       <ownedProperties xmi:id="gl,un" isImplicit="true" isRequired="false" name="Namespace" opposite="#FS8OY" type="#MzHoc"/>
@@ -239,7 +239,7 @@
       <ownedInvariants xmi:id="71A2y" isCallable="true" name="BehavioralClassIsSuperClass">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="behavioralClass &lt;> null implies superClasses->includes(behavioralClass)&#xA;&#xA;"/>
       </ownedInvariants>
-      <ownedProperties xmi:id="0zbos" isRequired="false" name="behavioralClass" type="#pDcbe">
+      <ownedProperties xmi:id="0zbos" isRequired="false" name="behavioralClass" opposite="#epBrF" type="#pDcbe">
         <ownedComments body="An equivalent type, such as a PrimitiveType, that defines the conformance and evaluation behavior."/>
       </ownedProperties>
       <ownedProperties xmi:id="Crwo5" defaultValueString="true" name="isSerializable" type="#ZuwnB"/>
@@ -254,15 +254,15 @@
     </ownedClasses>
     <ownedClasses xmi:id="ic4It" name="DynamicBehavior" superClasses="#D4Bd4 #Kudiu"/>
     <ownedClasses xmi:id="uVj5N" name="DynamicElement" superClasses="#t5rpa">
-      <ownedProperties xmi:id="t8fLB" name="metaType" type="#rrwsa"/>
+      <ownedProperties xmi:id="t8fLB" name="metaType" opposite="#Nn,Xg" type="#rrwsa"/>
     </ownedClasses>
     <ownedClasses xmi:id="lKr4X" name="DynamicProperty" superClasses="#t5rpa">
       <ownedProperties xmi:id="qrqGM" isRequired="false" name="default" type="#CPVxu"/>
-      <ownedProperties xmi:id="vGP79" name="referredProperty" type="#Gm0Mj"/>
+      <ownedProperties xmi:id="vGP79" name="referredProperty" opposite="#EpwEv" type="#Gm0Mj"/>
       <ownedProperties xmi:id="dtCip" isImplicit="true" isRequired="false" name="DynamicType" opposite="#nCwoy" type="#Kudiu"/>
     </ownedClasses>
     <ownedClasses xmi:id="Kudiu" name="DynamicType" superClasses="#pDcbe #uVj5N">
-      <ownedProperties xmi:id="nCwoy" isComposite="true" name="ownedDynamicProperties" type="#2ZLUM"/>
+      <ownedProperties xmi:id="nCwoy" isComposite="true" name="ownedDynamicProperties" opposite="#dtCip" type="#2ZLUM"/>
     </ownedClasses>
     <ownedClasses xmi:id="iExtD" name="DynamicValueSpecification" superClasses="#DLUxI"/>
     <ownedClasses xmi:id="t5rpa" isAbstract="true" name="Element" superClasses="&_0;#zfDWR">
@@ -277,7 +277,7 @@
         <ownedParameters xmi:id="5gsHc" name="propertyName" type="#CPVxu"/>
       </ownedOperations>
       <ownedProperties xmi:id="uVOeE" name="annotatingComments" opposite="#XTzu8" type="#phuMp"/>
-      <ownedProperties xmi:id="QiVod" isComposite="true" name="ownedAnnotations" type="#R+Drm"/>
+      <ownedProperties xmi:id="QiVod" isComposite="true" name="ownedAnnotations" opposite="#mrjCA" type="#R+Drm"/>
       <ownedProperties xmi:id="KEZOc" isComposite="true" name="ownedComments" opposite="#ov0wb" type="#phuMp">
         <ownedComments body="The Comments owned by this Element."/>
       </ownedProperties>
@@ -291,13 +291,13 @@
       <ownedProperties xmi:id="tJiSL" name="base" opposite="#qHs1l" type="#t5rpa"/>
       <ownedProperties xmi:id="POZR5" defaultValueString="false" name="isApplied" type="#ZuwnB"/>
       <ownedProperties xmi:id="F6OZE" defaultValueString="false" name="isRequired" type="#ZuwnB"/>
-      <ownedProperties xmi:id="ObYJ0" name="stereotype" type="#j7kZ6"/>
+      <ownedProperties xmi:id="ObYJ0" name="stereotype" opposite="#QMG7c" type="#j7kZ6"/>
     </ownedClasses>
     <ownedClasses xmi:id="Aaj,v" name="EnumLiteralExp" superClasses="#fKWWp">
       <ownedInvariants xmi:id="13IpA" isCallable="true" name="TypeIsEnumerationType">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="self.type = referredLiteral?.owningEnumeration&#xA;&#xA;"/>
       </ownedInvariants>
-      <ownedProperties xmi:id="2xm3e" isRequired="false" name="referredLiteral" type="#ZQKYa"/>
+      <ownedProperties xmi:id="2xm3e" isRequired="false" name="referredLiteral" opposite="#OLQg1" type="#ZQKYa"/>
     </ownedClasses>
     <ownedClasses xmi:id="4m7zY" name="Enumeration" superClasses="#1mHCJ">
       <ownedComments body="An Enumeration is a DataType whose values are enumerated in the model as EnumerationLiterals."/>
@@ -315,10 +315,10 @@
       <ownedProperties xmi:id="OLQg1" isImplicit="true" name="EnumLiteralExp" opposite="#2xm3e" type="#61U4t"/>
     </ownedClasses>
     <ownedClasses xmi:id="sFfJa" name="ExpressionInOCL" superClasses="#BfHsW">
-      <ownedProperties xmi:id="7o,d2" isComposite="true" isRequired="false" name="ownedBody" type="#BFtK4"/>
-      <ownedProperties xmi:id="eubAp" isComposite="true" isRequired="false" name="ownedContext" type="#t4j6T"/>
-      <ownedProperties xmi:id="DrnVr" isComposite="true" name="ownedParameters" type="#Rl6IP"/>
-      <ownedProperties xmi:id="2tYZA" isComposite="true" isRequired="false" name="ownedResult" type="#t4j6T"/>
+      <ownedProperties xmi:id="7o,d2" isComposite="true" isRequired="false" name="ownedBody" opposite="#BwjAx" type="#BFtK4"/>
+      <ownedProperties xmi:id="eubAp" isComposite="true" isRequired="false" name="ownedContext" opposite="#y7+O9" type="#t4j6T"/>
+      <ownedProperties xmi:id="DrnVr" isComposite="true" name="ownedParameters" opposite="#1jSjN" type="#Rl6IP"/>
+      <ownedProperties xmi:id="2tYZA" isComposite="true" isRequired="false" name="ownedResult" opposite="#a3p9g" type="#t4j6T"/>
     </ownedClasses>
     <ownedClasses xmi:id="nphZD" isAbstract="true" name="Feature" superClasses="#j7EI0">
       <ownedComments body="A Feature declares a behavioral or structural characteristic of Classifiers."/>
@@ -353,24 +353,24 @@
       <ownedProperties xmi:id="FkbAo" defaultValueString="false" name="isElseIf" type="#ZuwnB">
         <ownedComments body="True if this IfExp corresponds to an 'elseif' in the OCL source, false if it corresponds to an 'if'. This attribute has no semantic significance; it merely supports more faithful reconstruction of the OCL source by a pretty printer."/>
       </ownedProperties>
-      <ownedProperties xmi:id="77VwY" isComposite="true" name="ownedCondition" type="#BFtK4"/>
-      <ownedProperties xmi:id="DSLlN" isComposite="true" name="ownedElse" type="#BFtK4"/>
-      <ownedProperties xmi:id="nV3mN" isComposite="true" name="ownedThen" type="#BFtK4"/>
+      <ownedProperties xmi:id="77VwY" isComposite="true" name="ownedCondition" opposite="#vgW3D" type="#BFtK4"/>
+      <ownedProperties xmi:id="DSLlN" isComposite="true" name="ownedElse" opposite="#n7Lp1" type="#BFtK4"/>
+      <ownedProperties xmi:id="nV3mN" isComposite="true" name="ownedThen" opposite="#jUA11" type="#BFtK4"/>
     </ownedClasses>
     <ownedClasses xmi:id="WdWUd" name="Import" superClasses="#0kVqz">
-      <ownedProperties xmi:id="NleVa" name="importedNamespace" type="#MzHoc"/>
+      <ownedProperties xmi:id="NleVa" name="importedNamespace" opposite="#6j3Na" type="#MzHoc"/>
       <ownedProperties xmi:id=",Q0hp" defaultValueString="0" name="xmiidVersion" type="#vCSey"/>
       <ownedProperties xmi:id="ercGZ" isImplicit="true" isRequired="false" name="Model" opposite="#TvdGt" type="#aKB,e"/>
     </ownedClasses>
     <ownedClasses xmi:id="f3gRG" name="InstanceSpecification" superClasses="#0kVqz">
       <ownedComments body="An InstanceSpecification is a model element that represents an instance in a modeled system. An InstanceSpecification can act as a DeploymentTarget in a Deployment relationship, in the case that it represents an instance of a Node. It can also act as a DeployedArtifact, if it represents an instance of an Artifact."/>
-      <ownedProperties xmi:id="hMuKl" name="classes" type="#awKqS">
+      <ownedProperties xmi:id="hMuKl" name="classes" opposite="#1kkgY" type="#awKqS">
         <ownedComments body="The Classifier or Classifiers of the represented instance. If multiple Classifiers are specified, the instance is classified by all of them."/>
       </ownedProperties>
       <ownedProperties xmi:id="L2P86" isComposite="true" name="ownedSlots" opposite="#cLPoY" type="#wTfhG">
         <ownedComments body="A Slot giving the value or values of a StructuralFeature of the instance. An InstanceSpecification can have one Slot per StructuralFeature of its Classifiers, including inherited features. It is not necessary to model a Slot for every StructuralFeature, in which case the InstanceSpecification is a partial description."/>
       </ownedProperties>
-      <ownedProperties xmi:id="Z116E" isComposite="true" isRequired="false" name="ownedSpecification" type="#BfHsW">
+      <ownedProperties xmi:id="Z116E" isComposite="true" isRequired="false" name="ownedSpecification" opposite="#1wN2Y" type="#BfHsW">
         <ownedComments body="A specification of how to compute, derive, or construct the instance."/>
       </ownedProperties>
       <ownedProperties xmi:id="F0BMR" isRequired="false" name="owningPackage" opposite="#M7Qun" type="#3ONqN"/>
@@ -406,11 +406,11 @@
       <ownedInvariants xmi:id="KSMAk" isCallable="true" name="UnsafeSourceCanNotBeNull">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="(not isSafe and ownedIterators->exists(isRequired)) implies&#xA;&#x9;let sourceType = ownedSource?.type in&#xA;&#x9;if sourceType.oclIsKindOf(MapType) then sourceType.oclAsType(MapType).keysAreNullFree else sourceType.oclAsType(CollectionType).isNullFree endif&#xA;&#xA;"/>
       </ownedInvariants>
-      <ownedProperties xmi:id="eb1wJ" isComposite="true" isRequired="false" name="ownedResult" type="#t4j6T"/>
+      <ownedProperties xmi:id="eb1wJ" isComposite="true" isRequired="false" name="ownedResult" opposite="#i9Axv" type="#t4j6T"/>
     </ownedClasses>
     <ownedClasses xmi:id="OZhAb" name="Iteration" superClasses="#Yz,F1">
-      <ownedProperties xmi:id="g2uzG" isComposite="true" name="ownedAccumulators" type="#2ezwj"/>
-      <ownedProperties xmi:id="OpKAs" isComposite="true" name="ownedIterators" type="#2ezwj"/>
+      <ownedProperties xmi:id="g2uzG" isComposite="true" name="ownedAccumulators" opposite="#l2Ze7" type="#2ezwj"/>
+      <ownedProperties xmi:id="OpKAs" isComposite="true" name="ownedIterators" opposite="#nZc1," type="#2ezwj"/>
       <ownedProperties xmi:id="7bx+Q" isImplicit="true" name="LoopExp" opposite="#G2e3S" type="#0ymr3"/>
     </ownedClasses>
     <ownedClasses xmi:id="AprzZ" name="IteratorExp" superClasses="#KhrnS #dXAFV">
@@ -482,9 +482,9 @@
       <ownedProperties xmi:id="sbNVd" isImplicit="true" isRequired="false" name="LoopExp" opposite="#Oa7sP" type="#KhrnS"/>
     </ownedClasses>
     <ownedClasses xmi:id="S9Pb5" name="LambdaType" superClasses="#1mHCJ">
-      <ownedProperties xmi:id="rwWeu" name="contextType" type="#rrwsa"/>
-      <ownedProperties xmi:id="l0V,d" name="parameterType" type="#r5PCb"/>
-      <ownedProperties xmi:id="ZeRhS" name="resultType" type="#rrwsa"/>
+      <ownedProperties xmi:id="rwWeu" name="contextType" opposite="#X5F8c" type="#rrwsa"/>
+      <ownedProperties xmi:id="l0V,d" name="parameterType" opposite="#tU,ip" type="#r5PCb"/>
+      <ownedProperties xmi:id="ZeRhS" name="resultType" opposite="#Z5gQZ" type="#rrwsa"/>
     </ownedClasses>
     <ownedClasses xmi:id="BfHsW" isAbstract="true" name="LanguageExpression" superClasses="#DLUxI">
       <ownedProperties xmi:id="37C4q" isRequired="false" name="body" type="#CPVxu"/>
@@ -504,8 +504,8 @@
       <ownedInvariants xmi:id="nnFkL" isCallable="true" name="TypeIsNotInvalid">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="type &lt;> OclInvalid&#xA;&#xA;"/>
       </ownedInvariants>
-      <ownedProperties xmi:id="p48qJ" isComposite="true" name="ownedIn" type="#BFtK4"/>
-      <ownedProperties xmi:id="AvpRG" isComposite="true" name="ownedVariable" type="#t4j6T"/>
+      <ownedProperties xmi:id="p48qJ" isComposite="true" name="ownedIn" opposite="#dm5C," type="#BFtK4"/>
+      <ownedProperties xmi:id="AvpRG" isComposite="true" name="ownedVariable" opposite="#6HKvR" type="#t4j6T"/>
     </ownedClasses>
     <ownedClasses xmi:id="o0zyX" name="LetVariable" superClasses="#t4j6T">
       <ownedInvariants xmi:id="MQwO9" isCallable="true" name="CompatibleNullityForInitializer">
@@ -519,7 +519,7 @@
       </ownedInvariants>
     </ownedClasses>
     <ownedClasses xmi:id="sQ8qH" name="Library" superClasses="#3ONqN">
-      <ownedProperties xmi:id="Yf0DL" isComposite="true" name="ownedPrecedences" type="#vmqJ7"/>
+      <ownedProperties xmi:id="Yf0DL" isComposite="true" name="ownedPrecedences" opposite="#eJex6" type="#vmqJ7"/>
     </ownedClasses>
     <ownedClasses xsi:type="pivot:DataType" xmi:id="slAkU" instanceClassName="org.eclipse.ocl.pivot.library.LibraryFeature" name="LibraryFeature"
         superClasses="&_0;#jbMkR"/>
@@ -546,27 +546,28 @@
       <ownedInvariants xmi:id="R+NOk" isCallable="true" name="SourceIsIterable">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="ownedSource?.type.oclIsKindOf(IterableType)&#xA;"/>
       </ownedInvariants>
-      <ownedProperties xmi:id="h2RKw" isComposite="true" name="ownedBody" type="#BFtK4"/>
-      <ownedProperties xmi:id="Oa7sP" isComposite="true" name="ownedCoIterators" type="#qjyQj"/>
-      <ownedProperties xmi:id="aRrs3" isComposite="true" name="ownedIterators" type="#Rl6IP"/>
-      <ownedProperties xmi:id="G2e3S" isRequired="false" name="referredIteration" type="#OZhAb"/>
+      <ownedProperties xmi:id="h2RKw" isComposite="true" name="ownedBody" opposite="#fLwep" type="#BFtK4"/>
+      <ownedProperties xmi:id="Oa7sP" isComposite="true" name="ownedCoIterators" opposite="#sbNVd" type="#qjyQj"/>
+      <ownedProperties xmi:id="aRrs3" isComposite="true" name="ownedIterators" opposite="#qs4sI" type="#Rl6IP"/>
+      <ownedProperties xmi:id="G2e3S" isRequired="false" name="referredIteration" opposite="#7bx+Q" type="#OZhAb"/>
     </ownedClasses>
     <ownedClasses xmi:id="bTDI1" name="MapLiteralExp" superClasses="#fKWWp">
-      <ownedProperties xmi:id="C1zzW" isComposite="true" name="ownedParts" type="#LaAZc"/>
+      <ownedProperties xmi:id="C1zzW" isComposite="true" name="ownedParts" opposite="#aqXmL" type="#LaAZc"/>
     </ownedClasses>
     <ownedClasses xmi:id="33CoS" name="MapLiteralPart" superClasses="#t5rpa">
-      <ownedProperties xmi:id="tAq1Y" isComposite="true" name="ownedKey" type="#BFtK4"/>
-      <ownedProperties xmi:id=",hDi+" isComposite="true" name="ownedValue" type="#BFtK4"/>
+      <ownedProperties xmi:id="tAq1Y" isComposite="true" name="ownedKey" opposite="#RWsed" type="#BFtK4"/>
+      <ownedProperties xmi:id=",hDi+" isComposite="true" name="ownedValue" opposite="#P,eVl" type="#BFtK4"/>
       <ownedProperties xmi:id="aqXmL" isImplicit="true" isRequired="false" name="MapLiteralExp" opposite="#C1zzW" type="#bTDI1"/>
     </ownedClasses>
     <ownedClasses xmi:id="nozov" name="MapType" superClasses="#9ppvF">
-      <ownedProperties xmi:id="J5GM0" isRequired="false" name="entryClass" type="#pDcbe">
+      <ownedProperties xmi:id="J5GM0" isRequired="false" name="entryClass" opposite="#9Vw0e" type="#pDcbe">
         <ownedComments body="A type for an entry that may allow an external syntax serialization as a set-of-entryClass."/>
       </ownedProperties>
-      <ownedProperties xmi:id="cBKS6" isDerived="true" isResolveProxies="false" isTransient="true" isVolatile="true" name="keyType" type="#rrwsa"/>
+      <ownedProperties xmi:id="cBKS6" isDerived="true" isResolveProxies="false" isTransient="true" isVolatile="true" name="keyType" opposite="#83I1p"
+          type="#rrwsa"/>
       <ownedProperties xmi:id="W6bzu" defaultValueString="true" name="keysAreNullFree" type="#ZuwnB"/>
       <ownedProperties xmi:id="up7P9" isDerived="true" isResolveProxies="false" isTransient="true" isVolatile="true" name="valueType"
-          type="#rrwsa"/>
+          opposite="#6Rkl+" type="#rrwsa"/>
       <ownedProperties xmi:id="oaq2q" defaultValueString="true" name="valuesAreNullFree" type="#ZuwnB"/>
     </ownedClasses>
     <ownedClasses xmi:id="HRils" name="MessageExp" superClasses="#BFtK4">
@@ -576,20 +577,20 @@
       <ownedInvariants xmi:id="qn7CV" isCallable="true" name="TargetIsNotACollection">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="not ownedTarget.type.oclIsKindOf(CollectionType)&#xA;&#xA;"/>
       </ownedInvariants>
-      <ownedProperties xmi:id="0f9IF" isComposite="true" name="ownedArguments" type="#Ftslp"/>
-      <ownedProperties xmi:id="Ijz5s" isComposite="true" isRequired="false" name="ownedCalledOperation" type="#wuJTT"/>
-      <ownedProperties xmi:id="oSaJE" isComposite="true" isRequired="false" name="ownedSentSignal" type="#X55Qa"/>
-      <ownedProperties xmi:id="ZhQEN" isComposite="true" name="ownedTarget" type="#BFtK4"/>
+      <ownedProperties xmi:id="0f9IF" isComposite="true" name="ownedArguments" opposite="#ibbyn" type="#Ftslp"/>
+      <ownedProperties xmi:id="Ijz5s" isComposite="true" isRequired="false" name="ownedCalledOperation" opposite="#hlb5z" type="#wuJTT"/>
+      <ownedProperties xmi:id="oSaJE" isComposite="true" isRequired="false" name="ownedSentSignal" opposite="#MCEwd" type="#X55Qa"/>
+      <ownedProperties xmi:id="ZhQEN" isComposite="true" name="ownedTarget" opposite="#lmgRf" type="#BFtK4"/>
     </ownedClasses>
     <ownedClasses xmi:id="Sdl6J" name="MessageType" superClasses="#pDcbe">
-      <ownedProperties xmi:id="4bRj1" isRequired="false" name="referredOperation" type="#Yz,F1"/>
-      <ownedProperties xmi:id="7CGi+" isRequired="false" name="referredSignal" type="#ZJWJu"/>
+      <ownedProperties xmi:id="4bRj1" isRequired="false" name="referredOperation" opposite="#rgHOI" type="#Yz,F1"/>
+      <ownedProperties xmi:id="7CGi+" isRequired="false" name="referredSignal" opposite="#9,UhR" type="#ZJWJu"/>
     </ownedClasses>
     <ownedClasses xmi:id="aKB,e" name="Model" superClasses="#MzHoc">
       <ownedComments body="A model captures a view of a physical system. It is an abstraction of the physical system, with a certain purpose. This purpose determines what is to be included in the model and what is irrelevant. Thus the model completely describes those aspects of the physical system that are relevant to the purpose of the model, at the appropriate level of detail."/>
       <ownedProperties xmi:id="rZ9f7" isRequired="false" name="externalURI" type="#CPVxu"/>
-      <ownedProperties xmi:id="TvdGt" isComposite="true" name="ownedImports" type="#SiPAU"/>
-      <ownedProperties xmi:id="897M1" isComposite="true" name="ownedPackages" type="#4WjM+"/>
+      <ownedProperties xmi:id="TvdGt" isComposite="true" name="ownedImports" opposite="#ercGZ" type="#SiPAU"/>
+      <ownedProperties xmi:id="897M1" isComposite="true" name="ownedPackages" opposite="#aNkee" type="#4WjM+"/>
       <ownedProperties xmi:id="zJFNP" defaultValueString="0" name="xmiidVersion" type="#vCSey"/>
       <ownedProperties xmi:id="n0An," isImplicit="true" name="CompleteModel" opposite="#AF1+9" type="#zUrgD"/>
     </ownedClasses>
@@ -605,15 +606,15 @@
     </ownedClasses>
     <ownedClasses xmi:id="MzHoc" isAbstract="true" name="Namespace" superClasses="#0kVqz">
       <ownedComments body="A Namespace is an Element in a model that owns and/or imports a set of NamedElements that can be identified by name."/>
-      <ownedProperties xmi:id="FS8OY" isComposite="true" name="ownedConstraints" type="#31l4V">
+      <ownedProperties xmi:id="FS8OY" isComposite="true" name="ownedConstraints" opposite="#gl,un" type="#31l4V">
         <ownedComments body="Specifies a set of Constraints owned by this Namespace."/>
       </ownedProperties>
       <ownedProperties xmi:id="6vXcR" isImplicit="true" name="Constraint" opposite="#dmddj" type="#Y1h4V"/>
       <ownedProperties xmi:id="6j3Na" isImplicit="true" name="Import" opposite="#NleVa" type="#gfUzv"/>
     </ownedClasses>
     <ownedClasses xmi:id="cmSzw" isAbstract="true" name="NavigationCallExp" superClasses="#6KunE">
-      <ownedProperties xmi:id="Ts86V" isRequired="false" name="navigationSource" type="#Gm0Mj"/>
-      <ownedProperties xmi:id="ND3QN" name="qualifiers" type="#Ftslp"/>
+      <ownedProperties xmi:id="Ts86V" isRequired="false" name="navigationSource" opposite="#6EjLW" type="#Gm0Mj"/>
+      <ownedProperties xmi:id="ND3QN" name="qualifiers" opposite="#f4Az4" type="#Ftslp"/>
     </ownedClasses>
     <ownedClasses xmi:id="Ge,OM" name="NullLiteralExp" superClasses="#mKorp"/>
     <ownedClasses xmi:id="MFRWm" isAbstract="true" name="NumericLiteralExp" superClasses="#mKorp"/>
@@ -623,7 +624,8 @@
       </ownedInvariants>
       <ownedOperations xmi:id="cvF4g" name="isNonNull" type="#ZuwnB"/>
       <ownedOperations xmi:id="DBwi+" name="isNull" type="#ZuwnB"/>
-      <ownedProperties xmi:id="s8mFO" isRequired="false" isResolveProxies="false" isTransient="true" name="typeValue" type="#rrwsa">
+      <ownedProperties xmi:id="s8mFO" isRequired="false" isResolveProxies="false" isTransient="true" name="typeValue" opposite="#onVlb"
+          type="#rrwsa">
         <ownedComments body="When oclType() returns a Class value with a known actual type, the typeValue propagates the known type."/>
       </ownedProperties>
       <ownedProperties xmi:id="0VFpK" isImplicit="true" isRequired="false" name="CallExp" opposite="#IjXu4" type="#QJrde"/>
@@ -661,7 +663,7 @@
       <ownedInvariants xmi:id="ko3xJ" isCallable="true" name="UniquePreconditionName">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="ownedPreconditions->isUnique(name)&#xA;"/>
       </ownedInvariants>
-      <ownedProperties xmi:id="qfUk8" isComposite="true" isRequired="false" name="bodyExpression" type="#BfHsW"/>
+      <ownedProperties xmi:id="qfUk8" isComposite="true" isRequired="false" name="bodyExpression" opposite="#SOZSu" type="#BfHsW"/>
       <ownedProperties xmi:id="S+5tf" defaultValueString="false" name="isInvalidating" type="#ZuwnB">
         <ownedComments body="Whether this operation may return an invalid result for non-invalid (or invalid if also validating) inputs."/>
       </ownedProperties>
@@ -682,11 +684,11 @@
       <ownedProperties xmi:id="Mp0MK" isRequired="false" name="owningClass" opposite="#OZRpi" type="#pDcbe">
         <ownedComments body="The Class that owns this operation, if any."/>
       </ownedProperties>
-      <ownedProperties xmi:id="aQIF3" isRequired="false" name="precedence" type="#7Wa4a"/>
-      <ownedProperties xmi:id="sg5YQ" name="raisedExceptions" type="#Mb2vG">
+      <ownedProperties xmi:id="aQIF3" isRequired="false" name="precedence" opposite="#0bJBA" type="#7Wa4a"/>
+      <ownedProperties xmi:id="sg5YQ" name="raisedExceptions" opposite="#iPrT3" type="#Mb2vG">
         <ownedComments body="The Types representing exceptions that may be raised during an invocation of this BehavioralFeature.&#xA;&#xA;The Types representing exceptions that may be raised during an invocation of this operation."/>
       </ownedProperties>
-      <ownedProperties xmi:id="Ss1Ep" name="redefinedOperations" type="#xI41z">
+      <ownedProperties xmi:id="Ss1Ep" name="redefinedOperations" opposite="#lZeto" type="#xI41z">
         <ownedComments body="The Operations that are redefined by this Operation."/>
       </ownedProperties>
       <ownedProperties xmi:id="AwSDc" isImplicit="true" name="CallOperationAction" opposite="#vrBiI" type="#qsnI0"/>
@@ -712,8 +714,8 @@
         <bodyExpression xsi:type="pivot:ExpressionInOCL" body="false "/>
       </ownedOperations>
       <ownedProperties xmi:id="eWL7K" defaultValueString="true" name="isVirtual" type="#ZuwnB"/>
-      <ownedProperties xmi:id="O9xIX" isComposite="true" name="ownedArguments" type="#Ftslp"/>
-      <ownedProperties xmi:id="ztMvO" isRequired="false" name="referredOperation" type="#Yz,F1"/>
+      <ownedProperties xmi:id="O9xIX" isComposite="true" name="ownedArguments" opposite="#EHyAZ" type="#Ftslp"/>
+      <ownedProperties xmi:id="ztMvO" isRequired="false" name="referredOperation" opposite="#CAbHc" type="#Yz,F1"/>
     </ownedClasses>
     <ownedClasses xmi:id="Uj1fg" name="OppositePropertyCallExp" superClasses="#cmSzw">
       <ownedInvariants xmi:id="u6M9K" isCallable="true" name="SafeSourceCanBeNull">
@@ -722,7 +724,7 @@
       <ownedInvariants xmi:id="qLGNt" isCallable="true" name="UnsafeSourceCanNotBeNull">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="(ownedSource &lt;> null) and not isSafe implies ownedSource.isNonNull()&#xA;&#xA;"/>
       </ownedInvariants>
-      <ownedProperties xmi:id="is7rW" isRequired="false" name="referredProperty" type="#Gm0Mj"/>
+      <ownedProperties xmi:id="is7rW" isRequired="false" name="referredProperty" opposite="#zB7r3" type="#Gm0Mj"/>
     </ownedClasses>
     <ownedClasses xmi:id="A10J5" name="OrderedSetType" superClasses="#pawWx"/>
     <ownedClasses xmi:id="WaoLl" name="OrphanCompletePackage" superClasses="#+gDEJ">
@@ -733,7 +735,7 @@
       <ownedProperties xmi:id=",KgOn" isRequired="false" name="URI" type="#CPVxu">
         <ownedComments body="Provides an identifier for the package that can be used for many purposes. A URI is the universally unique identification of the package following the IETF URI specification, RFC 2396 http://www.ietf.org/rfc/rfc2396.txt and it must comply with those syntax rules."/>
       </ownedProperties>
-      <ownedProperties xmi:id="EmlXL" name="importedPackages" type="#4WjM+"/>
+      <ownedProperties xmi:id="EmlXL" name="importedPackages" opposite="#QYeXX" type="#4WjM+"/>
       <ownedProperties xmi:id="q4DYc" isRequired="false" name="nsPrefix" type="#CPVxu"/>
       <ownedProperties xmi:id="0MELU" isComposite="true" name="ownedClasses" opposite="#nvShn" type="#awKqS">
         <ownedComments body="References the packaged elements that are Types."/>
@@ -783,7 +785,7 @@
     <ownedClasses xmi:id="mKorp" isAbstract="true" name="PrimitiveLiteralExp" superClasses="#fKWWp"/>
     <ownedClasses xmi:id="ywnRJ" name="PrimitiveType" superClasses="#1mHCJ">
       <ownedComments body="A PrimitiveType defines a predefined DataType, without any substructure. A PrimitiveType may have an algebra and operations defined outside of UML, for example, mathematically."/>
-      <ownedProperties xmi:id="XXWHz" name="coercions" type="#ELvCY"/>
+      <ownedProperties xmi:id="XXWHz" name="coercions" opposite="#EuUDV" type="#ELvCY"/>
     </ownedClasses>
     <ownedClasses xmi:id="akiUr" name="Profile" superClasses="#3ONqN">
       <ownedComments body="A profile defines limited extensions to a reference metamodel with the purpose of adapting the metamodel to a specific platform or domain."/>
@@ -828,19 +830,19 @@
       <ownedProperties xmi:id="GiXbV" defaultValueString="false" name="isTransient" type="#ZuwnB"/>
       <ownedProperties xmi:id="VMuUC" defaultValueString="false" name="isUnsettable" type="#ZuwnB"/>
       <ownedProperties xmi:id="sjznw" defaultValueString="false" name="isVolatile" type="#ZuwnB"/>
-      <ownedProperties xmi:id="6HsoQ" name="keys" type="#vqSV7"/>
-      <ownedProperties xmi:id="trcPF" isRequired="false" name="opposite" type="#Gm0Mj">
+      <ownedProperties xmi:id="6HsoQ" name="keys" opposite="#neBea" type="#vqSV7"/>
+      <ownedProperties xmi:id="trcPF" isRequired="false" name="opposite" opposite="#MZVtK" type="#Gm0Mj">
         <ownedComments body="In the case where the Property is one end of a binary association this gives the other end."/>
       </ownedProperties>
-      <ownedProperties xmi:id="jsqM," isComposite="true" isRequired="false" name="ownedExpression" type="#BfHsW"/>
+      <ownedProperties xmi:id="jsqM," isComposite="true" isRequired="false" name="ownedExpression" opposite="#VkNq6" type="#BfHsW"/>
       <ownedProperties xmi:id="CxBFt" isRequired="false" name="owningClass" opposite="#VusMr" type="#pDcbe">
         <ownedComments body="The Class that owns this Property, if any."/>
       </ownedProperties>
-      <ownedProperties xmi:id="PJegU" name="redefinedProperties" type="#vqSV7">
+      <ownedProperties xmi:id="PJegU" name="redefinedProperties" opposite="#6nfk1" type="#vqSV7">
         <ownedComments body="The properties that are redefined by this property, if any."/>
       </ownedProperties>
-      <ownedProperties xmi:id="MErVe" isRequired="false" name="referredProperty" type="#Gm0Mj"/>
-      <ownedProperties xmi:id="sOLOj" name="subsettedProperty" type="#vqSV7">
+      <ownedProperties xmi:id="MErVe" isRequired="false" name="referredProperty" opposite="#lE6Y6" type="#Gm0Mj"/>
+      <ownedProperties xmi:id="sOLOj" name="subsettedProperty" opposite="#FObkc" type="#vqSV7">
         <ownedComments body="The properties of which this Property is constrained to be a subset, if any."/>
       </ownedProperties>
       <ownedProperties xmi:id="EpwEv" isImplicit="true" name="DynamicProperty" opposite="#vGP79" type="#XZHUM"/>
@@ -874,7 +876,7 @@
       <ownedOperations xmi:id="XCWxk" name="getSpecializedReferredPropertyType" type="#rrwsa">
         <bodyExpression xsi:type="pivot:ExpressionInOCL" body="referredProperty?.type.oclAsType(Class) "/>
       </ownedOperations>
-      <ownedProperties xmi:id="tl5uo" isRequired="false" name="referredProperty" type="#Gm0Mj"/>
+      <ownedProperties xmi:id="tl5uo" isRequired="false" name="referredProperty" opposite="#ap542" type="#Gm0Mj"/>
     </ownedClasses>
     <ownedClasses xmi:id="EkdzF" name="Pseudostate" superClasses="#VVKEz">
       <ownedComments body="A Pseudostate is an abstraction that encompasses different types of transient Vertices in the StateMachine graph. A StateMachine instance never comes to rest in a Pseudostate, instead, it will exit and enter the Pseudostate within a single run-to-completion step."/>
@@ -914,7 +916,7 @@
     </ownedClasses>
     <ownedClasses xmi:id="lqBOs" name="Region" superClasses="#MzHoc">
       <ownedComments body="A Region is a top-level part of a StateMachine or a composite State, that serves as a container for the Vertices and Transitions of the StateMachine. A StateMachine or composite State may contain multiple Regions representing behaviors that may occur in parallel."/>
-      <ownedProperties xmi:id="24ICH" isRequired="false" name="extendedRegion" type="#lqBOs">
+      <ownedProperties xmi:id="24ICH" isRequired="false" name="extendedRegion" opposite="#YqUAP" type="#lqBOs">
         <ownedComments body="The region of which this region is an extension."/>
       </ownedProperties>
       <ownedProperties xmi:id="Wxw67" isComposite="true" name="ownedSubvertexes" opposite="#J1dTn" type="#mWhS,">
@@ -950,7 +952,7 @@
       </ownedOperations>
     </ownedClasses>
     <ownedClasses xmi:id="X55Qa" name="SendSignalAction" superClasses="#0kVqz">
-      <ownedProperties xmi:id="7gEy2" name="signal" type="#ZJWJu"/>
+      <ownedProperties xmi:id="7gEy2" name="signal" opposite="#rLDL," type="#ZJWJu"/>
       <ownedProperties xmi:id="MCEwd" isImplicit="true" isRequired="false" name="MessageExp" opposite="#oSaJE" type="#HRils"/>
     </ownedClasses>
     <ownedClasses xmi:id="M5weU" name="SequenceType" superClasses="#pawWx"/>
@@ -974,7 +976,7 @@
       <ownedInvariants xmi:id="W4vXB" isCallable="true" name="TypeIsNotInvalid">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="type &lt;> OclInvalid&#xA;&#xA;"/>
       </ownedInvariants>
-      <ownedProperties xmi:id="pLK0G" isComposite="true" name="ownedParts" type="#w7lKF"/>
+      <ownedProperties xmi:id="pLK0G" isComposite="true" name="ownedParts" opposite="#GFkDD" type="#w7lKF"/>
       <ownedProperties xmi:id="f0RBF" isRequired="false" name="value" type="#CPVxu"/>
     </ownedClasses>
     <ownedClasses xmi:id="kTahU" name="ShadowPart" superClasses="#j7EI0">
@@ -987,8 +989,8 @@
       <ownedInvariants xmi:id="i+33p" isCallable="true" name="TypeIsNotNull">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="type &lt;> null&#xA;&#xA;"/>
       </ownedInvariants>
-      <ownedProperties xmi:id="BteKG" isComposite="true" name="ownedInit" type="#BFtK4"/>
-      <ownedProperties xmi:id="ybRzT" name="referredProperty" type="#Gm0Mj"/>
+      <ownedProperties xmi:id="BteKG" isComposite="true" name="ownedInit" opposite="#79Ber" type="#BFtK4"/>
+      <ownedProperties xmi:id="ybRzT" name="referredProperty" opposite="#Dyftr" type="#Gm0Mj"/>
       <ownedProperties xmi:id="GFkDD" isImplicit="true" isRequired="false" name="ShadowExp" opposite="#pLK0G" type="#Oxaac"/>
     </ownedClasses>
     <ownedClasses xmi:id="ZJWJu" name="Signal" superClasses="#pDcbe">
@@ -998,10 +1000,10 @@
     </ownedClasses>
     <ownedClasses xmi:id="vWmsa" name="Slot" superClasses="#t5rpa">
       <ownedComments body="A Slot designates that an entity modeled by an InstanceSpecification has a value or values for a specific StructuralFeature."/>
-      <ownedProperties xmi:id="4EW7Q" name="definingProperty" type="#Gm0Mj">
+      <ownedProperties xmi:id="4EW7Q" name="definingProperty" opposite="#fHmW6" type="#Gm0Mj">
         <ownedComments body="The StructuralFeature that specifies the values that may be held by the Slot."/>
       </ownedProperties>
-      <ownedProperties xmi:id="y+QK3" isComposite="true" name="ownedValues" type="#3FESv">
+      <ownedProperties xmi:id="y+QK3" isComposite="true" name="ownedValues" opposite="#+9yKd" type="#3FESv">
         <ownedComments body="The value or values held by the Slot."/>
       </ownedProperties>
       <ownedProperties xmi:id="cLPoY" name="owningInstance" opposite="#L2P86" type="#f3gRG">
@@ -1035,13 +1037,13 @@
       <ownedProperties xmi:id="MikAv" isComposite="true" name="ownedDeferrableTriggers" opposite="#yBMfq" type="#aZ9+A">
         <ownedComments body="A list of Triggers that are candidates to be retained by the StateMachine if they trigger no Transitions out of the State (not consumed). A deferred Trigger is retained until the StateMachine reaches a State configuration where it is no longer deferred."/>
       </ownedProperties>
-      <ownedProperties xmi:id="RnPpL" isComposite="true" isRequired="false" name="ownedDoActivity" type="#D4Bd4">
+      <ownedProperties xmi:id="RnPpL" isComposite="true" isRequired="false" name="ownedDoActivity" opposite="#5uByx" type="#D4Bd4">
         <ownedComments body="An optional Behavior that is executed while being in the State. The execution starts when this State is entered, and ceases either by itself when done, or when the State is exited, whichever comes first."/>
       </ownedProperties>
-      <ownedProperties xmi:id="fFtPi" isComposite="true" isRequired="false" name="ownedEntry" type="#D4Bd4">
+      <ownedProperties xmi:id="fFtPi" isComposite="true" isRequired="false" name="ownedEntry" opposite="#bCQ,P" type="#D4Bd4">
         <ownedComments body="An optional Behavior that is executed whenever this State is entered regardless of the Transition taken to reach the State. If defined, entry Behaviors are always executed to completion prior to any internal Behavior or Transitions performed within the State."/>
       </ownedProperties>
-      <ownedProperties xmi:id="1HRna" isComposite="true" isRequired="false" name="ownedExit" type="#D4Bd4">
+      <ownedProperties xmi:id="1HRna" isComposite="true" isRequired="false" name="ownedExit" opposite="#1SMka" type="#D4Bd4">
         <ownedComments body="An optional Behavior that is executed whenever this State is exited regardless of which Transition was taken out of the State. If defined, exit Behaviors are always executed to completion only after all internal and transition Behaviors have completed execution."/>
       </ownedProperties>
       <ownedProperties xmi:id="sYtKV" isComposite="true" name="ownedRegions" opposite="#+,zLm" type="#25dAe">
@@ -1050,7 +1052,7 @@
       <ownedProperties xmi:id="GT13x" isComposite="true" isRequired="false" name="ownedStateInvariant" opposite="#Dd0RI" type="#Om,AG">
         <ownedComments body="Specifies conditions that are always true when this State is the current State. In ProtocolStateMachines state invariants are additional conditions to the preconditions of the outgoing Transitions, and to the postcondition of the incoming Transitions."/>
       </ownedProperties>
-      <ownedProperties xmi:id="Np,xe" isRequired="false" name="redefinedState" type="#CwtUf">
+      <ownedProperties xmi:id="Np,xe" isRequired="false" name="redefinedState" opposite="#gEOG+" type="#CwtUf">
         <ownedComments body="The State of which this State is a redefinition."/>
       </ownedProperties>
       <ownedProperties xmi:id="e,o0Z" isRequired="false" name="submachines" opposite="#ME7uH" type="#n412f">
@@ -1063,11 +1065,11 @@
       <ownedInvariants xmi:id="JS1kF" isCallable="true" name="TypeIsNotInvalid">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="type &lt;> OclInvalid&#xA;&#xA;"/>
       </ownedInvariants>
-      <ownedProperties xmi:id="h0hFN" isRequired="false" name="referredState" type="#CwtUf"/>
+      <ownedProperties xmi:id="h0hFN" isRequired="false" name="referredState" opposite="#+VIi2" type="#CwtUf"/>
     </ownedClasses>
     <ownedClasses xmi:id="n412f" name="StateMachine" superClasses="#D4Bd4">
       <ownedComments body="StateMachines can be used to express event-driven behaviors of parts of a system. Behavior is modeled as a traversal of a graph of Vertices interconnected by one or more joined Transition arcs that are triggered by the dispatching of successive Event occurrences. During this traversal, the StateMachine may execute a sequence of Behaviors associated with various elements of the StateMachine."/>
-      <ownedProperties xmi:id="n4Oqe" name="extendedStateMachines" type="#oaFxR">
+      <ownedProperties xmi:id="n4Oqe" name="extendedStateMachines" opposite="#VzbL7" type="#oaFxR">
         <ownedComments body="The StateMachines of which this is an extension."/>
       </ownedProperties>
       <ownedProperties xmi:id="JBdoI" isComposite="true" name="ownedConnectionPoints" opposite="#+ypFe" type="#91QED">
@@ -1106,13 +1108,13 @@
         <ownedComments body="The TemplateableElement that is bound by this TemplateBinding."/>
       </ownedProperties>
       <ownedProperties xmi:id="imMg6" isDerived="true" isReadOnly="true" isResolveProxies="false" isTransient="true" isVolatile="true"
-          name="templateSignature" type="#PzZ69">
+          name="templateSignature" opposite="#IhiwR" type="#PzZ69">
         <ownedComments body="The TemplateSignature for the template that is the target of this TemplateBinding."/>
       </ownedProperties>
     </ownedClasses>
     <ownedClasses xmi:id="Afray" name="TemplateParameter" superClasses="#rrwsa">
       <ownedComments body="A TemplateParameter exposes a ParameterableElement as a formal parameter of a template."/>
-      <ownedProperties xmi:id="zfRXZ" name="constrainingClasses" type="#awKqS"/>
+      <ownedProperties xmi:id="zfRXZ" name="constrainingClasses" opposite="#Jh7cO" type="#awKqS"/>
       <ownedProperties xmi:id="UbaKU" name="owningSignature" opposite="#aSQuO" type="#PzZ69">
         <ownedComments body="The TemplateSignature that owns this TemplateParameter."/>
       </ownedProperties>
@@ -1120,13 +1122,13 @@
     </ownedClasses>
     <ownedClasses xmi:id="dBke1" name="TemplateParameterSubstitution" superClasses="#t5rpa">
       <ownedComments body="A TemplateParameterSubstitution relates the actual parameter to a formal TemplateParameter as part of a template binding."/>
-      <ownedProperties xmi:id="PUrpg" name="actual" type="#rrwsa">
+      <ownedProperties xmi:id="PUrpg" name="actual" opposite="#F+7My" type="#rrwsa">
         <ownedComments body="The ParameterableElement that is the actual parameter for this TemplateParameterSubstitution."/>
       </ownedProperties>
-      <ownedProperties xmi:id="wNw1p" name="formal" type="#Afray">
+      <ownedProperties xmi:id="wNw1p" name="formal" opposite="#tGjEK" type="#Afray">
         <ownedComments body="The formal TemplateParameter that is associated with this TemplateParameterSubstitution."/>
       </ownedProperties>
-      <ownedProperties xmi:id="gMCx3" isComposite="true" isRequired="false" name="ownedWildcard" type="#lfR8C"/>
+      <ownedProperties xmi:id="gMCx3" isComposite="true" isRequired="false" name="ownedWildcard" opposite="#OM4eT" type="#lfR8C"/>
       <ownedProperties xmi:id="KfPB+" name="owningBinding" opposite="#1KEI9" type="#cwheG">
         <ownedComments body="The TemplateBinding that owns this TemplateParameterSubstitution."/>
       </ownedProperties>
@@ -1149,7 +1151,8 @@
       <ownedProperties xmi:id="At1rg" isComposite="true" isRequired="false" name="ownedSignature" opposite="#rrxfF" type="#PzZ69">
         <ownedComments body="The optional TemplateSignature specifying the formal TemplateParameters for this TemplateableElement. If a TemplateableElement has a TemplateSignature, then it is a template."/>
       </ownedProperties>
-      <ownedProperties xmi:id="5r+xG" isRequired="false" isResolveProxies="false" isTransient="true" name="unspecializedElement" type="#5r5y9"/>
+      <ownedProperties xmi:id="5r+xG" isRequired="false" isResolveProxies="false" isTransient="true" name="unspecializedElement" opposite="#po3JH"
+          type="#5r5y9"/>
       <ownedProperties xmi:id="po3JH" isImplicit="true" name="TemplateableElement" opposite="#5r+xG" type="#LuTS6"/>
     </ownedClasses>
     <ownedClasses xsi:type="pivot:DataType" xmi:id="xCIJH" instanceClassName="java.lang.Throwable" name="Throwable" superClasses="&_0;#jbMkR"/>
@@ -1195,7 +1198,7 @@
       <ownedProperties xmi:id="uYkoH" isRequired="false" name="owningTransition" opposite="#GEsLw" type="#GEFmq"/>
     </ownedClasses>
     <ownedClasses xmi:id="HhIN2" name="TupleLiteralExp" superClasses="#fKWWp">
-      <ownedProperties xmi:id="+L,3k" isComposite="true" name="ownedParts" type="#,dxc+"/>
+      <ownedProperties xmi:id="+L,3k" isComposite="true" name="ownedParts" opposite="#K,8sA" type="#,dxc+"/>
     </ownedClasses>
     <ownedClasses xmi:id="LgkF0" name="TupleLiteralPart" superClasses="#PT,bz">
       <ownedInvariants xmi:id="YrOU3" isCallable="true" name="CompatibleInitialiserType">
@@ -1204,7 +1207,7 @@
       <ownedInvariants xmi:id="f7Bys" isCallable="true" name="TypeIsNotInvalid">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="type &lt;> OclInvalid&#xA;&#xA;"/>
       </ownedInvariants>
-      <ownedProperties xmi:id="M3JBq" isComposite="true" isRequired="false" name="ownedInit" type="#BFtK4"/>
+      <ownedProperties xmi:id="M3JBq" isComposite="true" isRequired="false" name="ownedInit" opposite="#iKMCL" type="#BFtK4"/>
       <ownedProperties xmi:id="K,8sA" isImplicit="true" isRequired="false" name="TupleLiteralExp" opposite="#+L,3k" type="#HhIN2"/>
     </ownedClasses>
     <ownedClasses xmi:id="T6Ypd" name="TupleType" superClasses="#1mHCJ"/>
@@ -1238,7 +1241,7 @@
       <ownedProperties xmi:id="P4B7P" isImplicit="true" name="WildcardType" opposite="#lraqD" type="#XmaUE"/>
     </ownedClasses>
     <ownedClasses xmi:id="0,h6K" name="TypeExp" superClasses="#BFtK4 #dXAFV">
-      <ownedProperties xmi:id="nedD3" isRequired="false" name="referredType" type="#rrwsa"/>
+      <ownedProperties xmi:id="nedD3" isRequired="false" name="referredType" opposite="#nSmLq" type="#rrwsa"/>
     </ownedClasses>
     <ownedClasses xmi:id="j7EI0" isAbstract="true" name="TypedElement" superClasses="#0kVqz">
       <ownedComments body="A TypedElement is a NamedElement that may have a Type specified for it."/>
@@ -1248,7 +1251,7 @@
       </ownedOperations>
       <ownedProperties xmi:id="YqNZL" isDerived="true" isReadOnly="true" isTransient="true" isVolatile="true" name="isMany" type="#ZuwnB"/>
       <ownedProperties xmi:id="Yr8BL" defaultValueString="true" name="isRequired" type="#ZuwnB"/>
-      <ownedProperties xmi:id="pcY9R" isRequired="false" name="type" type="#rrwsa">
+      <ownedProperties xmi:id="pcY9R" isRequired="false" name="type" opposite="#,WhCE" type="#rrwsa">
         <ownedComments body="The type of the TypedElement."/>
       </ownedProperties>
     </ownedClasses>
@@ -1286,8 +1289,8 @@
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="true&#xA;&#xA;"/>
       </ownedInvariants>
       <ownedProperties xmi:id="AdoeR" defaultValueString="false" name="isImplicit" type="#ZuwnB"/>
-      <ownedProperties xmi:id="mNUYa" isComposite="true" isRequired="false" name="ownedInit" type="#BFtK4"/>
-      <ownedProperties xmi:id="zeTJY" isRequired="false" name="representedParameter" type="#as9eG"/>
+      <ownedProperties xmi:id="mNUYa" isComposite="true" isRequired="false" name="ownedInit" opposite="#EjL3q" type="#BFtK4"/>
+      <ownedProperties xmi:id="zeTJY" isRequired="false" name="representedParameter" opposite="#U1Kb0" type="#as9eG"/>
       <ownedProperties xmi:id="y7+O9" isImplicit="true" isRequired="false" name="ExpressionInOCL" opposite="#eubAp" type="#sFfJa"/>
       <ownedProperties xmi:id="1jSjN" isImplicit="true" isRequired="false" name="ExpressionInOCL" opposite="#DrnVr" type="#sFfJa"/>
       <ownedProperties xmi:id="a3p9g" isImplicit="true" isRequired="false" name="ExpressionInOCL" opposite="#2tYZA" type="#sFfJa"/>
@@ -1305,7 +1308,8 @@
       <ownedInvariants xmi:id="hvDY2" isCallable="true" name="TypeIsNotNull">
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="type &lt;> null&#xA;&#xA;"/>
       </ownedInvariants>
-      <ownedProperties xmi:id="CyT1w" isRequired="false" isResolveProxies="false" isTransient="true" name="typeValue" type="#rrwsa"/>
+      <ownedProperties xmi:id="CyT1w" isRequired="false" isResolveProxies="false" isTransient="true" name="typeValue" opposite="#21n2W"
+          type="#rrwsa"/>
       <ownedProperties xmi:id="HfDy3" isImplicit="true" name="VariableExp" opposite="#vnw1O" type="#ceQJX"/>
     </ownedClasses>
     <ownedClasses xmi:id="y1AoJ" name="VariableExp" superClasses="#BFtK4 #dXAFV">
@@ -1313,7 +1317,7 @@
         <ownedSpecification xsi:type="pivot:ExpressionInOCL" body="type &lt;> OclInvalid&#xA;&#xA;"/>
       </ownedInvariants>
       <ownedProperties xmi:id="x1ilH" defaultValueString="false" name="isImplicit" type="#ZuwnB"/>
-      <ownedProperties xmi:id="vnw1O" isRequired="false" name="referredVariable" type="#PT,bz"/>
+      <ownedProperties xmi:id="vnw1O" isRequired="false" name="referredVariable" opposite="#HfDy3" type="#PT,bz"/>
     </ownedClasses>
     <ownedClasses xmi:id="VVKEz" isAbstract="true" name="Vertex" superClasses="#0kVqz">
       <ownedComments body="A Vertex is an abstraction of a node in a StateMachine graph. It can be the source or destination of any number of Transitions."/>
@@ -1331,8 +1335,8 @@
         superClasses="&_0;#zfDWR"/>
     <ownedClasses xmi:id="fad2o" name="VoidType" superClasses="#pDcbe"/>
     <ownedClasses xmi:id="lfR8C" name="WildcardType" superClasses="#pDcbe">
-      <ownedProperties xmi:id="mvH+v" isRequired="false" name="lowerBound" type="#rrwsa"/>
-      <ownedProperties xmi:id="lraqD" isRequired="false" name="upperBound" type="#rrwsa"/>
+      <ownedProperties xmi:id="mvH+v" isRequired="false" name="lowerBound" opposite="#WU9EG" type="#rrwsa"/>
+      <ownedProperties xmi:id="lraqD" isRequired="false" name="upperBound" opposite="#P4B7P" type="#rrwsa"/>
       <ownedProperties xmi:id="OM4eT" isImplicit="true" isRequired="false" name="TemplateParameterSubstitution" opposite="#gMCx3" type="#dBke1"/>
     </ownedClasses>
   </ownedPackages>
diff --git a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/serializer/AbstractOCLinEcoreSemanticSequencer.java b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/serializer/AbstractOCLinEcoreSemanticSequencer.java
index cbbbd51..b431a48 100644
--- a/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/serializer/AbstractOCLinEcoreSemanticSequencer.java
+++ b/plugins/org.eclipse.ocl.xtext.oclinecore/src-gen/org/eclipse/ocl/xtext/oclinecore/serializer/AbstractOCLinEcoreSemanticSequencer.java
@@ -774,18 +774,18 @@
 	 *         (ownedParameters+=ParameterCS ownedParameters+=ParameterCS*)?
 	 *         ownedType=TypedMultiplicityRefCS?
 	 *         (ownedExceptions+=TypedRefCS ownedExceptions+=TypedRefCS*)?
-	 *         qualifiers+='!unique'?
+	 *         qualifiers+='!derived'?
 	 *         (
 	 *             (
 	 *                 qualifiers+='derived' |
-	 *                 qualifiers+='!derived' |
 	 *                 qualifiers+='ordered' |
 	 *                 qualifiers+='!ordered' |
 	 *                 qualifiers+='transient' |
 	 *                 qualifiers+='!transient' |
-	 *                 qualifiers+='unique'
+	 *                 qualifiers+='unique' |
+	 *                 qualifiers+='!unique'
 	 *             )?
-	 *             qualifiers+='!unique'?
+	 *             qualifiers+='!derived'?
 	 *         )*
 	 *         (
 	 *             ownedAnnotations+=AnnotationElementCS |
@@ -896,15 +896,15 @@
 	 *         referredOpposite=[Property|UnrestrictedName]?
 	 *         ownedType=TypedMultiplicityRefCS?
 	 *         default=SINGLE_QUOTED_STRING?
-	 *         qualifiers+='composes'?
+	 *         qualifiers+='readonly'?
 	 *         (
 	 *             (
+	 *                 qualifiers+='composes' |
 	 *                 qualifiers+='!composes' |
 	 *                 qualifiers+='derived' |
 	 *                 qualifiers+='!derived' |
 	 *                 qualifiers+='ordered' |
 	 *                 qualifiers+='!ordered' |
-	 *                 qualifiers+='readonly' |
 	 *                 qualifiers+='!readonly' |
 	 *                 qualifiers+='resolve' |
 	 *                 qualifiers+='!resolve' |
@@ -917,7 +917,7 @@
 	 *                 qualifiers+='volatile' |
 	 *                 qualifiers+='!volatile'
 	 *             )?
-	 *             qualifiers+='composes'?
+	 *             qualifiers+='readonly'?
 	 *         )*
 	 *         (
 	 *             (
diff --git a/tests/org.eclipse.ocl.examples.xtext.tests/emf-gen/org/eclipse/ocl/examples/xtext/tests/codegen/company/CodegencompanyTables.java b/tests/org.eclipse.ocl.examples.xtext.tests/emf-gen/org/eclipse/ocl/examples/xtext/tests/codegen/company/CodegencompanyTables.java
index 6afd2b4..1aab427 100644
--- a/tests/org.eclipse.ocl.examples.xtext.tests/emf-gen/org/eclipse/ocl/examples/xtext/tests/codegen/company/CodegencompanyTables.java
+++ b/tests/org.eclipse.ocl.examples.xtext.tests/emf-gen/org/eclipse/ocl/examples/xtext/tests/codegen/company/CodegencompanyTables.java
@@ -23,6 +23,7 @@
  *******************************************************************************/
 package org.eclipse.ocl.examples.xtext.tests.codegen.company;
 
+import java.lang.String;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.jdt.annotation.NonNull;
diff --git a/tests/org.eclipse.ocl.examples.xtext.tests/emf-gen/org/eclipse/ocl/examples/xtext/tests/codegen/company/impl/EmployeeImpl.java b/tests/org.eclipse.ocl.examples.xtext.tests/emf-gen/org/eclipse/ocl/examples/xtext/tests/codegen/company/impl/EmployeeImpl.java
index 82dda73..52fda59 100644
--- a/tests/org.eclipse.ocl.examples.xtext.tests/emf-gen/org/eclipse/ocl/examples/xtext/tests/codegen/company/impl/EmployeeImpl.java
+++ b/tests/org.eclipse.ocl.examples.xtext.tests/emf-gen/org/eclipse/ocl/examples/xtext/tests/codegen/company/impl/EmployeeImpl.java
@@ -315,8 +315,7 @@
 		final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);

 		final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();

 		final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_company_c_c_Employee_0 = idResolver.getClass(CodegencompanyTables.CLSSid_Employee, null);

-		final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class symbol_0 = TYP_company_c_c_Employee_0;

-		final /*@NonInvalid*/ @NonNull SetValue allInstances = ClassifierAllInstancesOperation.INSTANCE.evaluate(executor, CodegencompanyTables.SET_CLSSid_Employee, symbol_0);

+		final /*@NonInvalid*/ @NonNull SetValue allInstances = ClassifierAllInstancesOperation.INSTANCE.evaluate(executor, CodegencompanyTables.SET_CLSSid_Employee, TYP_company_c_c_Employee_0);

 		/*@Thrown*/ org.eclipse.ocl.pivot.values.SetValue.@NonNull Accumulator accumulator = ValueUtil.createSetAccumulatorValue(CodegencompanyTables.SET_CLSSid_Employee);

 		@NonNull Iterator<Object> ITERATOR__1 = allInstances.iterator();

 		/*@NonInvalid*/ @NonNull SetValue select;

@@ -358,9 +357,9 @@
 		final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();

 		final /*@NonInvalid*/ @Nullable Employee manager_2 = this.getManager();

 		final /*@NonInvalid*/ boolean oclIsUndefined = manager_2 == null;

-		/*@Thrown*/ @NonNull OrderedSetValue symbol_0;

+		/*@Thrown*/ @NonNull OrderedSetValue IF_oclIsUndefined;

 		if (oclIsUndefined) {

-			symbol_0 = CodegencompanyTables.OrderedSet;

+			IF_oclIsUndefined = CodegencompanyTables.OrderedSet;

 		}

 		else {

 			final /*@NonInvalid*/ @NonNull Object reportingChain = manager_2 == null;

@@ -379,10 +378,10 @@
 				throw new InvalidValueException("Null \'\'OrderedSet\'\' rather than \'\'OclVoid\'\' value required");

 			}

 			final /*@Thrown*/ @NonNull OrderedSetValue prepend = (@Nullable OrderedSetValue)OrderedCollectionPrependOperation.INSTANCE.evaluate(safe_reportingChain_source, manager_2);

-			symbol_0 = prepend;

+			IF_oclIsUndefined = prepend;

 		}

-		final /*@Thrown*/ @NonNull List<Employee> ECORE_symbol_0 = ((IdResolverExtension)idResolver).ecoreValueOfAll(Employee.class, symbol_0);

-		return (EList<Employee>)ECORE_symbol_0;

+		final /*@Thrown*/ @NonNull List<Employee> ECORE_IF_oclIsUndefined = ((IdResolverExtension)idResolver).ecoreValueOfAll(Employee.class, IF_oclIsUndefined);

+		return (EList<Employee>)ECORE_IF_oclIsUndefined;

 	}

 

 	/**

@@ -462,9 +461,9 @@
 			final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver();

 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, CodegencompanyPackage.Literals.EMPLOYEE___NO_MANAGER_IMPLIES_DIRECT_REPORTS__DIAGNOSTICCHAIN_MAP);

 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, CodegencompanyTables.INT_0).booleanValue();

-			/*@NonInvalid*/ boolean symbol_0;

+			/*@NonInvalid*/ boolean IF_le;

 			if (le) {

-				symbol_0 = true;

+				IF_le = true;

 			}

 			else {

 				final /*@NonInvalid*/ @Nullable Employee manager = this.getManager();

@@ -487,9 +486,9 @@
 					}

 				}

 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, CodegencompanyTables.INT_0).booleanValue();

-				symbol_0 = logDiagnostic;

+				IF_le = logDiagnostic;

 			}

-			return symbol_0;

+			return IF_le;

 		}

 		catch (Throwable e) {

 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);

@@ -529,12 +528,12 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);

 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, CodegencompanyPackage.Literals.EMPLOYEE___MUST_HAVE_NAME__DIAGNOSTICCHAIN_MAP);

 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, CodegencompanyTables.INT_0).booleanValue();

-			/*@NonInvalid*/ boolean symbol_2;

+			/*@NonInvalid*/ boolean IF_le;

 			if (le) {

-				symbol_2 = true;

+				IF_le = true;

 			}

 			else {

-				/*@Caught*/ @NonNull Object CAUGHT_symbol_1;

+				/*@Caught*/ @NonNull Object CAUGHT_IF_eq;

 				try {

 					/*@Caught*/ @Nullable Object CAUGHT_and;

 					try {

@@ -597,23 +596,23 @@
 						}

 					}

 					final /*@Thrown*/ boolean eq = status == Boolean.TRUE;

-					/*@Thrown*/ @NonNull Object symbol_1;

+					/*@Thrown*/ @NonNull Object IF_eq;

 					if (eq) {

-						symbol_1 = ValueUtil.TRUE_VALUE;

+						IF_eq = ValueUtil.TRUE_VALUE;

 					}

 					else {

-						final /*@Thrown*/ @NonNull TupleValue symbol_0 = ValueUtil.createTupleOfEach(CodegencompanyTables.TUPLid__0, CodegencompanyTables.STR_Employee_32_must_32_have_32_a_32_name, status);

-						symbol_1 = symbol_0;

+						final /*@Thrown*/ @NonNull TupleValue TUP_ = ValueUtil.createTupleOfEach(CodegencompanyTables.TUPLid__0, CodegencompanyTables.STR_Employee_32_must_32_have_32_a_32_name, status);

+						IF_eq = TUP_;

 					}

-					CAUGHT_symbol_1 = symbol_1;

+					CAUGHT_IF_eq = IF_eq;

 				}

 				catch (Exception e) {

-					CAUGHT_symbol_1 = ValueUtil.createInvalidValue(e);

+					CAUGHT_IF_eq = ValueUtil.createInvalidValue(e);

 				}

-				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_symbol_1, CodegencompanyTables.INT_0).booleanValue();

-				symbol_2 = logDiagnostic;

+				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_IF_eq, CodegencompanyTables.INT_0).booleanValue();

+				IF_le = logDiagnostic;

 			}

-			return symbol_2;

+			return IF_le;

 		}

 		catch (Throwable e) {

 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);

@@ -645,9 +644,9 @@
 			final /*@NonInvalid*/ @NonNull Executor executor = PivotUtil.getExecutor(this);

 			final /*@NonInvalid*/ @NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, CodegencompanyPackage.Literals.EMPLOYEE___MUST_HAVE_NON_EMPTY_NAME__DIAGNOSTICCHAIN_MAP);

 			final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, CodegencompanyTables.INT_0).booleanValue();

-			/*@NonInvalid*/ boolean symbol_0;

+			/*@NonInvalid*/ boolean IF_le;

 			if (le) {

-				symbol_0 = true;

+				IF_le = true;

 			}

 			else {

 				/*@Caught*/ @Nullable Object CAUGHT_result;

@@ -699,9 +698,9 @@
 					CAUGHT_result = ValueUtil.createInvalidValue(e);

 				}

 				final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, constraintName, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, CodegencompanyTables.INT_0).booleanValue();

-				symbol_0 = logDiagnostic;

+				IF_le = logDiagnostic;

 			}

-			return symbol_0;

+			return IF_le;

 		}

 		catch (Throwable e) {

 			return ValueUtil.validationFailedDiagnostic(constraintName, this, diagnostics, context, e);