[445071] Try CGAllInstancesOperationCallExp to uncommon allInstances
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGAllInstancesOperationCallExp.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGAllInstancesOperationCallExp.java
new file mode 100644
index 0000000..1ee6cce
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/CGAllInstancesOperationCallExp.java
@@ -0,0 +1,30 @@
+/**
+ * <copyright>
+ * 
+ * Copyright (c) 2013 E.D.Willink and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *   E.D.Willink - Initial API and implementation
+ * 
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.CGLibraryOperationCallExp;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CG All Instances Operation Call Exp</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage#getCGAllInstancesOperationCallExp()
+ * @model
+ * @generated
+ */
+public interface CGAllInstancesOperationCallExp extends CGLibraryOperationCallExp {
+} // CGAllInstancesOperationCallExp
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelFactory.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelFactory.java
index 678e088..74c53f1 100644
--- a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelFactory.java
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelFactory.java
@@ -32,6 +32,15 @@
 	@NonNull QVTiCGModelFactory eINSTANCE = org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelFactoryImpl.init();
 
 	/**
+	 * Returns a new object of class '<em>CG All Instances Operation Call Exp</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>CG All Instances Operation Call Exp</em>'.
+	 * @generated
+	 */
+	CGAllInstancesOperationCallExp createCGAllInstancesOperationCallExp();
+
+	/**
 	 * Returns a new object of class '<em>CG Ecore Property Assignment</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelPackage.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelPackage.java
index 2f7ef35..a6aba1d 100644
--- a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelPackage.java
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/QVTiCGModelPackage.java
@@ -85,6 +85,133 @@
 	@NonNull QVTiCGModelPackage eINSTANCE = org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl.init();
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGAllInstancesOperationCallExpImpl <em>CG All Instances Operation Call Exp</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGAllInstancesOperationCallExpImpl
+	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGAllInstancesOperationCallExp()
+	 * @generated
+	 */
+	int CG_ALL_INSTANCES_OPERATION_CALL_EXP = 0;
+
+	/**
+	 * The feature id for the '<em><b>Ast</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CG_ALL_INSTANCES_OPERATION_CALL_EXP__AST = CGModelPackage.CG_LIBRARY_OPERATION_CALL_EXP__AST;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CG_ALL_INSTANCES_OPERATION_CALL_EXP__NAME = CGModelPackage.CG_LIBRARY_OPERATION_CALL_EXP__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Type Id</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CG_ALL_INSTANCES_OPERATION_CALL_EXP__TYPE_ID = CGModelPackage.CG_LIBRARY_OPERATION_CALL_EXP__TYPE_ID;
+
+	/**
+	 * The feature id for the '<em><b>Required</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CG_ALL_INSTANCES_OPERATION_CALL_EXP__REQUIRED = CGModelPackage.CG_LIBRARY_OPERATION_CALL_EXP__REQUIRED;
+
+	/**
+	 * The feature id for the '<em><b>Depends On</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CG_ALL_INSTANCES_OPERATION_CALL_EXP__DEPENDS_ON = CGModelPackage.CG_LIBRARY_OPERATION_CALL_EXP__DEPENDS_ON;
+
+	/**
+	 * The feature id for the '<em><b>Owns</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CG_ALL_INSTANCES_OPERATION_CALL_EXP__OWNS = CGModelPackage.CG_LIBRARY_OPERATION_CALL_EXP__OWNS;
+
+	/**
+	 * The feature id for the '<em><b>Invalidating</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CG_ALL_INSTANCES_OPERATION_CALL_EXP__INVALIDATING = CGModelPackage.CG_LIBRARY_OPERATION_CALL_EXP__INVALIDATING;
+
+	/**
+	 * The feature id for the '<em><b>Validating</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CG_ALL_INSTANCES_OPERATION_CALL_EXP__VALIDATING = CGModelPackage.CG_LIBRARY_OPERATION_CALL_EXP__VALIDATING;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CG_ALL_INSTANCES_OPERATION_CALL_EXP__SOURCE = CGModelPackage.CG_LIBRARY_OPERATION_CALL_EXP__SOURCE;
+
+	/**
+	 * The feature id for the '<em><b>Arguments</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CG_ALL_INSTANCES_OPERATION_CALL_EXP__ARGUMENTS = CGModelPackage.CG_LIBRARY_OPERATION_CALL_EXP__ARGUMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Referred Operation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CG_ALL_INSTANCES_OPERATION_CALL_EXP__REFERRED_OPERATION = CGModelPackage.CG_LIBRARY_OPERATION_CALL_EXP__REFERRED_OPERATION;
+
+	/**
+	 * The feature id for the '<em><b>Library Operation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CG_ALL_INSTANCES_OPERATION_CALL_EXP__LIBRARY_OPERATION = CGModelPackage.CG_LIBRARY_OPERATION_CALL_EXP__LIBRARY_OPERATION;
+
+	/**
+	 * The number of structural features of the '<em>CG All Instances Operation Call Exp</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CG_ALL_INSTANCES_OPERATION_CALL_EXP_FEATURE_COUNT = CGModelPackage.CG_LIBRARY_OPERATION_CALL_EXP_FEATURE_COUNT + 0;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPropertyAssignmentImpl <em>CG Property Assignment</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -92,7 +219,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGPropertyAssignment()
 	 * @generated
 	 */
-	int CG_PROPERTY_ASSIGNMENT = 14;
+	int CG_PROPERTY_ASSIGNMENT = 15;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -210,7 +337,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGEcorePropertyAssignment()
 	 * @generated
 	 */
-	int CG_ECORE_PROPERTY_ASSIGNMENT = 0;
+	int CG_ECORE_PROPERTY_ASSIGNMENT = 1;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -337,7 +464,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMapping()
 	 * @generated
 	 */
-	int CG_MAPPING = 6;
+	int CG_MAPPING = 7;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGTransformationImpl <em>CG Transformation</em>}' class.
@@ -347,7 +474,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGTransformation()
 	 * @generated
 	 */
-	int CG_TRANSFORMATION = 17;
+	int CG_TRANSFORMATION = 18;
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment <em>CG Ecore Property Assignment</em>}'.
@@ -483,7 +610,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMappingCall()
 	 * @generated
 	 */
-	int CG_MAPPING_CALL = 7;
+	int CG_MAPPING_CALL = 8;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGMappingCallBindingImpl <em>CG Mapping Call Binding</em>}' class.
@@ -493,7 +620,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMappingCallBinding()
 	 * @generated
 	 */
-	int CG_MAPPING_CALL_BINDING = 8;
+	int CG_MAPPING_CALL_BINDING = 9;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGPredicateImpl <em>CG Predicate</em>}' class.
@@ -503,7 +630,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGPredicate()
 	 * @generated
 	 */
-	int CG_PREDICATE = 13;
+	int CG_PREDICATE = 14;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGRealizedVariableImpl <em>CG Realized Variable</em>}' class.
@@ -513,7 +640,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGRealizedVariable()
 	 * @generated
 	 */
-	int CG_REALIZED_VARIABLE = 15;
+	int CG_REALIZED_VARIABLE = 16;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -613,7 +740,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGEcoreRealizedVariable()
 	 * @generated
 	 */
-	int CG_ECORE_REALIZED_VARIABLE = 1;
+	int CG_ECORE_REALIZED_VARIABLE = 2;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -722,7 +849,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunction()
 	 * @generated
 	 */
-	int CG_FUNCTION = 2;
+	int CG_FUNCTION = 3;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -840,7 +967,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunctionCallExp()
 	 * @generated
 	 */
-	int CG_FUNCTION_CALL_EXP = 3;
+	int CG_FUNCTION_CALL_EXP = 4;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -967,7 +1094,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGFunctionParameter()
 	 * @generated
 	 */
-	int CG_FUNCTION_PARAMETER = 4;
+	int CG_FUNCTION_PARAMETER = 5;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -1067,7 +1194,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGGuardVariable()
 	 * @generated
 	 */
-	int CG_GUARD_VARIABLE = 5;
+	int CG_GUARD_VARIABLE = 6;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -1374,7 +1501,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMappingExp()
 	 * @generated
 	 */
-	int CG_MAPPING_EXP = 9;
+	int CG_MAPPING_EXP = 10;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -1492,7 +1619,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMappingLoop()
 	 * @generated
 	 */
-	int CG_MAPPING_LOOP = 10;
+	int CG_MAPPING_LOOP = 11;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -1619,7 +1746,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMiddlePropertyAssignment()
 	 * @generated
 	 */
-	int CG_MIDDLE_PROPERTY_ASSIGNMENT = 11;
+	int CG_MIDDLE_PROPERTY_ASSIGNMENT = 12;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -1746,7 +1873,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGMiddlePropertyCallExp()
 	 * @generated
 	 */
-	int CG_MIDDLE_PROPERTY_CALL_EXP = 12;
+	int CG_MIDDLE_PROPERTY_CALL_EXP = 13;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -1945,7 +2072,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGSequence()
 	 * @generated
 	 */
-	int CG_SEQUENCE = 16;
+	int CG_SEQUENCE = 17;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -2135,7 +2262,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGTypedModel()
 	 * @generated
 	 */
-	int CG_TYPED_MODEL = 18;
+	int CG_TYPED_MODEL = 19;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -2190,7 +2317,7 @@
 	 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGVariablePredicate()
 	 * @generated
 	 */
-	int CG_VARIABLE_PREDICATE = 19;
+	int CG_VARIABLE_PREDICATE = 20;
 
 	/**
 	 * The feature id for the '<em><b>Ast</b></em>' attribute.
@@ -2292,6 +2419,16 @@
 	int CG_VARIABLE_PREDICATE_FEATURE_COUNT = CG_PREDICATE_FEATURE_COUNT + 1;
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp <em>CG All Instances Operation Call Exp</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>CG All Instances Operation Call Exp</em>'.
+	 * @see org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp
+	 * @generated
+	 */
+	EClass getCGAllInstancesOperationCallExp();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGPropertyAssignment <em>CG Property Assignment</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2741,6 +2878,16 @@
 	 */
 	interface Literals {
 		/**
+		 * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGAllInstancesOperationCallExpImpl <em>CG All Instances Operation Call Exp</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.CGAllInstancesOperationCallExpImpl
+		 * @see org.eclipse.qvtd.codegen.qvticgmodel.impl.QVTiCGModelPackageImpl#getCGAllInstancesOperationCallExp()
+		 * @generated
+		 */
+		EClass CG_ALL_INSTANCES_OPERATION_CALL_EXP = eINSTANCE.getCGAllInstancesOperationCallExp();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.qvtd.codegen.qvticgmodel.impl.CGEcorePropertyAssignmentImpl <em>CG Ecore Property Assignment</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGAllInstancesOperationCallExpImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGAllInstancesOperationCallExpImpl.java
new file mode 100644
index 0000000..37cc870
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGAllInstancesOperationCallExpImpl.java
@@ -0,0 +1,78 @@
+/**
+ * <copyright>
+ * 
+ * Copyright (c) 2013 E.D.Willink and others.
+ * All rights reserved.   This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *   E.D.Willink - Initial API and implementation
+ * 
+ * </copyright>
+ */
+package org.eclipse.qvtd.codegen.qvticgmodel.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGLibraryOperationCallExpImpl;
+
+import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
+
+import org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp;
+import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
+
+import org.eclipse.qvtd.codegen.qvticgmodel.util.QVTiCGModelVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CG All Instances Operation Call Exp</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ *
+ * @generated
+ */
+public class CGAllInstancesOperationCallExpImpl extends CGLibraryOperationCallExpImpl implements CGAllInstancesOperationCallExp {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CGAllInstancesOperationCallExpImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return QVTiCGModelPackage.Literals.CG_ALL_INSTANCES_OPERATION_CALL_EXP;
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public @Nullable <R> R accept(@NonNull CGModelVisitor<R> visitor) {
+		return (R) ((QVTiCGModelVisitor<?>)visitor).visitCGAllInstancesOperationCallExp(this);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 * @generated
+	 */
+	@Override
+	public boolean isCommonable() {
+		return false;
+	}
+
+} //CGAllInstancesOperationCallExpImpl
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelFactoryImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelFactoryImpl.java
index b28196c..5d4d179 100644
--- a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelFactoryImpl.java
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelFactoryImpl.java
@@ -82,6 +82,7 @@
 	@Override
 	public EObject create(EClass eClass) {
 		switch (eClass.getClassifierID()) {
+			case QVTiCGModelPackage.CG_ALL_INSTANCES_OPERATION_CALL_EXP: return createCGAllInstancesOperationCallExp();
 			case QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT: return createCGEcorePropertyAssignment();
 			case QVTiCGModelPackage.CG_ECORE_REALIZED_VARIABLE: return createCGEcoreRealizedVariable();
 			case QVTiCGModelPackage.CG_FUNCTION: return createCGFunction();
@@ -113,6 +114,17 @@
 	 * @generated
 	 */
 	@Override
+	public CGAllInstancesOperationCallExp createCGAllInstancesOperationCallExp() {
+		CGAllInstancesOperationCallExpImpl cgAllInstancesOperationCallExp = new CGAllInstancesOperationCallExpImpl();
+		return cgAllInstancesOperationCallExp;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public @NonNull CGEcorePropertyAssignment createCGEcorePropertyAssignment() {
 		CGEcorePropertyAssignmentImpl cgEcorePropertyAssignment = new CGEcorePropertyAssignmentImpl();
 		return cgEcorePropertyAssignment;
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java
index d12f3f1..8facaaf 100644
--- a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java
@@ -16,6 +16,7 @@
 import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGModelPackage;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
@@ -51,6 +52,13 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass cgAllInstancesOperationCallExpEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EClass cgEcorePropertyAssignmentEClass = null;
 
 	/**
@@ -256,6 +264,16 @@
 	 * @generated
 	 */
 	@Override
+	public EClass getCGAllInstancesOperationCallExp() {
+		return cgAllInstancesOperationCallExpEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EClass getCGEcorePropertyAssignment() {
 		return cgEcorePropertyAssignmentEClass;
 	}
@@ -799,6 +817,8 @@
 		isCreated = true;
 
 		// Create classes and their features
+		cgAllInstancesOperationCallExpEClass = createEClass(CG_ALL_INSTANCES_OPERATION_CALL_EXP);
+
 		cgEcorePropertyAssignmentEClass = createEClass(CG_ECORE_PROPERTY_ASSIGNMENT);
 		createEReference(cgEcorePropertyAssignmentEClass, CG_ECORE_PROPERTY_ASSIGNMENT__ESTRUCTURAL_FEATURE);
 
@@ -903,6 +923,7 @@
 		// Set bounds for type parameters
 
 		// Add supertypes to classes
+		cgAllInstancesOperationCallExpEClass.getESuperTypes().add(theCGModelPackage.getCGLibraryOperationCallExp());
 		cgEcorePropertyAssignmentEClass.getESuperTypes().add(this.getCGPropertyAssignment());
 		cgEcoreRealizedVariableEClass.getESuperTypes().add(this.getCGRealizedVariable());
 		cgFunctionEClass.getESuperTypes().add(theCGModelPackage.getCGOperation());
@@ -925,6 +946,8 @@
 		cgVariablePredicateEClass.getESuperTypes().add(this.getCGPredicate());
 
 		// Initialize classes and features; add operations and parameters
+		initEClass(cgAllInstancesOperationCallExpEClass, CGAllInstancesOperationCallExp.class, "CGAllInstancesOperationCallExp", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
 		initEClass(cgEcorePropertyAssignmentEClass, CGEcorePropertyAssignment.class, "CGEcorePropertyAssignment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getCGEcorePropertyAssignment_EStructuralFeature(), ecorePackage.getEStructuralFeature(), null, "eStructuralFeature", null, 1, 1, CGEcorePropertyAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractExtendingQVTiCGModelVisitor.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractExtendingQVTiCGModelVisitor.java
index e8db88d..20a8ee8 100644
--- a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractExtendingQVTiCGModelVisitor.java
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractExtendingQVTiCGModelVisitor.java
@@ -41,6 +41,11 @@
 	}	
 
 	@Override
+	public @Nullable R visitCGAllInstancesOperationCallExp(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp object) {
+		return visitCGLibraryOperationCallExp(object);
+	}
+
+	@Override
 	public @Nullable R visitCGEcorePropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment object) {
 		return visitCGPropertyAssignment(object);
 	}
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNonNullExtendingQVTiCGModelVisitor.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNonNullExtendingQVTiCGModelVisitor.java
index 8d29b58..b1f1679 100644
--- a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNonNullExtendingQVTiCGModelVisitor.java
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNonNullExtendingQVTiCGModelVisitor.java
@@ -41,6 +41,11 @@
 	}	
 
 	@Override
+	public @NonNull R visitCGAllInstancesOperationCallExp(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp object) {
+		return visitCGLibraryOperationCallExp(object);
+	}
+
+	@Override
 	public @NonNull R visitCGEcorePropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment object) {
 		return visitCGPropertyAssignment(object);
 	}
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNullQVTiCGModelVisitor.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNullQVTiCGModelVisitor.java
index a112df0..5053ba2 100644
--- a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNullQVTiCGModelVisitor.java
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/AbstractNullQVTiCGModelVisitor.java
@@ -37,6 +37,11 @@
 	}	
 
 	@Override
+	public @Nullable R visitCGAllInstancesOperationCallExp(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp object) {
+		return null;
+	}
+
+	@Override
 	public @Nullable R visitCGEcorePropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment object) {
 		return null;
 	}
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelAdapterFactory.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelAdapterFactory.java
index c144b1f..33628ad 100644
--- a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelAdapterFactory.java
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelAdapterFactory.java
@@ -19,6 +19,7 @@
 import org.eclipse.ocl.examples.codegen.cgmodel.CGClass;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGElement;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGIterationCallExp;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGLibraryOperationCallExp;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGNamedElement;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGNavigationCallExp;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGOperation;
@@ -88,6 +89,10 @@
 	protected QVTiCGModelSwitch<Adapter> modelSwitch =
 		new QVTiCGModelSwitch<Adapter>() {
 			@Override
+			public Adapter caseCGAllInstancesOperationCallExp(CGAllInstancesOperationCallExp object) {
+				return createCGAllInstancesOperationCallExpAdapter();
+			}
+			@Override
 			public Adapter caseCGEcorePropertyAssignment(CGEcorePropertyAssignment object) {
 				return createCGEcorePropertyAssignmentAdapter();
 			}
@@ -188,6 +193,18 @@
 				return createCGValuedElementAdapter();
 			}
 			@Override
+			public Adapter caseCGCallExp(CGCallExp object) {
+				return createCGCallExpAdapter();
+			}
+			@Override
+			public Adapter caseCGOperationCallExp(CGOperationCallExp object) {
+				return createCGOperationCallExpAdapter();
+			}
+			@Override
+			public Adapter caseCGLibraryOperationCallExp(CGLibraryOperationCallExp object) {
+				return createCGLibraryOperationCallExpAdapter();
+			}
+			@Override
 			public Adapter caseCGVariable(CGVariable object) {
 				return createCGVariableAdapter();
 			}
@@ -200,14 +217,6 @@
 				return createCGOperationAdapter();
 			}
 			@Override
-			public Adapter caseCGCallExp(CGCallExp object) {
-				return createCGCallExpAdapter();
-			}
-			@Override
-			public Adapter caseCGOperationCallExp(CGOperationCallExp object) {
-				return createCGOperationCallExpAdapter();
-			}
-			@Override
 			public Adapter caseCGParameter(CGParameter object) {
 				return createCGParameterAdapter();
 			}
@@ -248,6 +257,20 @@
 
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp <em>CG All Instances Operation Call Exp</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp
+	 * @generated
+	 */
+	public Adapter createCGAllInstancesOperationCallExpAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment <em>CG Ecore Property Assignment</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -640,6 +663,20 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGLibraryOperationCallExp <em>CG Library Operation Call Exp</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.ocl.examples.codegen.cgmodel.CGLibraryOperationCallExp
+	 * @generated
+	 */
+	public Adapter createCGLibraryOperationCallExpAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.ocl.examples.codegen.cgmodel.CGParameter <em>CG Parameter</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelSwitch.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelSwitch.java
index d2c87ad..0585691 100644
--- a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelSwitch.java
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelSwitch.java
@@ -18,6 +18,7 @@
 import org.eclipse.ocl.examples.codegen.cgmodel.CGClass;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGElement;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGIterationCallExp;
+import org.eclipse.ocl.examples.codegen.cgmodel.CGLibraryOperationCallExp;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGNamedElement;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGNavigationCallExp;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGOperation;
@@ -87,6 +88,20 @@
 	@Override
 	protected T doSwitch(int classifierID, EObject theEObject) {
 		switch (classifierID) {
+			case QVTiCGModelPackage.CG_ALL_INSTANCES_OPERATION_CALL_EXP: {
+				CGAllInstancesOperationCallExp cgAllInstancesOperationCallExp = (CGAllInstancesOperationCallExp)theEObject;
+				T result = caseCGAllInstancesOperationCallExp(cgAllInstancesOperationCallExp);
+				if (result == null) result = caseCGLibraryOperationCallExp(cgAllInstancesOperationCallExp);
+				if (result == null) result = caseCGOperationCallExp(cgAllInstancesOperationCallExp);
+				if (result == null) result = caseCGCallExp(cgAllInstancesOperationCallExp);
+				if (result == null) result = caseCGValuedElement(cgAllInstancesOperationCallExp);
+				if (result == null) result = caseCGTypedElement(cgAllInstancesOperationCallExp);
+				if (result == null) result = caseCGNamedElement(cgAllInstancesOperationCallExp);
+				if (result == null) result = caseCGElement(cgAllInstancesOperationCallExp);
+				if (result == null) result = caseNameable(cgAllInstancesOperationCallExp);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case QVTiCGModelPackage.CG_ECORE_PROPERTY_ASSIGNMENT: {
 				CGEcorePropertyAssignment cgEcorePropertyAssignment = (CGEcorePropertyAssignment)theEObject;
 				T result = caseCGEcorePropertyAssignment(cgEcorePropertyAssignment);
@@ -327,6 +342,21 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>CG All Instances Operation Call Exp</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>CG All Instances Operation Call Exp</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseCGAllInstancesOperationCallExp(CGAllInstancesOperationCallExp object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>CG Ecore Property Assignment</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -747,6 +777,21 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>CG Library Operation Call Exp</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>CG Library Operation Call Exp</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseCGLibraryOperationCallExp(CGLibraryOperationCallExp object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>CG Parameter</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelVisitor.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelVisitor.java
index 449fa67..1d72bba 100644
--- a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelVisitor.java
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/util/QVTiCGModelVisitor.java
@@ -24,6 +24,7 @@
  */
 public interface QVTiCGModelVisitor<R> extends org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor<R>
 {
+	@Nullable R visitCGAllInstancesOperationCallExp(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp object);
 	@Nullable R visitCGEcorePropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment object);
 	@Nullable R visitCGEcoreRealizedVariable(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable object);
 	@Nullable R visitCGFunction(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGFunction object);
diff --git a/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.ecore b/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.ecore
index ea71574..38bfc4f 100644
--- a/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.ecore
+++ b/plugins/org.eclipse.qvtd.codegen/model/qvticgmodel.ecore
@@ -7,6 +7,7 @@
   <eAnnotations source="http://www.eclipse.org/OCL/Import">
     <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore#/"/>
   </eAnnotations>
+  <eClassifiers xsi:type="ecore:EClass" name="CGAllInstancesOperationCallExp" eSuperTypes="../../org.eclipse.ocl.examples.codegen/model/cgmodel.ecore#//CGLibraryOperationCallExp"/>
   <eClassifiers xsi:type="ecore:EClass" name="CGEcorePropertyAssignment" eSuperTypes="#//CGPropertyAssignment">
     <eStructuralFeatures xsi:type="ecore:EReference" name="eStructuralFeature" lowerBound="1"
         eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java
index f333330..18b090d 100644
--- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java
@@ -32,6 +32,7 @@
 import org.eclipse.ocl.examples.codegen.cgmodel.CGVariable;
 import org.eclipse.ocl.examples.codegen.generator.GenModelException;
 import org.eclipse.ocl.examples.codegen.java.JavaLocalContext;
+import org.eclipse.ocl.pivot.Class;
 import org.eclipse.ocl.pivot.CollectionType;
 import org.eclipse.ocl.pivot.ExpressionInOCL;
 import org.eclipse.ocl.pivot.Import;
@@ -46,11 +47,16 @@
 import org.eclipse.ocl.pivot.Property;
 import org.eclipse.ocl.pivot.Type;
 import org.eclipse.ocl.pivot.Variable;
+import org.eclipse.ocl.pivot.ids.IdManager;
+import org.eclipse.ocl.pivot.ids.OperationId;
 import org.eclipse.ocl.pivot.ids.TypeId;
+import org.eclipse.ocl.pivot.library.LibraryFeature;
+import org.eclipse.ocl.pivot.library.LibraryOperation;
 import org.eclipse.ocl.pivot.library.LibraryProperty;
 import org.eclipse.ocl.pivot.utilities.ClassUtil;
 import org.eclipse.ocl.pivot.utilities.NameUtil;
 import org.eclipse.qvtd.codegen.qvti.java.QVTiGlobalContext;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
@@ -142,11 +148,14 @@
 
 	protected final @NonNull QVTiAnalyzer analyzer;
 	protected final @NonNull QVTiGlobalContext globalContext;
+	protected final @NonNull OperationId allInstancesOperationId;
 	
 	public QVTiAS2CGVisitor(@NonNull QVTiAnalyzer analyzer, @NonNull QVTiGlobalContext globalContext) {
 		super(analyzer);
 		this.analyzer = analyzer;
 		this.globalContext = globalContext;
+		Class oclElementType = metamodelManager.getStandardLibrary().getOclElementType();
+		this.allInstancesOperationId = oclElementType.getTypeId().getOperationId(0, "allInstances", IdManager.getParametersId());
 	}
 
 	protected void doBottoms(@NonNull Mapping pMapping, @NonNull CGMappingExp cgMappingExp) {
@@ -552,12 +561,12 @@
 	@Override
 	public @NonNull
 	CGValuedElement visitOperationCallExp(@NonNull OperationCallExp asOperationCallExp) {
-		Operation pOperation = asOperationCallExp.getReferredOperation();
-		if (pOperation instanceof Function) {
+		Operation asOperation = asOperationCallExp.getReferredOperation();
+		if (asOperation instanceof Function) {
 			CGFunctionCallExp cgFunctionCallExp = QVTiCGModelFactory.eINSTANCE.createCGFunctionCallExp();
-			cgFunctionCallExp.setReferredOperation(pOperation);
+			cgFunctionCallExp.setReferredOperation(asOperation);
 			setAst(cgFunctionCallExp, asOperationCallExp);
-			cgFunctionCallExp.setRequired(pOperation.isRequired());
+			cgFunctionCallExp.setRequired(asOperation.isRequired());
 			for (OCLExpression pArgument : asOperationCallExp.getOwnedArguments()) {
 				CGValuedElement cgArgument = doVisit(CGValuedElement.class, pArgument);
 				cgFunctionCallExp.getArguments().add(cgArgument);
@@ -565,6 +574,16 @@
 //			cgOperationCallExp.setOperation(getOperation(asOperationCallExp.getReferredOperation()));
 			return cgFunctionCallExp;
 		}
+		else if (asOperation.getOperationId() == allInstancesOperationId) {
+			OCLExpression pSource = asOperationCallExp.getOwnedSource();
+			CGValuedElement cgSource = pSource != null ? doVisit(CGValuedElement.class, pSource) : null;
+			LibraryFeature libraryOperation = metamodelManager.getImplementation(asOperation);
+			CGAllInstancesOperationCallExp cgAllInstancesOperationCallExp = QVTiCGModelFactory.eINSTANCE.createCGAllInstancesOperationCallExp();
+			cgAllInstancesOperationCallExp.setSource(cgSource);
+			cgAllInstancesOperationCallExp.setLibraryOperation((LibraryOperation) libraryOperation);
+			setAst(cgAllInstancesOperationCallExp, asOperationCallExp);
+			return cgAllInstancesOperationCallExp;
+		}
 		else {
 			return super.visitOperationCallExp(asOperationCallExp);
 		}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAnalysisVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAnalysisVisitor.java
index 2347628..e953013 100644
--- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAnalysisVisitor.java
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAnalysisVisitor.java
@@ -15,6 +15,7 @@
 import org.eclipse.ocl.examples.codegen.generator.GlobalContext;
 import org.eclipse.ocl.examples.codegen.generator.LocalContext;
 import org.eclipse.ocl.pivot.OperationCallExp;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
@@ -45,6 +46,11 @@
 	}
 
 	@Override
+	public Object visitCGAllInstancesOperationCallExp(@NonNull CGAllInstancesOperationCallExp object) {
+		return visitCGLibraryOperationCallExp(object);
+	}
+
+	@Override
 	public Object visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) {
 		return visitCGPropertyAssignment(object);
 	}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiBoxingAnalyzer.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiBoxingAnalyzer.java
index b5ff82a..4ac3f84 100644
--- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiBoxingAnalyzer.java
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiBoxingAnalyzer.java
@@ -13,6 +13,7 @@
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.examples.codegen.analyzer.BoxingAnalyzer;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
@@ -44,6 +45,11 @@
 	}
 
 	@Override
+	public Object visitCGAllInstancesOperationCallExp(@NonNull CGAllInstancesOperationCallExp object) {
+		return visitCGLibraryOperationCallExp(object);
+	}
+
+	@Override
 	public Object visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment cgEcorePropertyAssignment) {
 		rewriteAsUnboxed(cgEcorePropertyAssignment.getSlotValue());
 		rewriteAsUnboxed(cgEcorePropertyAssignment.getInitValue());
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiCG2StringVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiCG2StringVisitor.java
index 67f9b70..68da980 100644
--- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiCG2StringVisitor.java
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiCG2StringVisitor.java
@@ -16,6 +16,7 @@
 import org.eclipse.ocl.examples.codegen.analyzer.CG2StringVisitor;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGVariableExp;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
@@ -66,8 +67,12 @@
 	public QVTiCG2StringVisitor() {}
 
 	@Override
-	@Nullable
-	public String visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) {
+	public @Nullable String visitCGAllInstancesOperationCallExp(@NonNull CGAllInstancesOperationCallExp object) {
+		return visitCGLibraryOperationCallExp(object);
+	}
+
+	@Override
+	public @Nullable String visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) {
 		return visitCGPropertyAssignment(object);
 	}
 
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiDependencyVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiDependencyVisitor.java
index e2e74a2..bb97db7 100644
--- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiDependencyVisitor.java
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiDependencyVisitor.java
@@ -14,6 +14,7 @@
 import org.eclipse.ocl.examples.codegen.cse.GlobalPlace;
 import org.eclipse.ocl.examples.codegen.java.JavaDependencyVisitor;
 import org.eclipse.qvtd.codegen.qvti.java.QVTiGlobalContext;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
@@ -43,6 +44,11 @@
 	}
 
 	@Override
+	public Object visitCGAllInstancesOperationCallExp(@NonNull CGAllInstancesOperationCallExp object) {
+		return visitCGLibraryOperationCallExp(object);
+	}
+
+	@Override
 	public Object visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) {
 		return visitCGPropertyAssignment(object);
 	}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiFieldingAnalyzer.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiFieldingAnalyzer.java
index 0608e16..fa123f6 100644
--- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiFieldingAnalyzer.java
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiFieldingAnalyzer.java
@@ -17,6 +17,7 @@
 import org.eclipse.ocl.examples.codegen.analyzer.FieldingAnalyzer;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGIterator;
 import org.eclipse.ocl.examples.codegen.cgmodel.CGVariable;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
@@ -48,6 +49,11 @@
 		}
 
 		@Override
+		public @Nullable Set<CGVariable> visitCGAllInstancesOperationCallExp(@NonNull CGAllInstancesOperationCallExp object) {
+			return visitCGLibraryOperationCallExp(object);
+		}
+
+		@Override
 		public @Nullable Set<CGVariable> visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) {
 			return visitCGPropertyAssignment(object);
 		}
@@ -155,6 +161,11 @@
 		}
 
 		@Override
+		public Boolean visitCGAllInstancesOperationCallExp(@NonNull CGAllInstancesOperationCallExp object) {
+			return visitCGLibraryOperationCallExp(object);
+		}
+
+		@Override
 		public Boolean visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) {
 			return visitCGPropertyAssignment(object);
 		}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiReferencesVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiReferencesVisitor.java
index 011bbc0..b6e5e92 100644
--- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiReferencesVisitor.java
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiReferencesVisitor.java
@@ -15,6 +15,7 @@
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.ocl.examples.codegen.analyzer.ReferencesVisitor;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingExp;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGMappingLoop;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGSequence;
@@ -36,6 +37,11 @@
 	}
 
 	@Override
+	public @Nullable List<Object> visitCGAllInstancesOperationCallExp(@NonNull CGAllInstancesOperationCallExp object) {
+		return visitCGLibraryOperationCallExp(object);
+	}
+
+	@Override
 	public @Nullable List<Object> visitCGEcorePropertyAssignment(@NonNull org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment object) {
 		return visitCGPropertyAssignment(object);
 	}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCG2JavaPreVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCG2JavaPreVisitor.java
index 3911f69..2006158 100644
--- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCG2JavaPreVisitor.java
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCG2JavaPreVisitor.java
@@ -19,6 +19,7 @@
 import org.eclipse.ocl.examples.codegen.cgmodel.CGValuedElement;
 import org.eclipse.ocl.examples.codegen.java.CG2JavaPreVisitor;
 import org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
@@ -48,6 +49,11 @@
 	}
 
 	@Override
+	public Object visitCGAllInstancesOperationCallExp(@NonNull CGAllInstancesOperationCallExp object) {
+		return visitCGLibraryOperationCallExp(object);
+	}
+
+	@Override
 	public Object visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment object) {
 		return visitCGPropertyAssignment(object);
 	}
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCG2JavaVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCG2JavaVisitor.java
index cdf4683..4d6ac9e 100644
--- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCG2JavaVisitor.java
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCG2JavaVisitor.java
@@ -50,6 +50,7 @@
 import org.eclipse.ocl.pivot.utilities.NameUtil;
 import org.eclipse.ocl.pivot.utilities.ValueUtil;
 import org.eclipse.qvtd.codegen.qvti.analyzer.QVTiAnalyzer;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
@@ -505,6 +506,11 @@
 	}
 
 	@Override
+	public @NonNull Boolean visitCGAllInstancesOperationCallExp(@NonNull CGAllInstancesOperationCallExp object) {
+		return visitCGLibraryOperationCallExp(object);
+	}
+
+	@Override
 	public @NonNull Boolean visitCGEcorePropertyAssignment(@NonNull CGEcorePropertyAssignment cgPropertyAssignment) {
 //		Property pivotProperty = cgPropertyCallExp.getReferredProperty();
 //		CGTypeId cgTypeId = analyzer.getTypeId(pivotProperty.getOwningType().getTypeId());
diff --git a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/modelspecs/QVTdCGValuedElementModelSpec.java b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/modelspecs/QVTdCGValuedElementModelSpec.java
index aeffe36..1c321d5 100644
--- a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/modelspecs/QVTdCGValuedElementModelSpec.java
+++ b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/modelspecs/QVTdCGValuedElementModelSpec.java
@@ -17,6 +17,7 @@
 import org.eclipse.ocl.examples.codegen.cgmodel.CGInvalid;
 import org.eclipse.ocl.examples.codegen.java.ImportUtils;
 import org.eclipse.qvtd.codegen.qvti.cse.PredicatePlaces;
+import org.eclipse.qvtd.codegen.qvticgmodel.CGAllInstancesOperationCallExp;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGFunction;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGFunctionCallExp;
@@ -87,6 +88,8 @@
 		new QVTdCGValuedElementModelSpec(CGRealizedVariable.class, null,				Box.FALSE, null     , null     , Nul.NEVER, null     , Glo.FALSE, null     , null     , null    , null     , null     , null     , null     , null     , null     , null     , null    );
 		new QVTdCGValuedElementModelSpec(CGEcoreRealizedVariable.class, null,			null     , null     , null     , Nul.ASSRT, null     , null     , null     , null     , null    , null     , null     , null     , null     , null     , null     , null     , null    );
 
+		new QVTdCGValuedElementModelSpec(CGAllInstancesOperationCallExp.class, null,	null,      null     , null     , null     , null     , null     , null     , null     , null    , null     , null     , null     , null     , null     , Com.FALSE, null     , null    );
+
 		new QVTdCGValuedElementModelSpec(CGFunctionCallExp.class, null,					Box.FALSE, null     , null     , null     , null     , Glo.FALSE, null     , null     , null    , null     , null     , null     , null     , null     , null     , null     , null    );
 		new QVTdCGValuedElementModelSpec(CGFunctionParameter.class, null,				Box.FALSE, null     , null     , null     , null     , Glo.FALSE, null     , null     , null    , null     , null     , null     , null     , null     , null     , null     , null    );
 		new QVTdCGValuedElementModelSpec(CGMappingCallBinding.class, "value",			Box.DELEG, null     , null     , null     , null     , Glo.FALSE, null     , null     , null    , null     , null     , null     , null     , null     , Com.FALSE, null     , Eq.SELF );
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/classescs2as.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/classescs2as.java
index 65aa0c7..0592ca5 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/classescs2as.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/classescs2as.java
@@ -660,16 +660,6 @@
      * packageCS := packageCS;
      * package := package;
      * }}}
-     *   for package : classes::Package in classes::Package.allInstances()
-     *    {
-     * 
-     *     for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances()
-     *      {
-     * 
-     *       map uPackage_ownedClasses {
-     * packageCS := packageCS;
-     * package := package;
-     * }}}
      *   for classCS : classescs::ClassCS in classescs::ClassCS.allInstances()
      *    {
      * map mClassCS2Class_LM {
@@ -680,6 +670,16 @@
      * map mClassCS2Class_MR {
      * c2c := c2c;
      * }}
+     *   for package : classes::Package in classes::Package.allInstances()
+     *    {
+     * 
+     *     for packageCS : classescs::PackageCS in classescs::PackageCS.allInstances()
+     *      {
+     * 
+     *       map uPackage_ownedClasses {
+     * packageCS := packageCS;
+     * package := package;
+     * }}}
      *   for classCS : classescs::ClassCS in classescs::ClassCS.allInstances()
      *    {
      * 
@@ -721,16 +721,16 @@
             final @NonNull /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classescstraces_c_c_ClassCS2Class_0 = idResolver.getClass(CLSSid_ClassCS2Class, null);
             final @NonNull /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classescstraces_c_c_PackageCS2Package_0 = idResolver.getClass(CLSSid_PackageCS2Package, null);
             final @NonNull /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classescstraces_c_c_RootCS2Root_0 = idResolver.getClass(CLSSid_RootCS2Root, null);
-            final @NonNull /*@Thrown*/ SetValue allInstances_3 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_Package, TYP_classes_c_c_Package_1);
-            final @NonNull /*@Thrown*/ SetValue allInstances_7 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_ClassCS, TYP_classescs_c_c_ClassCS_1);
-            final @NonNull /*@Thrown*/ SetValue allInstances = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_PackageCS, TYP_classescs_c_c_PackageCS_0);
-            final @NonNull /*@Thrown*/ SetValue allInstances_11 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_RootCS, TYP_classescs_c_c_RootCS_1);
-            final List<Package> UNBOXED_allInstances_3 = allInstances_3.asEcoreObjects(idResolver, Package.class);
-            assert UNBOXED_allInstances_3 != null;
+            final @Nullable /*@Thrown*/ SetValue allInstances_5 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_Package, TYP_classes_c_c_Package_1);
+            final List<Package> UNBOXED_allInstances_5 = allInstances_5.asEcoreObjects(idResolver, Package.class);
+            assert UNBOXED_allInstances_5 != null;
+            final @Nullable /*@Thrown*/ SetValue allInstances_7 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_ClassCS, TYP_classescs_c_c_ClassCS_1);
             final List<ClassCS> UNBOXED_allInstances_7 = allInstances_7.asEcoreObjects(idResolver, ClassCS.class);
             assert UNBOXED_allInstances_7 != null;
+            final @Nullable /*@Thrown*/ SetValue allInstances = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_PackageCS, TYP_classescs_c_c_PackageCS_0);
             final List<PackageCS> UNBOXED_allInstances = allInstances.asEcoreObjects(idResolver, PackageCS.class);
             assert UNBOXED_allInstances != null;
+            final @Nullable /*@Thrown*/ SetValue allInstances_11 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_RootCS, TYP_classescs_c_c_RootCS_1);
             final List<RootCS> UNBOXED_allInstances_11 = allInstances_11.asEcoreObjects(idResolver, RootCS.class);
             assert UNBOXED_allInstances_11 != null;
             // creations
@@ -743,7 +743,7 @@
                     mPackageCS2Package_LM(symbol_7);
                 }
             }
-            final @NonNull /*@Thrown*/ SetValue allInstances_0 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_PackageCS2Package, TYP_classescstraces_c_c_PackageCS2Package_0);
+            final @Nullable /*@Thrown*/ SetValue allInstances_0 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_PackageCS2Package, TYP_classescstraces_c_c_PackageCS2Package_0);
             final List<PackageCS2Package> UNBOXED_allInstances_0 = allInstances_0.asEcoreObjects(idResolver, PackageCS2Package.class);
             assert UNBOXED_allInstances_0 != null;
             ;
@@ -754,7 +754,7 @@
                 }
             }
             ;
-            for (Package symbol_21 : UNBOXED_allInstances_3) {
+            for (Package symbol_21 : UNBOXED_allInstances_5) {
                 if (symbol_21 != null) {
                     ;
                     for (PackageCS packageCS_6 : UNBOXED_allInstances) {
@@ -767,40 +767,40 @@
                 }
             }
             ;
-            for (Package symbol_29 : UNBOXED_allInstances_3) {
-                if (symbol_29 != null) {
+            for (ClassCS classCS_3 : UNBOXED_allInstances_7) {
+                if (classCS_3 != null) {
+                    final @NonNull /*@NonInvalid*/ ClassCS symbol_23 = (ClassCS)classCS_3;
+                    mClassCS2Class_LM(symbol_23);
+                }
+            }
+            final @Nullable /*@Thrown*/ SetValue allInstances_4 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_ClassCS2Class, TYP_classescstraces_c_c_ClassCS2Class_0);
+            final List<ClassCS2Class> UNBOXED_allInstances_4 = allInstances_4.asEcoreObjects(idResolver, ClassCS2Class.class);
+            assert UNBOXED_allInstances_4 != null;
+            ;
+            for (ClassCS2Class c2c_1 : UNBOXED_allInstances_4) {
+                if (c2c_1 != null) {
+                    final @NonNull /*@NonInvalid*/ ClassCS2Class symbol_27 = (ClassCS2Class)c2c_1;
+                    mClassCS2Class_MR(symbol_27);
+                }
+            }
+            ;
+            for (Package symbol_37 : UNBOXED_allInstances_5) {
+                if (symbol_37 != null) {
                     ;
                     for (PackageCS packageCS_7 : UNBOXED_allInstances) {
                         if (packageCS_7 != null) {
-                            final @NonNull /*@NonInvalid*/ Package symbol_24 = (Package)symbol_29;
-                            final @NonNull /*@NonInvalid*/ PackageCS symbol_25 = (PackageCS)packageCS_7;
-                            uPackage_ownedClasses(symbol_24, symbol_25);
+                            final @NonNull /*@NonInvalid*/ Package symbol_32 = (Package)symbol_37;
+                            final @NonNull /*@NonInvalid*/ PackageCS symbol_33 = (PackageCS)packageCS_7;
+                            uPackage_ownedClasses(symbol_32, symbol_33);
                         }
                     }
                 }
             }
             ;
-            for (ClassCS classCS_3 : UNBOXED_allInstances_7) {
-                if (classCS_3 != null) {
-                    final @NonNull /*@NonInvalid*/ ClassCS symbol_31 = (ClassCS)classCS_3;
-                    mClassCS2Class_LM(symbol_31);
-                }
-            }
-            final @NonNull /*@Thrown*/ SetValue allInstances_6 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_ClassCS2Class, TYP_classescstraces_c_c_ClassCS2Class_0);
-            final List<ClassCS2Class> UNBOXED_allInstances_6 = allInstances_6.asEcoreObjects(idResolver, ClassCS2Class.class);
-            assert UNBOXED_allInstances_6 != null;
-            ;
-            for (ClassCS2Class c2c_1 : UNBOXED_allInstances_6) {
-                if (c2c_1 != null) {
-                    final @NonNull /*@NonInvalid*/ ClassCS2Class symbol_35 = (ClassCS2Class)c2c_1;
-                    mClassCS2Class_MR(symbol_35);
-                }
-            }
-            ;
             for (ClassCS classCS_4 : UNBOXED_allInstances_7) {
                 if (classCS_4 != null) {
                     final @NonNull /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classes_c_c_Class_0 = idResolver.getClass(CLSSid_Class, null);
-                    final @NonNull /*@Thrown*/ SetValue allInstances_8 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_Class, TYP_classes_c_c_Class_0);
+                    final @Nullable /*@Thrown*/ SetValue allInstances_8 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_Class, TYP_classes_c_c_Class_0);
                     final List<classes.Class> UNBOXED_allInstances_8 = allInstances_8.asEcoreObjects(idResolver, classes.Class.class);
                     assert UNBOXED_allInstances_8 != null;
                     ;
@@ -820,7 +820,7 @@
                     mRootCS2Root_LM(symbol_47);
                 }
             }
-            final @NonNull /*@Thrown*/ SetValue allInstances_10 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_RootCS2Root, TYP_classescstraces_c_c_RootCS2Root_0);
+            final @Nullable /*@Thrown*/ SetValue allInstances_10 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_RootCS2Root, TYP_classescstraces_c_c_RootCS2Root_0);
             final List<RootCS2Root> UNBOXED_allInstances_10 = allInstances_10.asEcoreObjects(idResolver, RootCS2Root.class);
             assert UNBOXED_allInstances_10 != null;
             ;
@@ -834,7 +834,7 @@
             for (RootCS rootCS_4 : UNBOXED_allInstances_11) {
                 if (rootCS_4 != null) {
                     final @NonNull /*@NonInvalid*/ org.eclipse.ocl.pivot.Class TYP_classes_c_c_Root_0 = idResolver.getClass(CLSSid_Root, null);
-                    final @NonNull /*@Thrown*/ SetValue allInstances_12 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_Root, TYP_classes_c_c_Root_0);
+                    final @Nullable /*@Thrown*/ SetValue allInstances_12 = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_Root, TYP_classes_c_c_Root_0);
                     final List<Root> UNBOXED_allInstances_12 = allInstances_12.asEcoreObjects(idResolver, Root.class);
                     assert UNBOXED_allInstances_12 != null;
                     ;
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/hsv2hls.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/hsv2hls.java
index e3825b6..8cdd01b 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/hsv2hls.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/hsv2hls.java
@@ -128,7 +128,7 @@
             // creations
             // assignments
             // mapping statements
-            final @NonNull /*@Thrown*/ SetValue allInstances = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_HSVNode, TYP_HSVTree_c_c_HSVNode_0);
+            final @Nullable /*@Thrown*/ SetValue allInstances = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_HSVNode, TYP_HSVTree_c_c_HSVNode_0);
             final List<HSVNode> UNBOXED_allInstances = allInstances.asEcoreObjects(idResolver, HSVNode.class);
             assert UNBOXED_allInstances != null;
             ;
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/umlRdbms.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/umlRdbms.java
index 186bbf8..4aca01d 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/umlRdbms.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src-gen/cg/umlRdbms.java
@@ -199,7 +199,7 @@
             // creations
             // assignments
             // mapping statements
-            final @NonNull /*@Thrown*/ SetValue allInstances = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_Package, TYP_simpleuml_c_c_Package_0);
+            final @Nullable /*@Thrown*/ SetValue allInstances = ClassifierAllInstancesOperation.INSTANCE.evaluate(evaluator, SET_CLSSid_Package, TYP_simpleuml_c_c_Package_0);
             final List<Package> UNBOXED_allInstances = allInstances.asEcoreObjects(idResolver, Package.class);
             assert UNBOXED_allInstances != null;
             ;