Added filter with primitive type parameter.

Change-Id: I462e01ecad5276db0a30b7c80c227bbda06495c0
diff --git a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/parser/AstSerializer.java b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/parser/AstSerializer.java
index ad25d33..c8cb727 100644
--- a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/parser/AstSerializer.java
+++ b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/parser/AstSerializer.java
@@ -73,7 +73,10 @@
 	 */
 	private StringBuilder builder;
 
-	final Map<String, String> ePackagesURItoName = new HashMap<>();
+	/**
+	 * The mapping form nsURI to name.
+	 */
+	private final Map<String, String> ePackagesURItoName = new HashMap<>();
 
 	/**
 	 * Serializes the given {@link Expression}.
diff --git a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/parser/AstValidator.java b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/parser/AstValidator.java
index 130229d..fb5c48c 100644
--- a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/parser/AstValidator.java
+++ b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/parser/AstValidator.java
@@ -55,6 +55,7 @@
 import org.eclipse.acceleo.query.runtime.impl.ValidationMessage;
 import org.eclipse.acceleo.query.runtime.impl.ValidationResult;
 import org.eclipse.acceleo.query.runtime.impl.ValidationServices;
+import org.eclipse.acceleo.query.validation.type.ClassLiteralType;
 import org.eclipse.acceleo.query.validation.type.ClassType;
 import org.eclipse.acceleo.query.validation.type.EClassifierLiteralType;
 import org.eclipse.acceleo.query.validation.type.EClassifierSetLiteralType;
@@ -903,7 +904,8 @@
 					.getValue()));
 		} else if (object.getValue() instanceof Class<?>) {
 			possibleTypes = new LinkedHashSet<IType>();
-			possibleTypes.add(new ClassType(services.getQueryEnvironment(), (Class<?>)object.getValue()));
+			possibleTypes.add(new ClassLiteralType(services.getQueryEnvironment(), (Class<?>)object
+					.getValue()));
 		} else {
 			throw new UnsupportedOperationException(SHOULD_NEVER_HAPPEN);
 		}
@@ -1272,6 +1274,8 @@
 				for (EClassifier eClassifier : ((EClassifierSetLiteralType)iType).getEClassifiers()) {
 					res.add(new EClassifierType(queryEnvironment, eClassifier));
 				}
+			} else if (iType instanceof ClassLiteralType) {
+				res.add(new ClassType(queryEnvironment, ((ClassLiteralType)iType).getType()));
 			} else {
 				res.add(iType);
 			}
diff --git a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/runtime/impl/JavaMethodService.java b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/runtime/impl/JavaMethodService.java
index 8da25aa..d8aa9fd 100644
--- a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/runtime/impl/JavaMethodService.java
+++ b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/runtime/impl/JavaMethodService.java
@@ -24,6 +24,7 @@
 import org.eclipse.acceleo.query.runtime.IReadOnlyQueryEnvironment;
 import org.eclipse.acceleo.query.runtime.IValidationResult;
 import org.eclipse.acceleo.query.runtime.impl.completion.JavaMethodServiceCompletionProposal;
+import org.eclipse.acceleo.query.validation.type.ClassLiteralType;
 import org.eclipse.acceleo.query.validation.type.ClassType;
 import org.eclipse.acceleo.query.validation.type.EClassifierLiteralType;
 import org.eclipse.acceleo.query.validation.type.EClassifierType;
@@ -269,6 +270,8 @@
 						cls = Object.class;
 					}
 				}
+			} else if (iType instanceof ClassLiteralType) {
+				cls = Class.class;
 			} else if (iType instanceof IJavaType) {
 				cls = ((IJavaType)iType).getType();
 			} else {
diff --git a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/runtime/impl/ValidationServices.java b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/runtime/impl/ValidationServices.java
index a58004b..b07e82c 100644
--- a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/runtime/impl/ValidationServices.java
+++ b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/runtime/impl/ValidationServices.java
@@ -26,6 +26,7 @@
 import org.eclipse.acceleo.query.runtime.IReadOnlyQueryEnvironment;
 import org.eclipse.acceleo.query.runtime.IService;
 import org.eclipse.acceleo.query.runtime.IValidationResult;
+import org.eclipse.acceleo.query.validation.type.ClassLiteralType;
 import org.eclipse.acceleo.query.validation.type.ClassType;
 import org.eclipse.acceleo.query.validation.type.EClassifierLiteralType;
 import org.eclipse.acceleo.query.validation.type.EClassifierType;
@@ -420,6 +421,8 @@
 			if (type1.isAssignableFrom(type2) || type1.getType() == EcorePackage.eINSTANCE.getEObject()) {
 				if (type2 instanceof EClassifierLiteralType) {
 					result = new EClassifierType(queryEnvironment, ((EClassifierLiteralType)type2).getType());
+				} else if (type2 instanceof ClassLiteralType) {
+					result = new ClassType(queryEnvironment, ((ClassLiteralType)type2).getType());
 				} else {
 					result = type2;
 				}
@@ -427,6 +430,8 @@
 					.getEObject()) {
 				if (type1 instanceof EClassifierLiteralType) {
 					result = new EClassifierType(queryEnvironment, ((EClassifierLiteralType)type1).getType());
+				} else if (type1 instanceof ClassLiteralType) {
+					result = new ClassType(queryEnvironment, ((ClassLiteralType)type1).getType());
 				} else {
 					result = type1;
 				}
diff --git a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/CollectionServices.java b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/CollectionServices.java
index f506de0..c2c1084 100644
--- a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/CollectionServices.java
+++ b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/CollectionServices.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2015, 2017 Obeo.
+ * Copyright (c) 2015, 2020 Obeo.
  * 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
@@ -15,7 +15,6 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -43,6 +42,7 @@
 import org.eclipse.acceleo.query.runtime.impl.LambdaValue;
 import org.eclipse.acceleo.query.runtime.impl.Nothing;
 import org.eclipse.acceleo.query.runtime.impl.ValidationServices;
+import org.eclipse.acceleo.query.validation.type.ClassLiteralType;
 import org.eclipse.acceleo.query.validation.type.ClassType;
 import org.eclipse.acceleo.query.validation.type.EClassifierSetLiteralType;
 import org.eclipse.acceleo.query.validation.type.EClassifierType;
@@ -688,7 +688,7 @@
 				java.util.List<IType> argTypes) {
 			final Set<IType> result = new LinkedHashSet<IType>();
 
-			final Set<EClassifierType> rawTypes = new LinkedHashSet<EClassifierType>();
+			final Set<IType> rawTypes = new LinkedHashSet<IType>();
 
 			final IType receiverType = argTypes.get(0);
 			if (receiverType instanceof NothingType) {
@@ -696,6 +696,8 @@
 			} else if (receiverType instanceof ICollectionType && ((ICollectionType)receiverType)
 					.getCollectionType() instanceof NothingType) {
 				result.add(receiverType);
+			} else if (argTypes.get(1) instanceof ClassLiteralType) {
+				rawTypes.add(new ClassType(queryEnvironment, ((ClassLiteralType)argTypes.get(1)).getType()));
 			} else if (argTypes.get(1) instanceof ClassType && ((ClassType)argTypes.get(1))
 					.getType() == null) {
 				result.add(services.nothing("EClassifier on %s cannot be null.", getName()));
@@ -707,7 +709,7 @@
 					rawTypes.add(new EClassifierType(queryEnvironment, eCls));
 				}
 			}
-			for (EClassifierType rawType : rawTypes) {
+			for (IType rawType : rawTypes) {
 				result.add(createReturnCollectionWithType(queryEnvironment, rawType));
 			}
 
@@ -1875,6 +1877,38 @@
 
 	// @formatter:off
 	@Documentation(
+		value = "Keeps only instances of the given primitive type (String, Integer, Real, Boolean) from the given set.",
+		params = {
+			@Param(name = "set", value = "The input set to filter"),
+			@Param(name = "cls", value = "The type used to filters element in the set")
+		},
+		result = "A new set containing instances of the given primitive type or null if the given set is null",
+		examples = {
+			@Example(expression = "OrderedSet{'a', 1, 3.14}->filter(String)", result = "OrederedSet{'a'}")
+		}
+	)
+	// @formatter:on
+	public <T> Set<T> filter(Set<T> set, Class<?> cls) {
+		final Set<T> result;
+
+		if (set == null) {
+			result = null;
+		} else if (cls != null) {
+			result = new LinkedHashSet<T>();
+			for (T value : set) {
+				if (cls.isInstance(value)) {
+					result.add(value);
+				}
+			}
+		} else {
+			result = new LinkedHashSet<T>();
+		}
+
+		return result;
+	}
+
+	// @formatter:off
+	@Documentation(
 		value = "Keeps only instances of the given EClassifier from the given set.",
 		params = {
 			@Param(name = "set", value = "The input set to filter"),
@@ -1887,7 +1921,7 @@
 		}
 	)
 	// @formatter:on
-	public <T> Set<T> filter(Set<T> set, final EClassifier eClassifier) {
+	public <T> Set<T> filter(Set<T> set, EClassifier eClassifier) {
 		final Set<T> result;
 
 		if (set == null) {
@@ -1917,7 +1951,7 @@
 		}
 	)
 	// @formatter:on
-	public <T> Set<T> filter(Set<T> set, final Set<EClassifier> eClassifiers) {
+	public <T> Set<T> filter(Set<T> set, Set<EClassifier> eClassifiers) {
 		final Set<T> result;
 
 		if (set == null) {
@@ -1941,6 +1975,38 @@
 
 	// @formatter:off
 	@Documentation(
+		value = "Keeps only instances of the given primitive type (String, Integer, Real, Boolean) from the given sequence.",
+		params = {
+			@Param(name = "sequence", value = "The input sequence to filter"),
+			@Param(name = "cls", value = "The type used to filters element in the sequence")
+		},
+		result = "A new sequence containing instances of the given primitive type or null if the given sequence is null",
+		examples = {
+			@Example(expression = "Sequence{'a', 1, 3.14}->filter(String)", result = "Sequence{'a'}")
+		}
+	)
+	// @formatter:on
+	public <T> List<T> filter(List<T> sequence, Class<?> cls) {
+		final List<T> result;
+
+		if (sequence == null) {
+			result = null;
+		} else if (cls != null) {
+			result = new ArrayList<T>();
+			for (T value : sequence) {
+				if (cls.isInstance(value)) {
+					result.add(value);
+				}
+			}
+		} else {
+			result = new ArrayList<T>();
+		}
+
+		return result;
+	}
+
+	// @formatter:off
+	@Documentation(
 		value = "Keeps only instances of the given EClassifier in the given sequence.",
 		params = {
 			@Param(name = "sequence", value = "The input sequence to filter"),
@@ -1953,7 +2019,7 @@
 		}
 	)
 	// @formatter:on
-	public <T> List<T> filter(List<T> sequence, final EClassifier eClassifier) {
+	public <T> List<T> filter(List<T> sequence, EClassifier eClassifier) {
 		final List<T> result;
 
 		if (sequence == null) {
@@ -1983,7 +2049,7 @@
 		}
 	)
 	// @formatter:on
-	public <T> List<T> filter(List<T> sequence, final Set<EClassifier> eClassifiers) {
+	public <T> List<T> filter(List<T> sequence, Set<EClassifier> eClassifiers) {
 		final List<T> result;
 
 		if (sequence == null) {
@@ -2890,52 +2956,4 @@
 		return res;
 	}
 
-	/**
-	 * Evaluates a lambda then uses the result as comparables.
-	 */
-	private static final class LambdaComparator<T> implements Comparator<T> {
-		/**
-		 * Pre-populated map linking the objects from the collection we're sorting with the values calculated
-		 * by this lambda.
-		 */
-		private final Map<T, Object> preComputedValues;
-
-		/**
-		 * Constructs a comparator given its lambda.
-		 * 
-		 * @param lambda
-		 *            the lambda providing our comparables.
-		 */
-		LambdaComparator(Map<T, Object> preComputedValues) {
-			this.preComputedValues = preComputedValues;
-		}
-
-		@Override
-		public int compare(T o1, T o2) {
-			final int result;
-
-			Object o1Result = preComputedValues.get(o1);
-			Object o2Result = preComputedValues.get(o2);
-			try {
-				if (o1Result instanceof Comparable<?>) {
-					@SuppressWarnings("unchecked")
-					Comparable<Object> c1 = (Comparable<Object>)o1Result;
-					result = c1.compareTo(o2Result);
-				} else if (o2Result instanceof Comparable<?>) {
-					@SuppressWarnings("unchecked")
-					Comparable<Object> c2 = (Comparable<Object>)o2Result;
-					result = -c2.compareTo(o1Result);
-				} else {
-					result = 0;
-				}
-				// CHECKSTYLE:OFF
-			} catch (Exception e) {
-				// CHECKSTYLE:ON
-				throw new IllegalArgumentException("Cannot compare " + o1 + " with " + o2, e);
-			}
-
-			return result;
-		}
-	}
-
 }
diff --git a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/LambdaComparator.java b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/LambdaComparator.java
new file mode 100644
index 0000000..01a6819
--- /dev/null
+++ b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/services/LambdaComparator.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2015, 2020 Obeo.
+ * 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.acceleo.query.services;
+
+import java.util.Comparator;
+import java.util.Map;
+
+/**
+ * Evaluates a lambda then uses the result as comparables.
+ */
+final class LambdaComparator<T> implements Comparator<T> {
+	/**
+	 * Pre-populated map linking the objects from the collection we're sorting with the values calculated by
+	 * this lambda.
+	 */
+	private final Map<T, Object> preComputedValues;
+
+	/**
+	 * Constructs a comparator given its lambda.
+	 * 
+	 * @param preComputedValues
+	 *            Pre-populated map linking the objects from the collection we're sorting with the values
+	 *            calculated by this lambda
+	 */
+	LambdaComparator(Map<T, Object> preComputedValues) {
+		this.preComputedValues = preComputedValues;
+	}
+
+	@Override
+	public int compare(T o1, T o2) {
+		final int result;
+
+		Object o1Result = preComputedValues.get(o1);
+		Object o2Result = preComputedValues.get(o2);
+		try {
+			if (o1Result instanceof Comparable<?>) {
+				@SuppressWarnings("unchecked")
+				Comparable<Object> c1 = (Comparable<Object>)o1Result;
+				result = c1.compareTo(o2Result);
+			} else if (o2Result instanceof Comparable<?>) {
+				@SuppressWarnings("unchecked")
+				Comparable<Object> c2 = (Comparable<Object>)o2Result;
+				result = -c2.compareTo(o1Result);
+			} else {
+				result = 0;
+			}
+			// CHECKSTYLE:OFF
+		} catch (Exception e) {
+			// CHECKSTYLE:ON
+			throw new IllegalArgumentException("Cannot compare " + o1 + " with " + o2, e);
+		}
+
+		return result;
+	}
+}
diff --git a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/validation/type/AbstractType.java b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/validation/type/AbstractType.java
index 2d46a47..c46567b 100644
--- a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/validation/type/AbstractType.java
+++ b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/validation/type/AbstractType.java
@@ -1,15 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2015 Obeo.
- * 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:
- *     Obeo - initial API and implementation
- *******************************************************************************/
-/*******************************************************************************
- * Copyright (c) 2015 Obeo.
+ * Copyright (c) 2015, 2020 Obeo.
  * 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
@@ -110,6 +100,6 @@
 	 */
 	@Override
 	public boolean equals(Object obj) {
-		return getClass() == obj.getClass() && ((AbstractType)obj).getType().equals(getType());
+		return ((AbstractType)obj).getType().equals(getType());
 	}
 }
diff --git a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/validation/type/ClassLiteralType.java b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/validation/type/ClassLiteralType.java
new file mode 100644
index 0000000..d5c6a9b
--- /dev/null
+++ b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/validation/type/ClassLiteralType.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2020 Obeo.
+ * 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:
+ *     Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.acceleo.query.validation.type;
+
+import org.eclipse.acceleo.query.runtime.IReadOnlyQueryEnvironment;
+
+/**
+ * {@link Class} literal validation type.
+ * 
+ * @author <a href="mailto:yvan.lussaud@obeo.fr">Yvan Lussaud</a>
+ */
+public final class ClassLiteralType extends ClassType {
+
+	/**
+	 * Constructor.
+	 * 
+	 * @param queryEnvironment
+	 *            the {@link IReadOnlyQueryEnvironment}
+	 * @param type
+	 *            the {@link Class}
+	 */
+	public ClassLiteralType(IReadOnlyQueryEnvironment queryEnvironment, Class<?> type) {
+		super(queryEnvironment, type);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 *
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		return "ClassLiteral=" + super.toString();
+	}
+
+}
diff --git a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/validation/type/ClassType.java b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/validation/type/ClassType.java
index ba92baf..f312e1a 100644
--- a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/validation/type/ClassType.java
+++ b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/validation/type/ClassType.java
@@ -17,7 +17,7 @@
  * 
  * @author <a href="mailto:yvan.lussaud@obeo.fr">Yvan Lussaud</a>
  */
-public final class ClassType extends AbstractJavaType implements IJavaType {
+public class ClassType extends AbstractJavaType implements IJavaType {
 
 	/**
 	 * The {@link Class}.
@@ -90,9 +90,9 @@
 		final boolean result;
 
 		if (type != null) {
-			result = obj.getClass() == getClass() && type.equals(((ClassType)obj).getType());
+			result = obj instanceof ClassType && type.equals(((ClassType)obj).getType());
 		} else {
-			result = obj.getClass() == getClass() && ((ClassType)obj).getType() == null;
+			result = obj instanceof ClassType && ((ClassType)obj).getType() == null;
 		}
 
 		return result;
diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/parser/tests/CompletionTest.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/parser/tests/CompletionTest.java
index 91e62a9..8f8c0a0 100644
--- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/parser/tests/CompletionTest.java
+++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/parser/tests/CompletionTest.java
@@ -266,7 +266,7 @@
 	public void selfArrowTest() {
 		final ICompletionResult completionResult = engine.getCompletion("self->", 6, variableTypes);
 
-		assertCompletion(completionResult, 48, "", "", 6, 0, "size()", "including()");
+		assertCompletion(completionResult, 49, "", "", 6, 0, "size()", "including()");
 		assertNoVariableCompletionProposal(completionResult);
 		assertNoFeatureCompletionProposal(completionResult);
 		assertNoEOperationCompletionProposal(completionResult);
@@ -290,7 +290,7 @@
 		final ICompletionResult arrowCompletionResult = engine.getCompletion("Sequence{self}->", 16,
 				variableTypes);
 
-		assertCompletion(arrowCompletionResult, 47, "", "", 16, 0, "size()", "select()", "collect()");
+		assertCompletion(arrowCompletionResult, 48, "", "", 16, 0, "size()", "select()", "collect()");
 	}
 
 	@Test
@@ -561,7 +561,7 @@
 		final ICompletionResult completionResult = engine.getCompletion(
 				"self.eClassifiers->select(p | self->)", 36, variableTypes);
 
-		assertCompletion(completionResult, 48, "", "", 36, 0, "size()", "first()");
+		assertCompletion(completionResult, 49, "", "", 36, 0, "size()", "first()");
 		assertNoVariableCompletionProposal(completionResult);
 		assertNoVariableDeclarationCompletionProposal(completionResult);
 	}
@@ -588,7 +588,7 @@
 		final ICompletionResult completionResult = engine.getCompletion(
 				"self.eClassifiers->select(w | self.eClassifiers->select(p | self->))", 66, variableTypes);
 
-		assertCompletion(completionResult, 48, "", "", 66, 0, "size()", "first()");
+		assertCompletion(completionResult, 49, "", "", 66, 0, "size()", "first()");
 		assertNoVariableCompletionProposal(completionResult);
 		assertNoVariableDeclarationCompletionProposal(completionResult);
 	}
@@ -913,7 +913,7 @@
 
 		final ICompletionResult completionResult = engine.getCompletion("OrderedSet{}->", 14, types);
 
-		assertCompletion(completionResult, 48, "", "", 14, 0, "size()", "first()");
+		assertCompletion(completionResult, 49, "", "", 14, 0, "size()", "first()");
 		assertNoEOperationCompletionProposal(completionResult);
 		assertNoVariableCompletionProposal(completionResult);
 		assertNoVariableDeclarationCompletionProposal(completionResult);
@@ -925,7 +925,7 @@
 
 		final ICompletionResult completionResult = engine.getCompletion("Sequence{}->", 12, types);
 
-		assertCompletion(completionResult, 47, "", "", 12, 0, "size()", "first()");
+		assertCompletion(completionResult, 48, "", "", 12, 0, "size()", "first()");
 		assertNoEOperationCompletionProposal(completionResult);
 		assertNoVariableCompletionProposal(completionResult);
 		assertNoVariableDeclarationCompletionProposal(completionResult);
@@ -985,7 +985,7 @@
 		final ICompletionResult completionResult = engine.getCompletion("{ecore::EClass}->", 17,
 				variableTypes);
 
-		assertCompletion(completionResult, 48, "", "", 17, 0, "size()", "first()");
+		assertCompletion(completionResult, 49, "", "", 17, 0, "size()", "first()");
 		assertNoVariableCompletionProposal(completionResult);
 		assertNoVariableDeclarationCompletionProposal(completionResult);
 		assertNoFeatureCompletionProposal(completionResult);
@@ -1138,7 +1138,7 @@
 
 		final ICompletionResult completionResult = engine.getCompletion("self->", 6, types);
 
-		assertCompletion(completionResult, 48, "", "", 6, 0, "size()", "first()");
+		assertCompletion(completionResult, 49, "", "", 6, 0, "size()", "first()");
 		assertNoEOperationCompletionProposal(completionResult);
 		assertNoFeatureCompletionProposal(completionResult);
 		assertNoVariableCompletionProposal(completionResult);
@@ -1154,7 +1154,7 @@
 
 		final ICompletionResult completionResult = engine.getCompletion("self->", 6, types);
 
-		assertCompletion(completionResult, 48, "", "", 6, 0, "size()", "first()");
+		assertCompletion(completionResult, 49, "", "", 6, 0, "size()", "first()");
 		assertNoVariableCompletionProposal(completionResult);
 		assertNoFeatureCompletionProposal(completionResult);
 		assertNoEOperationCompletionProposal(completionResult);
@@ -1170,7 +1170,7 @@
 
 		final ICompletionResult completionResult = engine.getCompletion("self->", 6, types);
 
-		assertCompletion(completionResult, 47, "", "", 6, 0, "size()", "first()");
+		assertCompletion(completionResult, 48, "", "", 6, 0, "size()", "first()");
 		assertNoVariableCompletionProposal(completionResult);
 		assertNoFeatureCompletionProposal(completionResult);
 		assertNoEOperationCompletionProposal(completionResult);
diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/AbstractServicesValidationTest.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/AbstractServicesValidationTest.java
index 13082d2..05cb5e4 100644
--- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/AbstractServicesValidationTest.java
+++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/AbstractServicesValidationTest.java
@@ -22,6 +22,7 @@
 import org.eclipse.acceleo.query.runtime.IValidationResult;
 import org.eclipse.acceleo.query.runtime.impl.AbstractLanguageServices;
 import org.eclipse.acceleo.query.runtime.impl.QueryValidationEngine;
+import org.eclipse.acceleo.query.validation.type.ClassLiteralType;
 import org.eclipse.acceleo.query.validation.type.ClassType;
 import org.eclipse.acceleo.query.validation.type.EClassifierLiteralType;
 import org.eclipse.acceleo.query.validation.type.EClassifierSetLiteralType;
@@ -128,6 +129,10 @@
 		return new ClassType(getQueryEnvironment(), cls);
 	}
 
+	protected ClassType classLiteralType(Class<?> cls) {
+		return new ClassLiteralType(getQueryEnvironment(), cls);
+	}
+
 	protected EClassifierType eClassifierType(EClassifier eClassifier) {
 		return new EClassifierType(getQueryEnvironment(), eClassifier);
 	}
@@ -174,7 +179,9 @@
 		final Class<?> result;
 
 		final Object t = type.getType();
-		if (t instanceof Class<?>) {
+		if (type instanceof ClassLiteralType) {
+			result = Class.class;
+		} else if (t instanceof Class<?>) {
 			result = (Class<?>)t;
 		} else if (type instanceof EClassifierLiteralType) {
 			result = EClass.class;
diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/AnyServicesAstValidationTest.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/AnyServicesAstValidationTest.java
index 5433f3a..b55b707 100644
--- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/AnyServicesAstValidationTest.java
+++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/AnyServicesAstValidationTest.java
@@ -373,6 +373,96 @@
 	}
 
 	@Test
+	public void testOclAsTypeSameTypeClass() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("var", classType(String.class));
+		final IValidationResult validationResult = validate("var.oclAsType(String)", variables.build());
+
+		assertTrue(validationResult.getMessages().isEmpty());
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(String.class)), types);
+	}
+
+	@Test
+	public void testOclAsTypeSameTypeClassLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("var", classLiteralType(String.class));
+		final IValidationResult validationResult = validate("var.oclAsType(String)", variables.build());
+
+		assertTrue(validationResult.getMessages().isEmpty());
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(String.class)), types);
+	}
+
+	@Test
+	public void testOclAsTypeSameTypeEClassifierLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("eCls", eClassifierLiteralType(
+				EcorePackage.eINSTANCE.getEClass()));
+		final IValidationResult validationResult = validate("eCls.oclAsType(ecore::EClass)", variables
+				.build());
+
+		assertTrue(validationResult.getMessages().isEmpty());
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(eClassifierType(EcorePackage.eINSTANCE.getEClass())), types);
+	}
+
+	@Test
+	public void testOclAsTypeNotCompatibleTypeClass() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("var", classType(String.class));
+		final IValidationResult validationResult = validate("var.oclAsType(Integer)", variables.build());
+
+		final String expectedMessage = "Nothing will be left after calling oclAsType:\n"
+				+ "java.lang.String is not compatible with type ClassLiteral=java.lang.Integer";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.ERROR, expectedMessage, 3, 22);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(1, types.size());
+		final Iterator<IType> it = types.iterator();
+		final IType type = it.next();
+		assertTrue(type instanceof NothingType);
+		assertEquals(expectedMessage, ((NothingType)type).getMessage());
+	}
+
+	@Test
+	public void testOclAsTypeNotCompatibleTypeClassLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("var", classLiteralType(String.class));
+		final IValidationResult validationResult = validate("var.oclAsType(Integer)", variables.build());
+
+		final String expectedMessage = "Nothing will be left after calling oclAsType:\n"
+				+ "ClassLiteral=java.lang.String is not compatible with type ClassLiteral=java.lang.Integer";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.ERROR, expectedMessage, 3, 22);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(1, types.size());
+		final Iterator<IType> it = types.iterator();
+		final IType type = it.next();
+		assertTrue(type instanceof NothingType);
+		assertEquals(expectedMessage, ((NothingType)type).getMessage());
+	}
+
+	@Test
 	public void testOclAsTypeNotCompatibleType() {
 		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
 		final VariableBuilder variables = new VariableBuilder().addVar("eCls", eClassifierType(
@@ -398,6 +488,31 @@
 	}
 
 	@Test
+	public void testOclAsTypeNotCompatibleTypeECLassifierLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("eCls", eClassifierLiteralType(
+				EcorePackage.eINSTANCE.getEClass()));
+		final IValidationResult validationResult = validate("eCls.oclAsType(ecore::EPackage)", variables
+				.build());
+
+		final String expectedMessage = "Nothing will be left after calling oclAsType:\n"
+				+ "EClassifierLiteral=EClass is not compatible with type EClassifierLiteral=EPackage";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.ERROR, expectedMessage, 4, 31);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(1, types.size());
+		final Iterator<IType> it = types.iterator();
+		final IType type = it.next();
+		assertTrue(type instanceof NothingType);
+		assertEquals(expectedMessage, ((NothingType)type).getMessage());
+	}
+
+	@Test
 	public void testOclAsTypeMayBeCompatibleType() {
 		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
 		final VariableBuilder variables = new VariableBuilder().addVar("eClasssifier", eClassifierType(
@@ -414,6 +529,22 @@
 	}
 
 	@Test
+	public void testOclAsTypeMayBeCompatibleTypeECLassifierLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("eClasssifier", eClassifierLiteralType(
+				EcorePackage.eINSTANCE.getEClassifier()));
+		final IValidationResult validationResult = validate("eClasssifier.oclAsType(ecore::EClass)", variables
+				.build());
+
+		assertTrue(validationResult.getMessages().isEmpty());
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(eClassifierType(EcorePackage.eINSTANCE.getEClass())), types);
+	}
+
+	@Test
 	public void testOclIsKindOfNullNull() {
 		final IValidationResult validationResult = validate("null.oclIsKindOf(null)");
 
@@ -484,6 +615,44 @@
 	}
 
 	@Test
+	public void testOclIsKindOfSameTypeClass() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("var", classType(String.class));
+		final IValidationResult validationResult = validate("var.oclIsKindOf(String)", variables.build());
+
+		final String expectedMessage = "Always true:\n"
+				+ "Nothing inferred when var (java.lang.String) is not kind of ClassLiteral=java.lang.String";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.INFO, expectedMessage, 0, 23);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(Boolean.class)), types);
+	}
+
+	@Test
+	public void testOclIsKindOfSameTypeClassLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("var", classLiteralType(String.class));
+		final IValidationResult validationResult = validate("var.oclIsKindOf(String)", variables.build());
+
+		final String expectedMessage = "Always true:\n"
+				+ "Nothing inferred when var (ClassLiteral=java.lang.String) is not kind of ClassLiteral=java.lang.String";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.INFO, expectedMessage, 0, 23);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(Boolean.class)), types);
+	}
+
+	@Test
 	public void testOclIsKindOfSameType() {
 		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
 		final VariableBuilder variables = new VariableBuilder().addVar("eCls", eClassifierType(
@@ -505,6 +674,65 @@
 	}
 
 	@Test
+	public void testOclIsKindOfSameTypeEClassifierLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("eCls", eClassifierLiteralType(
+				EcorePackage.eINSTANCE.getEClass()));
+		final IValidationResult validationResult = validate("eCls.oclIsKindOf(ecore::EClass)", variables
+				.build());
+
+		final String expectedMessage = "Always true:\n"
+				+ "Nothing inferred when eCls (EClassifierLiteral=EClass) is not kind of EClassifierLiteral=EClass";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.INFO, expectedMessage, 0, 31);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(Boolean.class)), types);
+	}
+
+	@Test
+	public void testOclIsKindOfNotCompatibleTypeClass() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("var", classType(String.class));
+		final IValidationResult validationResult = validate("var.oclIsKindOf(Integer)", variables.build());
+
+		final String expectedMessage = "Always false:\n"
+				+ "Nothing inferred when var (java.lang.String) is kind of ClassLiteral=java.lang.Integer";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.INFO, expectedMessage, 0, 24);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(Boolean.class)), types);
+	}
+
+	@Test
+	public void testOclIsKindOfNotCompatibleTypeClassLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("var", classLiteralType(String.class));
+		final IValidationResult validationResult = validate("var.oclIsKindOf(Integer)", variables.build());
+
+		final String expectedMessage = "Always false:\n"
+				+ "Nothing inferred when var (ClassLiteral=java.lang.String) is kind of ClassLiteral=java.lang.Integer";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.INFO, expectedMessage, 0, 24);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(Boolean.class)), types);
+	}
+
+	@Test
 	public void testOclIsKindOfNotCompatibleType() {
 		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
 		final VariableBuilder variables = new VariableBuilder().addVar("eCls", eClassifierType(
@@ -526,6 +754,27 @@
 	}
 
 	@Test
+	public void testOclIsKindOfNotCompatibleTypeEClassifierLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("eCls", eClassifierLiteralType(
+				EcorePackage.eINSTANCE.getEClass()));
+		final IValidationResult validationResult = validate("eCls.oclIsKindOf(ecore::EPackage)", variables
+				.build());
+
+		final String expectedMessage = "Always false:\n"
+				+ "Nothing inferred when eCls (EClassifierLiteral=EClass) is kind of EClassifierLiteral=EPackage";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.INFO, expectedMessage, 0, 33);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(Boolean.class)), types);
+	}
+
+	@Test
 	public void testOclIsKindOfMayBeCompatibleType() {
 		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
 		final VariableBuilder variables = new VariableBuilder().addVar("eClasssifier", eClassifierType(
@@ -542,6 +791,22 @@
 	}
 
 	@Test
+	public void testOclIsKindOfMayBeCompatibleTypeEClassifierLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("eClasssifier", eClassifierLiteralType(
+				EcorePackage.eINSTANCE.getEClassifier()));
+		final IValidationResult validationResult = validate("eClasssifier.oclIsKindOf(ecore::EClass)",
+				variables.build());
+
+		assertTrue(validationResult.getMessages().isEmpty());
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(Boolean.class)), types);
+	}
+
+	@Test
 	public void testOclIsTypeOfNullNull() {
 		final IValidationResult validationResult = validate("null.oclIsTypeOf(null)");
 
@@ -612,6 +877,44 @@
 	}
 
 	@Test
+	public void testOclIsTypeOfSameTypeClass() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("var", classType(String.class));
+		final IValidationResult validationResult = validate("var.oclIsTypeOf(String)", variables.build());
+
+		final String expectedMessage = "Always true:\n"
+				+ "Nothing inferred when var (java.lang.String) is not type of ClassLiteral=java.lang.String";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.INFO, expectedMessage, 0, 23);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(Boolean.class)), types);
+	}
+
+	@Test
+	public void testOclIsTypeOfSameTypeClassLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("var", classLiteralType(String.class));
+		final IValidationResult validationResult = validate("var.oclIsTypeOf(String)", variables.build());
+
+		final String expectedMessage = "Always true:\n"
+				+ "Nothing inferred when var (ClassLiteral=java.lang.String) is not type of ClassLiteral=java.lang.String";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.INFO, expectedMessage, 0, 23);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(Boolean.class)), types);
+	}
+
+	@Test
 	public void testOclIsTypeOfSameType() {
 		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
 		final VariableBuilder variables = new VariableBuilder().addVar("eCls", eClassifierType(
@@ -633,6 +936,65 @@
 	}
 
 	@Test
+	public void testOclIsTypeOfSameTypeEClassifierLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("eCls", eClassifierLiteralType(
+				EcorePackage.eINSTANCE.getEClass()));
+		final IValidationResult validationResult = validate("eCls.oclIsTypeOf(ecore::EClass)", variables
+				.build());
+
+		final String expectedMessage = "Always true:\n"
+				+ "Nothing inferred when eCls (EClassifierLiteral=EClass) is not type of EClassifierLiteral=EClass";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.INFO, expectedMessage, 0, 31);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(Boolean.class)), types);
+	}
+
+	@Test
+	public void testOclIsTypeOfNotCompatibleTypeClass() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("var", classType(String.class));
+		final IValidationResult validationResult = validate("var.oclIsTypeOf(Integer)", variables.build());
+
+		final String expectedMessage = "Always false:\n"
+				+ "Nothing inferred when var (java.lang.String) is type of ClassLiteral=java.lang.Integer";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.INFO, expectedMessage, 0, 24);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(Boolean.class)), types);
+	}
+
+	@Test
+	public void testOclIsTypeOfNotCompatibleTypeClassLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("var", classLiteralType(String.class));
+		final IValidationResult validationResult = validate("var.oclIsTypeOf(Integer)", variables.build());
+
+		final String expectedMessage = "Always false:\n"
+				+ "Nothing inferred when var (ClassLiteral=java.lang.String) is type of ClassLiteral=java.lang.Integer";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.INFO, expectedMessage, 0, 24);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(Boolean.class)), types);
+	}
+
+	@Test
 	public void testOclIsTypeOfNotCompatibleType() {
 		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
 		final VariableBuilder variables = new VariableBuilder().addVar("eCls", eClassifierType(
@@ -654,6 +1016,27 @@
 	}
 
 	@Test
+	public void testOclIsTypeOfNotCompatibleTypeEClassifierLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("eCls", eClassifierLiteralType(
+				EcorePackage.eINSTANCE.getEClass()));
+		final IValidationResult validationResult = validate("eCls.oclIsTypeOf(ecore::EPackage)", variables
+				.build());
+
+		final String expectedMessage = "Always false:\n"
+				+ "Nothing inferred when eCls (EClassifierLiteral=EClass) is type of EClassifierLiteral=EPackage";
+
+		assertEquals(1, validationResult.getMessages().size());
+		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
+				ValidationMessageLevel.INFO, expectedMessage, 0, 33);
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(Boolean.class)), types);
+	}
+
+	@Test
 	public void testOclIsTypeOfMayBeCompatibleType() {
 		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
 		final VariableBuilder variables = new VariableBuilder().addVar("eClasssifier", eClassifierType(
@@ -670,6 +1053,22 @@
 	}
 
 	@Test
+	public void testOclIsTypeOfMayBeCompatibleTypeEClassifierLiteral() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final VariableBuilder variables = new VariableBuilder().addVar("eClasssifier", eClassifierLiteralType(
+				EcorePackage.eINSTANCE.getEClassifier()));
+		final IValidationResult validationResult = validate("eClasssifier.oclIsTypeOf(ecore::EClass)",
+				variables.build());
+
+		assertTrue(validationResult.getMessages().isEmpty());
+
+		final AstResult ast = validationResult.getAstResult();
+		final Set<IType> types = validationResult.getPossibleTypes(ast.getAst());
+
+		assertEquals(Collections.singleton(classType(Boolean.class)), types);
+	}
+
+	@Test
 	public void testToStringNull() {
 		final IValidationResult validationResult = validate("null.toString()");
 
diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesAstValidationTest.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesAstValidationTest.java
index 8541e94..6181082 100644
--- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesAstValidationTest.java
+++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesAstValidationTest.java
@@ -1976,7 +1976,7 @@
 		final IValidationResult validationResult = validate(
 				"Sequence{'hello'}->select(i | i.oclIsKindOf(String))");
 
-		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of java.lang.String";
+		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of ClassLiteral=java.lang.String";
 		assertEquals(1, validationResult.getMessages().size());
 		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
 				ValidationMessageLevel.INFO, message, 30, 51);
@@ -1992,7 +1992,7 @@
 		final IValidationResult validationResult = validate(
 				"Sequence{'hello'}->select(i | not i.oclIsKindOf(Integer))");
 
-		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of java.lang.Integer";
+		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of ClassLiteral=java.lang.Integer";
 		assertEquals(1, validationResult.getMessages().size());
 		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
 				ValidationMessageLevel.INFO, message, 34, 56);
@@ -2082,7 +2082,7 @@
 		final IValidationResult validationResult = validate(
 				"OrderedSet{'hello'}->select(i | i.oclIsKindOf(String))");
 
-		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of java.lang.String";
+		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of ClassLiteral=java.lang.String";
 		assertEquals(1, validationResult.getMessages().size());
 		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
 				ValidationMessageLevel.INFO, message, 32, 53);
@@ -2098,7 +2098,7 @@
 		final IValidationResult validationResult = validate(
 				"OrderedSet{'hello'}->select(i | i.oclIsKindOf(Integer))");
 
-		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of java.lang.Integer";
+		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of ClassLiteral=java.lang.Integer";
 		assertEquals(1, validationResult.getMessages().size());
 		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
 				ValidationMessageLevel.INFO, message, 32, 54);
@@ -2341,7 +2341,7 @@
 		final IValidationResult validationResult = validate(
 				"Sequence{'hello', 'world'}->collect(i | i.oclIsKindOf(String))");
 
-		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of java.lang.String";
+		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of ClassLiteral=java.lang.String";
 		assertEquals(1, validationResult.getMessages().size());
 		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
 				ValidationMessageLevel.INFO, message, 40, 61);
@@ -2357,7 +2357,7 @@
 		final IValidationResult validationResult = validate(
 				"Sequence{1, 2}->collect(i | i.oclIsKindOf(String))");
 
-		String message = "Always false:\nNothing inferred when i (java.lang.Integer) is kind of java.lang.String";
+		String message = "Always false:\nNothing inferred when i (java.lang.Integer) is kind of ClassLiteral=java.lang.String";
 		assertEquals(1, validationResult.getMessages().size());
 		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
 				ValidationMessageLevel.INFO, message, 28, 49);
@@ -2452,7 +2452,7 @@
 		final IValidationResult validationResult = validate(
 				"OrderedSet{'hello', 'world'}->collect(i | i.oclIsKindOf(String))");
 
-		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of java.lang.String";
+		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of ClassLiteral=java.lang.String";
 		assertEquals(1, validationResult.getMessages().size());
 		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
 				ValidationMessageLevel.INFO, message, 42, 63);
@@ -2468,7 +2468,7 @@
 		final IValidationResult validationResult = validate(
 				"OrderedSet{1, 2}->collect(i | i.oclIsKindOf(String))");
 
-		String message = "Always false:\nNothing inferred when i (java.lang.Integer) is kind of java.lang.String";
+		String message = "Always false:\nNothing inferred when i (java.lang.Integer) is kind of ClassLiteral=java.lang.String";
 		assertEquals(1, validationResult.getMessages().size());
 		ValidationTest.assertValidationMessage(validationResult.getMessages().get(0),
 				ValidationMessageLevel.INFO, message, 30, 51);
@@ -3419,7 +3419,7 @@
 		final IValidationResult validationResult = validate(
 				"Sequence{'hello', 'world'}->any(i | i.oclIsKindOf(String))");
 
-		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of java.lang.String";
+		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of ClassLiteral=java.lang.String";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -3436,7 +3436,7 @@
 		final IValidationResult validationResult = validate(
 				"Sequence{'hello', 'world'}->any(i | i.oclIsKindOf(Integer))");
 
-		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of java.lang.Integer";
+		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of ClassLiteral=java.lang.Integer";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -3550,7 +3550,7 @@
 		final IValidationResult validationResult = validate(
 				"OrderedSet{'hello', 'world'}->any(i | i.oclIsKindOf(String))");
 
-		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of java.lang.String";
+		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of ClassLiteral=java.lang.String";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -3567,7 +3567,7 @@
 		final IValidationResult validationResult = validate(
 				"OrderedSet{'hello', 'world'}->any(i | i.oclIsKindOf(Integer))");
 
-		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of java.lang.Integer";
+		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of ClassLiteral=java.lang.Integer";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -3753,7 +3753,7 @@
 		final IValidationResult validationResult = validate(
 				"Sequence{'hello', 'world'}->exists(i | i.oclIsKindOf(String))");
 
-		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of java.lang.String";
+		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of ClassLiteral=java.lang.String";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -3770,7 +3770,7 @@
 		final IValidationResult validationResult = validate(
 				"Sequence{'hello', 'world'}->exists(i | i.oclIsKindOf(Integer))");
 
-		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of java.lang.Integer";
+		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of ClassLiteral=java.lang.Integer";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -3877,7 +3877,7 @@
 		final IValidationResult validationResult = validate(
 				"OrderedSet{'hello', 'world'}->exists(i | i.oclIsKindOf(String))");
 
-		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of java.lang.String";
+		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of ClassLiteral=java.lang.String";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -3894,7 +3894,7 @@
 		final IValidationResult validationResult = validate(
 				"OrderedSet{'hello', 'world'}->exists(i | i.oclIsKindOf(Integer))");
 
-		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of java.lang.Integer";
+		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of ClassLiteral=java.lang.Integer";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -3989,7 +3989,7 @@
 		final IValidationResult validationResult = validate(
 				"Sequence{'hello', 'world'}->forAll(i | i.oclIsKindOf(String))");
 
-		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of java.lang.String";
+		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of ClassLiteral=java.lang.String";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -4006,7 +4006,7 @@
 		final IValidationResult validationResult = validate(
 				"Sequence{'hello', 'world'}->forAll(i | i.oclIsKindOf(Integer))");
 
-		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of java.lang.Integer";
+		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of ClassLiteral=java.lang.Integer";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -4113,7 +4113,7 @@
 		final IValidationResult validationResult = validate(
 				"OrderedSet{'hello', 'world'}->forAll(i | i.oclIsKindOf(String))");
 
-		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of java.lang.String";
+		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of ClassLiteral=java.lang.String";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -4130,7 +4130,7 @@
 		final IValidationResult validationResult = validate(
 				"OrderedSet{'hello', 'world'}->forAll(i | i.oclIsKindOf(Integer))");
 
-		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of java.lang.Integer";
+		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of ClassLiteral=java.lang.Integer";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -4739,7 +4739,7 @@
 		final IValidationResult validationResult = validate(
 				"Sequence{'hello', 'world'}->isUnique(i | i.oclIsKindOf(String))");
 
-		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of java.lang.String";
+		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of ClassLiteral=java.lang.String";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -4756,7 +4756,7 @@
 		final IValidationResult validationResult = validate(
 				"Sequence{'hello', 'world'}->isUnique(i | i.oclIsKindOf(Integer))");
 
-		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of java.lang.Integer";
+		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of ClassLiteral=java.lang.Integer";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -4849,7 +4849,7 @@
 		final IValidationResult validationResult = validate(
 				"OrderedSet{'hello', 'world'}->isUnique(i | i.oclIsKindOf(String))");
 
-		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of java.lang.String";
+		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of ClassLiteral=java.lang.String";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -4866,7 +4866,7 @@
 		final IValidationResult validationResult = validate(
 				"OrderedSet{'hello', 'world'}->isUnique(i | i.oclIsKindOf(Integer))");
 
-		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of java.lang.Integer";
+		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of ClassLiteral=java.lang.Integer";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -4947,7 +4947,7 @@
 		final IValidationResult validationResult = validate(
 				"Sequence{'hello', 'world'}->one(i | i.oclIsKindOf(String))");
 
-		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of java.lang.String";
+		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of ClassLiteral=java.lang.String";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -4964,7 +4964,7 @@
 		final IValidationResult validationResult = validate(
 				"Sequence{'hello', 'world'}->one(i | i.oclIsKindOf(Integer))");
 
-		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of java.lang.Integer";
+		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of ClassLiteral=java.lang.Integer";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -5070,7 +5070,7 @@
 		final IValidationResult validationResult = validate(
 				"OrderedSet{'hello', 'world'}->one(i | i.oclIsKindOf(String))");
 
-		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of java.lang.String";
+		String message = "Always true:\nNothing inferred when i (java.lang.String) is not kind of ClassLiteral=java.lang.String";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
@@ -5087,7 +5087,7 @@
 		final IValidationResult validationResult = validate(
 				"OrderedSet{'hello', 'world'}->one(i | i.oclIsKindOf(Integer))");
 
-		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of java.lang.Integer";
+		String message = "Always false:\nNothing inferred when i (java.lang.String) is kind of ClassLiteral=java.lang.Integer";
 		assertFalse(validationResult.getMessages().isEmpty());
 		assertEquals(1, validationResult.getMessages().size());
 		assertEquals(message, validationResult.getMessages().get(0).getMessage());
diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesTest.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesTest.java
index 5b4a8c2..29e7e36 100644
--- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesTest.java
+++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesTest.java
@@ -2535,6 +2535,47 @@
 	}
 
 	@Test
+	public void testFilterSetNullSetAndNullClass() {
+		final Set<Object> result = collectionServices.filter((Set<Object>)null, (Class)null);
+
+		assertEquals(null, result);
+	}
+
+	@Test
+	public void testFilterSetNullSetClass() {
+		final Set<Object> result = collectionServices.filter((Set<Object>)null, String.class);
+
+		assertEquals(null, result);
+	}
+
+	@Test
+	public void testFilterSetNullClass() {
+		final Set<Object> set = new LinkedHashSet<>();
+		set.add(this);
+		set.add("");
+		set.add(EcorePackage.eINSTANCE);
+		set.add(EcorePackage.eINSTANCE.getEClass());
+
+		final Set<Object> result = collectionServices.filter(set, (Class)null);
+
+		assertEquals(0, result.size());
+	}
+
+	@Test
+	public void testFilterSetClass() {
+		final Set<Object> set = new LinkedHashSet<>();
+		set.add(this);
+		set.add("");
+		set.add(EcorePackage.eINSTANCE);
+		set.add(EcorePackage.eINSTANCE.getEClass());
+
+		final Set<Object> result = collectionServices.filter(set, String.class);
+
+		assertEquals(1, result.size());
+		assertTrue(result.contains(""));
+	}
+
+	@Test
 	public void testFilterSetNullSetAndNullType() {
 		final Set<Object> result = collectionServices.filter((Set<Object>)null, (EClassifier)null);
 
@@ -2577,6 +2618,47 @@
 	}
 
 	@Test
+	public void testFilterListNullListAndNullClass() {
+		final List<Object> result = collectionServices.filter((List<Object>)null, (Class)null);
+
+		assertEquals(null, result);
+	}
+
+	@Test
+	public void testFilterListNullListClass() {
+		final List<Object> result = collectionServices.filter((List<Object>)null, String.class);
+
+		assertEquals(null, result);
+	}
+
+	@Test
+	public void testFilterListNullClass() {
+		final List<Object> list = new ArrayList<>();
+		list.add(this);
+		list.add("");
+		list.add(EcorePackage.eINSTANCE);
+		list.add(EcorePackage.eINSTANCE.getEClass());
+
+		final List<Object> result = collectionServices.filter(list, (Class)null);
+
+		assertEquals(0, result.size());
+	}
+
+	@Test
+	public void testFilterListClass() {
+		final List<Object> list = new ArrayList<>();
+		list.add(this);
+		list.add("");
+		list.add(EcorePackage.eINSTANCE);
+		list.add(EcorePackage.eINSTANCE.getEClass());
+
+		final List<Object> result = collectionServices.filter(list, EcorePackage.eINSTANCE.getEPackage());
+
+		assertEquals(1, result.size());
+		assertTrue(result.contains(EcorePackage.eINSTANCE));
+	}
+
+	@Test
 	public void testFilterListNullListAndNullType() {
 		final List<Object> result = collectionServices.filter((List<Object>)null, (EClassifier)null);
 
diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesValidationTest.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesValidationTest.java
index fdafb11..bf148ee 100644
--- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesValidationTest.java
+++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/services/tests/CollectionServicesValidationTest.java
@@ -1085,7 +1085,17 @@
 	}
 
 	@Test
-	public void testFilterList() {
+	public void testFilterListClass() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final IType[] parameterTypes = new IType[] {sequenceType(eClassifierType(EcorePackage.eINSTANCE
+				.getEClassifier())), classLiteralType(String.class) };
+		final IType[] expectedReturnTypes = new IType[] {sequenceType(classType(String.class)) };
+
+		assertValidation(expectedReturnTypes, "filter", parameterTypes);
+	}
+
+	@Test
+	public void testFilterListEClassifier() {
 		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
 		final IType[] parameterTypes = new IType[] {sequenceType(eClassifierType(EcorePackage.eINSTANCE
 				.getEClassifier())), eClassifierLiteralType(EcorePackage.eINSTANCE.getEClass()) };
@@ -1096,7 +1106,17 @@
 	}
 
 	@Test
-	public void testFilterSet() {
+	public void testFilterSetClass() {
+		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
+		final IType[] parameterTypes = new IType[] {setType(eClassifierType(EcorePackage.eINSTANCE
+				.getEClassifier())), classLiteralType(String.class) };
+		final IType[] expectedReturnTypes = new IType[] {setType(classType(String.class)) };
+
+		assertValidation(expectedReturnTypes, "filter", parameterTypes);
+	}
+
+	@Test
+	public void testFilterSetEClassifier() {
 		getQueryEnvironment().registerEPackage(EcorePackage.eINSTANCE);
 		final IType[] parameterTypes = new IType[] {setType(eClassifierType(EcorePackage.eINSTANCE
 				.getEClassifier())), eClassifierLiteralType(EcorePackage.eINSTANCE.getEClass()) };
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/generated/testOrderedSet b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/generated/testOrderedSet
index a977609..1f598bc 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/generated/testOrderedSet
+++ b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/generated/testOrderedSet
@@ -347,6 +347,10 @@
   
 @Test OrderedSet{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p => true
 @Test OrderedSet{p,'test',true,1,2.2} -> filter(EClass) -> size() => 0
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(String) => test
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(Integer) => 1
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(Boolean) => true
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(Real) => 2.2
 @Test strings -> subOrderedSet(1,2) => ab
 @Test integers -> subOrderedSet(1,2) => 12
 @Test reals -> subOrderedSet(1,2) => 1.22.1
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/orderedSetsServices.mtl b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/orderedSetsServices.mtl
index 4930f7f..a027b1e 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/orderedSetsServices.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/orderedSetsServices/orderedSetsServices.mtl
@@ -369,13 +369,10 @@
   
 @Test OrderedSet{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p => [OrderedSet{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p/]
 @Test OrderedSet{p,'test',true,1,2.2} -> filter(EClass) -> size() => [OrderedSet{p,'test',true,1,2.2} -> filter(EClass) -> size()/]
-[comment]A4-UNSUPPORTED(LOT1) WIP https://git.eclipse.org/r/#/c/162879/ filter(primitiveType)[/comment]
-[comment]
-[OrderedSet{p,'test',true,1,2.2} -> filter(String)/]
-[OrderedSet{p,'test',true,1,2.2} -> filter(Integer)/]
-[OrderedSet{p,'test',true,1,2.2} -> filter(Boolean)/]
-[OrderedSet{p,'test',true,1,2.2} -> filter(Real)/]
-[/comment]
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(String) => [OrderedSet{p,'test',true,1,2.2} -> filter(String)/]
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(Integer) => [OrderedSet{p,'test',true,1,2.2} -> filter(Integer)/]
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(Boolean) => [OrderedSet{p,'test',true,1,2.2} -> filter(Boolean)/]
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(Real) => [OrderedSet{p,'test',true,1,2.2} -> filter(Real)/]
 [comment]TODO symmetricDifference(s), [/comment]
 @Test strings -> subOrderedSet(1,2) => [strings -> subOrderedSet(1,2)/]
 @Test integers -> subOrderedSet(1,2) => [integers -> subOrderedSet(1,2)/]
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/generated/testSequence b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/generated/testSequence
index 156e525..f7f500e 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/generated/testSequence
+++ b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/generated/testSequence
@@ -348,6 +348,10 @@
   
 @Test Sequence{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p => true
 @Test Sequence{p,'test',true,1,2.2} -> filter(EClass) -> size() => 0
+@Test Sequence{p,'test',true,1,2.2} -> filter(String) => test
+@Test Sequence{p,'test',true,1,2.2} -> filter(Integer) => 1
+@Test Sequence{p,'test',true,1,2.2} -> filter(Boolean) => true
+@Test Sequence{p,'test',true,1,2.2} -> filter(Real) => 2.2
   
 @Test strings -> subSequence(1,2) => ab
 @Test integers -> subSequence(1,2) => 12
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/sequencesServices.mtl b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/sequencesServices.mtl
index 28343cb..9be9ae1 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/sequencesServices.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/src/resources/services/sequencesServices/sequencesServices.mtl
@@ -369,13 +369,10 @@
   
 @Test Sequence{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p => [Sequence{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p/]
 @Test Sequence{p,'test',true,1,2.2} -> filter(EClass) -> size() => [Sequence{p,'test',true,1,2.2} -> filter(EClass) -> size()/]
-[comment]A4-UNSUPPORTED(LOT1) WIP https://git.eclipse.org/r/#/c/162879/ filter(primitiveType)[/comment]
-[comment]
-[Sequence{p,'test',true,1,2.2} -> filter(String)/]
-[Sequence{p,'test',true,1,2.2} -> filter(Integer)/]
-[Sequence{p,'test',true,1,2.2} -> filter(Boolean)/]
-[Sequence{p,'test',true,1,2.2} -> filter(Real)/]
-[/comment]
+@Test Sequence{p,'test',true,1,2.2} -> filter(String) => [Sequence{p,'test',true,1,2.2} -> filter(String)/]
+@Test Sequence{p,'test',true,1,2.2} -> filter(Integer) => [Sequence{p,'test',true,1,2.2} -> filter(Integer)/]
+@Test Sequence{p,'test',true,1,2.2} -> filter(Boolean) => [Sequence{p,'test',true,1,2.2} -> filter(Boolean)/]
+@Test Sequence{p,'test',true,1,2.2} -> filter(Real) => [Sequence{p,'test',true,1,2.2} -> filter(Real)/]
   
 @Test strings -> subSequence(1,2) => [strings -> subSequence(1,2)/]
 @Test integers -> subSequence(1,2) => [integers -> subSequence(1,2)/]
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/PASS b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/PASS
index 0209ecf..f002abd 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/PASS
+++ b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/PASS
@@ -551,6 +551,10 @@
 	collections.oclIsUndefined()
 	Sequence{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p
 	Sequence{p,'test',true,1,2.2} -> filter(EClass) -> size()
+	Sequence{p,'test',true,1,2.2} -> filter(String)
+	Sequence{p,'test',true,1,2.2} -> filter(Integer)
+	Sequence{p,'test',true,1,2.2} -> filter(Boolean)
+	Sequence{p,'test',true,1,2.2} -> filter(Real)
 	strings -> subSequence(1,2)
 	integers -> subSequence(1,2)
 	reals -> subSequence(1,2)
@@ -884,6 +888,10 @@
 	collections.oclIsUndefined()
 	OrderedSet{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p
 	OrderedSet{p,'test',true,1,2.2} -> filter(EClass) -> size()
+	OrderedSet{p,'test',true,1,2.2} -> filter(String)
+	OrderedSet{p,'test',true,1,2.2} -> filter(Integer)
+	OrderedSet{p,'test',true,1,2.2} -> filter(Boolean)
+	OrderedSet{p,'test',true,1,2.2} -> filter(Real)
 	strings -> subOrderedSet(1,2)
 	integers -> subOrderedSet(1,2)
 	reals -> subOrderedSet(1,2)
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/TODO b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/TODO
index 6a8f9e1..858228a 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/TODO
+++ b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/TODO
@@ -58,7 +58,6 @@
 	 removeAll
 	 selectByKind
 	 selectByType
-	(LOT1) WIP https://git.eclipse.org/r/#/c/162879/ filter(primitiveType)
 orderedSetsServices
 	 addAll
 	 collectNested
@@ -74,4 +73,3 @@
 	 removeAll
 	 selectByKind
 	 selectByType
-	(LOT1) WIP https://git.eclipse.org/r/#/c/162879/ filter(primitiveType)
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/TODO_lot1 b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/TODO_lot1
index ee319cd..c7db789 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/TODO_lot1
+++ b/tests/org.eclipse.acceleo.aql.migration.tests.acceleo3/status/TODO_lot1
@@ -16,7 +16,3 @@
 	 TODO implement getProperties
 numericServices
 	 WIP https://git.eclipse.org/r/#/c/163019/ operations between Real And Integers
-sequencesServices
-	 WIP https://git.eclipse.org/r/#/c/162879/ filter(primitiveType)
-orderedSetsServices
-	 WIP https://git.eclipse.org/r/#/c/162879/ filter(primitiveType)
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/numericServices/numericServices-expected-validation.txt b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/numericServices/numericServices-expected-validation.txt
index 4cf332b..c7e5685 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/numericServices/numericServices-expected-validation.txt
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/numericServices/numericServices-expected-validation.txt
@@ -1,16 +1,16 @@
 INFO Always true:
-Nothing inferred when var2 (java.lang.Integer) is not type of java.lang.Integer - 395 420
+Nothing inferred when var2 (java.lang.Integer) is not type of ClassLiteral=java.lang.Integer - 395 420
 INFO Always false:
 Nothing inferred when var2 (java.lang.Integer) is type of EClassifierLiteral=EPackage - 468 501
 INFO Always true:
-Nothing inferred when var2 (java.lang.Integer) is not kind of java.lang.Integer - 548 573
+Nothing inferred when var2 (java.lang.Integer) is not kind of ClassLiteral=java.lang.Integer - 548 573
 INFO Always false:
 Nothing inferred when var2 (java.lang.Integer) is kind of EClassifierLiteral=EPackage - 621 654
 INFO Always true:
-Nothing inferred when var1 (java.lang.Double) is not type of java.lang.Double - 2825 2847
+Nothing inferred when var1 (java.lang.Double) is not type of ClassLiteral=java.lang.Double - 2825 2847
 INFO Always false:
 Nothing inferred when var1 (java.lang.Double) is type of EClassifierLiteral=EPackage - 2895 2928
 INFO Always true:
-Nothing inferred when var1 (java.lang.Double) is not kind of java.lang.Double - 2972 2994
+Nothing inferred when var1 (java.lang.Double) is not kind of ClassLiteral=java.lang.Double - 2972 2994
 INFO Always false:
 Nothing inferred when var1 (java.lang.Double) is kind of EClassifierLiteral=EPackage - 3042 3075
\ No newline at end of file
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/generated/testOrderedSet-expected.txt b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/generated/testOrderedSet-expected.txt
index a977609..1f598bc 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/generated/testOrderedSet-expected.txt
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/generated/testOrderedSet-expected.txt
@@ -347,6 +347,10 @@
   
 @Test OrderedSet{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p => true
 @Test OrderedSet{p,'test',true,1,2.2} -> filter(EClass) -> size() => 0
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(String) => test
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(Integer) => 1
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(Boolean) => true
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(Real) => 2.2
 @Test strings -> subOrderedSet(1,2) => ab
 @Test integers -> subOrderedSet(1,2) => 12
 @Test reals -> subOrderedSet(1,2) => 1.22.1
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-expected-validation.txt b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-expected-validation.txt
index dc4c560..1a0cc13 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-expected-validation.txt
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-expected-validation.txt
@@ -1,18 +1,18 @@
 INFO Always true:
-Nothing inferred when temp6 (java.lang.String) is not type of java.lang.String - 1331 1356
+Nothing inferred when temp6 (java.lang.String) is not type of ClassLiteral=java.lang.String - 1331 1356
 INFO Always true:
-Nothing inferred when temp7 (java.lang.Double) is not type of java.lang.Double - 1447 1470
+Nothing inferred when temp7 (java.lang.Double) is not type of ClassLiteral=java.lang.Double - 1447 1470
 INFO Always true:
-Nothing inferred when temp8 (java.lang.Integer) is not type of java.lang.Integer - 1570 1596
+Nothing inferred when temp8 (java.lang.Integer) is not type of ClassLiteral=java.lang.Integer - 1570 1596
 INFO Always true:
-Nothing inferred when temp9 (java.lang.Boolean) is not type of java.lang.Boolean - 1696 1722
+Nothing inferred when temp9 (java.lang.Boolean) is not type of ClassLiteral=java.lang.Boolean - 1696 1722
 INFO Always true:
-Nothing inferred when temp11 (java.lang.String) is not kind of java.lang.String - 1972 1998
+Nothing inferred when temp11 (java.lang.String) is not kind of ClassLiteral=java.lang.String - 1972 1998
 INFO Always true:
-Nothing inferred when temp12 (java.lang.Double) is not kind of java.lang.Double - 2090 2114
+Nothing inferred when temp12 (java.lang.Double) is not kind of ClassLiteral=java.lang.Double - 2090 2114
 INFO Always true:
-Nothing inferred when temp13 (java.lang.Integer) is not kind of java.lang.Integer - 2215 2242
+Nothing inferred when temp13 (java.lang.Integer) is not kind of ClassLiteral=java.lang.Integer - 2215 2242
 INFO Always true:
-Nothing inferred when temp14 (java.lang.Boolean) is not kind of java.lang.Boolean - 2343 2370
+Nothing inferred when temp14 (java.lang.Boolean) is not kind of ClassLiteral=java.lang.Boolean - 2343 2370
 INFO Always true:
 Nothing inferred when temp15 (EClassifier=EClassifier) is not kind of EClassifierLiteral=EObject - 2471 2505
\ No newline at end of file
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-expected.mtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-expected.mtl
index 1158f8b..b9786f1 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-expected.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-expected.mtl
@@ -358,6 +358,10 @@
                   
                 @Test OrderedSet{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p => [OrderedSet{p, 'test', true, 1, 2.2}->filter(ecore::EPackage)->first() = p/]
                 @Test OrderedSet{p,'test',true,1,2.2} -> filter(EClass) -> size() => [OrderedSet{p, 'test', true, 1, 2.2}->filter(ecore::EClass)->size()/]
+                @Test OrderedSet{p,'test',true,1,2.2} -> filter(String) => [OrderedSet{p, 'test', true, 1, 2.2}->filter(String)/]
+                @Test OrderedSet{p,'test',true,1,2.2} -> filter(Integer) => [OrderedSet{p, 'test', true, 1, 2.2}->filter(Integer)/]
+                @Test OrderedSet{p,'test',true,1,2.2} -> filter(Boolean) => [OrderedSet{p, 'test', true, 1, 2.2}->filter(Boolean)/]
+                @Test OrderedSet{p,'test',true,1,2.2} -> filter(Real) => [OrderedSet{p, 'test', true, 1, 2.2}->filter(Real)/]
                 @Test strings -> subOrderedSet(1,2) => [strings->subOrderedSet(1, 2)/]
                 @Test integers -> subOrderedSet(1,2) => [integers->subOrderedSet(1, 2)/]
                 @Test reals -> subOrderedSet(1,2) => [reals->subOrderedSet(1, 2)/]
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-origin.mtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-origin.mtl
index 4930f7f..a027b1e 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-origin.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices-origin.mtl
@@ -369,13 +369,10 @@
   
 @Test OrderedSet{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p => [OrderedSet{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p/]
 @Test OrderedSet{p,'test',true,1,2.2} -> filter(EClass) -> size() => [OrderedSet{p,'test',true,1,2.2} -> filter(EClass) -> size()/]
-[comment]A4-UNSUPPORTED(LOT1) WIP https://git.eclipse.org/r/#/c/162879/ filter(primitiveType)[/comment]
-[comment]
-[OrderedSet{p,'test',true,1,2.2} -> filter(String)/]
-[OrderedSet{p,'test',true,1,2.2} -> filter(Integer)/]
-[OrderedSet{p,'test',true,1,2.2} -> filter(Boolean)/]
-[OrderedSet{p,'test',true,1,2.2} -> filter(Real)/]
-[/comment]
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(String) => [OrderedSet{p,'test',true,1,2.2} -> filter(String)/]
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(Integer) => [OrderedSet{p,'test',true,1,2.2} -> filter(Integer)/]
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(Boolean) => [OrderedSet{p,'test',true,1,2.2} -> filter(Boolean)/]
+@Test OrderedSet{p,'test',true,1,2.2} -> filter(Real) => [OrderedSet{p,'test',true,1,2.2} -> filter(Real)/]
 [comment]TODO symmetricDifference(s), [/comment]
 @Test strings -> subOrderedSet(1,2) => [strings -> subOrderedSet(1,2)/]
 @Test integers -> subOrderedSet(1,2) => [integers -> subOrderedSet(1,2)/]
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.emtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.emtl
index 7fef635..8ee9d80 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.emtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.emtl
@@ -5049,6 +5049,158 @@
                       </source>
                       <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/size"/>
                     </body>
+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;@Test OrderedSet{p,'test',true,1,2.2} -> filter(String) => "/>
+                    <body xsi:type="ocl.ecore:OperationCallExp" eType="/7/OrderedSet(String)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">
+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(OclAny)" kind="OrderedSet">
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          <item xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/testOrderedSet/p">
+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          <item xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="test">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          <item xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          <item xsi:type="ocl.ecore:RealLiteralExp" realSymbol="2.2">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          </item>
+                        </part>
+                      </source>
+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/19/String">
+                        <referredType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                      </argument>
+                    </body>
+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;@Test OrderedSet{p,'test',true,1,2.2} -> filter(Integer) => "/>
+                    <body xsi:type="ocl.ecore:OperationCallExp" eType="/7/OrderedSet(Integer)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">
+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(OclAny)" kind="OrderedSet">
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          <item xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/testOrderedSet/p">
+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          <item xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="test">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          <item xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          <item xsi:type="ocl.ecore:RealLiteralExp" realSymbol="2.2">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          </item>
+                        </part>
+                      </source>
+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/19/Integer">
+                        <referredType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                      </argument>
+                    </body>
+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;@Test OrderedSet{p,'test',true,1,2.2} -> filter(Boolean) => "/>
+                    <body xsi:type="ocl.ecore:OperationCallExp" eType="/7/OrderedSet(Boolean)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">
+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(OclAny)" kind="OrderedSet">
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          <item xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/testOrderedSet/p">
+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          <item xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="test">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          <item xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          <item xsi:type="ocl.ecore:RealLiteralExp" realSymbol="2.2">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          </item>
+                        </part>
+                      </source>
+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/19/Boolean">
+                        <referredType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                      </argument>
+                    </body>
+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;@Test OrderedSet{p,'test',true,1,2.2} -> filter(Real) => "/>
+                    <body xsi:type="ocl.ecore:OperationCallExp" eType="/7/OrderedSet(Real)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">
+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/OrderedSet(OclAny)" kind="OrderedSet">
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          <item xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/testOrderedSet/p">
+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          <item xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="test">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          <item xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          <item xsi:type="ocl.ecore:RealLiteralExp" realSymbol="2.2">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          </item>
+                        </part>
+                      </source>
+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/19/Real">
+                        <referredType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                      </argument>
+                    </body>
                     <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
                     <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="@Test strings -> subOrderedSet(1,2) => "/>
                     <body xsi:type="ocl.ecore:OperationCallExp" eType="/7/OrderedSet(String)">
@@ -6776,47 +6928,59 @@
     <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
   </ocl.ecore:Variable>
   <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
     <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
   </ocl.ecore:Variable>
   <ecore:EAnnotation source="positions">
     <eAnnotations source="positions.0" references="/0/testOrderedSet">
       <details key="start" value="72"/>
-      <details key="end" value="29627"/>
+      <details key="end" value="29738"/>
       <details key="line" value="3"/>
     </eAnnotations>
     <eAnnotations source="positions.1" references="/0/testOrderedSet/%">
       <details key="start" value="136"/>
-      <details key="end" value="29615"/>
+      <details key="end" value="29726"/>
       <details key="line" value="5"/>
     </eAnnotations>
     <eAnnotations source="positions.2" references="/0/testOrderedSet/%/%">
       <details key="start" value="251"/>
-      <details key="end" value="29607"/>
+      <details key="end" value="29718"/>
       <details key="line" value="7"/>
     </eAnnotations>
     <eAnnotations source="positions.3" references="/0/testOrderedSet/%/%/%">
       <details key="start" value="312"/>
-      <details key="end" value="29601"/>
+      <details key="end" value="29712"/>
       <details key="line" value="8"/>
     </eAnnotations>
     <eAnnotations source="positions.4" references="/0/testOrderedSet/%/%/%/%">
       <details key="start" value="369"/>
-      <details key="end" value="29595"/>
+      <details key="end" value="29706"/>
       <details key="line" value="9"/>
     </eAnnotations>
     <eAnnotations source="positions.5" references="/0/testOrderedSet/%/%/%/%/%">
       <details key="start" value="426"/>
-      <details key="end" value="29589"/>
+      <details key="end" value="29700"/>
       <details key="line" value="10"/>
     </eAnnotations>
     <eAnnotations source="positions.6" references="/0/testOrderedSet/%/%/%/%/%/%">
       <details key="start" value="495"/>
-      <details key="end" value="29583"/>
+      <details key="end" value="29694"/>
       <details key="line" value="11"/>
     </eAnnotations>
     <eAnnotations source="positions.7" references="/0/testOrderedSet/%/%/%/%/%/%/%">
       <details key="start" value="564"/>
-      <details key="end" value="29577"/>
+      <details key="end" value="29688"/>
       <details key="line" value="12"/>
     </eAnnotations>
     <eAnnotations source="positions.8" references="/0/testOrderedSet/%/%/%/%/%/%/%/%">
@@ -16276,805 +16440,985 @@
     </eAnnotations>
     <eAnnotations source="positions.1899" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.509">
       <details key="start" value="26676"/>
-      <details key="end" value="26677"/>
+      <details key="end" value="26736"/>
       <details key="line" value="372"/>
     </eAnnotations>
     <eAnnotations source="positions.1900" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.510">
-      <details key="start" value="27063"/>
-      <details key="end" value="27102"/>
+      <details key="start" value="26737"/>
+      <details key="end" value="26786"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1901" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.510/%">
+      <details key="start" value="26737"/>
+      <details key="end" value="26768"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1902" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.510/%/%/p">
+      <details key="start" value="26748"/>
+      <details key="end" value="26749"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1903" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.510/%/%.1/%">
+      <details key="start" value="26750"/>
+      <details key="end" value="26756"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1904" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.510/%/%.2/%">
+      <details key="start" value="26757"/>
+      <details key="end" value="26761"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1905" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.510/%/%.3/%">
+      <details key="start" value="26762"/>
+      <details key="end" value="26763"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1906" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.510/%/%.4/%">
+      <details key="start" value="26764"/>
+      <details key="end" value="26767"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1907" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.510/%.1">
+      <details key="start" value="26779"/>
+      <details key="end" value="26785"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1908" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.511">
+      <details key="start" value="26788"/>
+      <details key="end" value="26849"/>
+      <details key="line" value="373"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1909" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.512">
+      <details key="start" value="26850"/>
+      <details key="end" value="26900"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1910" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.512/%">
+      <details key="start" value="26850"/>
+      <details key="end" value="26881"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1911" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.512/%/%/p">
+      <details key="start" value="26861"/>
+      <details key="end" value="26862"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1912" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.512/%/%.1/%">
+      <details key="start" value="26863"/>
+      <details key="end" value="26869"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1913" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.512/%/%.2/%">
+      <details key="start" value="26870"/>
+      <details key="end" value="26874"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1914" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.512/%/%.3/%">
+      <details key="start" value="26875"/>
+      <details key="end" value="26876"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1915" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.512/%/%.4/%">
+      <details key="start" value="26877"/>
+      <details key="end" value="26880"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1916" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.512/%.1">
+      <details key="start" value="26892"/>
+      <details key="end" value="26899"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1917" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.513">
+      <details key="start" value="26902"/>
+      <details key="end" value="26963"/>
+      <details key="line" value="374"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1918" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.514">
+      <details key="start" value="26964"/>
+      <details key="end" value="27014"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1919" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.514/%">
+      <details key="start" value="26964"/>
+      <details key="end" value="26995"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1920" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.514/%/%/p">
+      <details key="start" value="26975"/>
+      <details key="end" value="26976"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1921" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.514/%/%.1/%">
+      <details key="start" value="26977"/>
+      <details key="end" value="26983"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1922" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.514/%/%.2/%">
+      <details key="start" value="26984"/>
+      <details key="end" value="26988"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1923" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.514/%/%.3/%">
+      <details key="start" value="26989"/>
+      <details key="end" value="26990"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1924" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.514/%/%.4/%">
+      <details key="start" value="26991"/>
+      <details key="end" value="26994"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1925" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.514/%.1">
+      <details key="start" value="27006"/>
+      <details key="end" value="27013"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1926" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.515">
+      <details key="start" value="27016"/>
+      <details key="end" value="27074"/>
+      <details key="line" value="375"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1927" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.516">
+      <details key="start" value="27075"/>
+      <details key="end" value="27122"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1928" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.516/%">
+      <details key="start" value="27075"/>
+      <details key="end" value="27106"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1929" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.516/%/%/p">
+      <details key="start" value="27086"/>
+      <details key="end" value="27087"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1930" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.516/%/%.1/%">
+      <details key="start" value="27088"/>
+      <details key="end" value="27094"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1931" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.516/%/%.2/%">
+      <details key="start" value="27095"/>
+      <details key="end" value="27099"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1932" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.516/%/%.3/%">
+      <details key="start" value="27100"/>
+      <details key="end" value="27101"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1933" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.516/%/%.4/%">
+      <details key="start" value="27102"/>
+      <details key="end" value="27105"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1934" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.516/%.1">
+      <details key="start" value="27117"/>
+      <details key="end" value="27121"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1935" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.517">
+      <details key="start" value="27124"/>
+      <details key="end" value="27125"/>
+      <details key="line" value="376"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1936" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.518">
+      <details key="start" value="27174"/>
+      <details key="end" value="27213"/>
+      <details key="line" value="377"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1937" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.519">
+      <details key="start" value="27214"/>
+      <details key="end" value="27243"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1938" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.519/strings">
+      <details key="start" value="27214"/>
+      <details key="end" value="27221"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1939" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.519/%">
+      <details key="start" value="27239"/>
+      <details key="end" value="27240"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1940" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.519/%.1">
+      <details key="start" value="27241"/>
+      <details key="end" value="27242"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1941" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.520">
+      <details key="start" value="27245"/>
+      <details key="end" value="27286"/>
+      <details key="line" value="378"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1942" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.521">
+      <details key="start" value="27287"/>
+      <details key="end" value="27317"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1943" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.521/integers">
+      <details key="start" value="27287"/>
+      <details key="end" value="27295"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1944" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.521/%">
+      <details key="start" value="27313"/>
+      <details key="end" value="27314"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1945" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.521/%.1">
+      <details key="start" value="27315"/>
+      <details key="end" value="27316"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1946" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.522">
+      <details key="start" value="27319"/>
+      <details key="end" value="27357"/>
+      <details key="line" value="379"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1947" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523">
+      <details key="start" value="27358"/>
+      <details key="end" value="27385"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1948" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523/reals">
+      <details key="start" value="27358"/>
+      <details key="end" value="27363"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1949" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523/%">
+      <details key="start" value="27381"/>
+      <details key="end" value="27382"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1950" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523/%.1">
+      <details key="start" value="27383"/>
+      <details key="end" value="27384"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1951" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.524">
+      <details key="start" value="27387"/>
+      <details key="end" value="27428"/>
       <details key="line" value="380"/>
     </eAnnotations>
-    <eAnnotations source="positions.1901" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.511">
-      <details key="start" value="27103"/>
-      <details key="end" value="27132"/>
+    <eAnnotations source="positions.1952" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.525">
+      <details key="start" value="27429"/>
+      <details key="end" value="27459"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1902" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.511/strings">
-      <details key="start" value="27103"/>
-      <details key="end" value="27110"/>
+    <eAnnotations source="positions.1953" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.525/booleans">
+      <details key="start" value="27429"/>
+      <details key="end" value="27437"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1903" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.511/%">
-      <details key="start" value="27128"/>
-      <details key="end" value="27129"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1904" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.511/%.1">
-      <details key="start" value="27130"/>
-      <details key="end" value="27131"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1905" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.512">
-      <details key="start" value="27134"/>
-      <details key="end" value="27175"/>
-      <details key="line" value="381"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1906" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.513">
-      <details key="start" value="27176"/>
-      <details key="end" value="27206"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1907" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.513/integers">
-      <details key="start" value="27176"/>
-      <details key="end" value="27184"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1908" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.513/%">
-      <details key="start" value="27202"/>
-      <details key="end" value="27203"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1909" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.513/%.1">
-      <details key="start" value="27204"/>
-      <details key="end" value="27205"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1910" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.514">
-      <details key="start" value="27208"/>
-      <details key="end" value="27246"/>
-      <details key="line" value="382"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1911" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.515">
-      <details key="start" value="27247"/>
-      <details key="end" value="27274"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1912" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.515/reals">
-      <details key="start" value="27247"/>
-      <details key="end" value="27252"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1913" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.515/%">
-      <details key="start" value="27270"/>
-      <details key="end" value="27271"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1914" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.515/%.1">
-      <details key="start" value="27272"/>
-      <details key="end" value="27273"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1915" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.516">
-      <details key="start" value="27276"/>
-      <details key="end" value="27317"/>
-      <details key="line" value="383"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1916" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.517">
-      <details key="start" value="27318"/>
-      <details key="end" value="27348"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1917" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.517/booleans">
-      <details key="start" value="27318"/>
-      <details key="end" value="27326"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1918" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.517/%">
-      <details key="start" value="27344"/>
-      <details key="end" value="27345"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1919" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.517/%.1">
-      <details key="start" value="27346"/>
-      <details key="end" value="27347"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1920" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.518">
-      <details key="start" value="27350"/>
-      <details key="end" value="27408"/>
-      <details key="line" value="384"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1921" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41">
-      <details key="start" value="27409"/>
+    <eAnnotations source="positions.1954" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.525/%">
+      <details key="start" value="27455"/>
       <details key="end" value="27456"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1922" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41/%">
-      <details key="start" value="27409"/>
-      <details key="end" value="27439"/>
+    <eAnnotations source="positions.1955" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.525/%.1">
+      <details key="start" value="27457"/>
+      <details key="end" value="27458"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1923" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41/%/eClasses">
-      <details key="start" value="27409"/>
-      <details key="end" value="27417"/>
+    <eAnnotations source="positions.1956" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.526">
+      <details key="start" value="27461"/>
+      <details key="end" value="27519"/>
+      <details key="line" value="381"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1957" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41">
+      <details key="start" value="27520"/>
+      <details key="end" value="27567"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1924" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41/%/%">
-      <details key="start" value="27435"/>
-      <details key="end" value="27436"/>
+    <eAnnotations source="positions.1958" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41/%">
+      <details key="start" value="27520"/>
+      <details key="end" value="27550"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1925" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41/%/%.1">
-      <details key="start" value="27437"/>
-      <details key="end" value="27438"/>
+    <eAnnotations source="positions.1959" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41/%/eClasses">
+      <details key="start" value="27520"/>
+      <details key="end" value="27528"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1926" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41/%.1">
-      <details key="start" value="27451"/>
-      <details key="end" value="27455"/>
+    <eAnnotations source="positions.1960" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41/%/%">
+      <details key="start" value="27546"/>
+      <details key="end" value="27547"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1927" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41/%.1/temp1">
+    <eAnnotations source="positions.1961" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41/%/%.1">
+      <details key="start" value="27548"/>
+      <details key="end" value="27549"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1962" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41/%.1">
+      <details key="start" value="27562"/>
+      <details key="end" value="27566"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1963" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41/%.1/temp1">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1928" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41/temp65">
+    <eAnnotations source="positions.1964" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.41/temp65">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1929" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.519">
-      <details key="start" value="27458"/>
-      <details key="end" value="27502"/>
-      <details key="line" value="385"/>
+    <eAnnotations source="positions.1965" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.527">
+      <details key="start" value="27569"/>
+      <details key="end" value="27613"/>
+      <details key="line" value="382"/>
     </eAnnotations>
-    <eAnnotations source="positions.1930" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.520">
-      <details key="start" value="27503"/>
-      <details key="end" value="27536"/>
+    <eAnnotations source="positions.1966" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.528">
+      <details key="start" value="27614"/>
+      <details key="end" value="27647"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1931" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.520/collections">
-      <details key="start" value="27503"/>
-      <details key="end" value="27514"/>
+    <eAnnotations source="positions.1967" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.528/collections">
+      <details key="start" value="27614"/>
+      <details key="end" value="27625"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1932" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.520/%">
-      <details key="start" value="27532"/>
-      <details key="end" value="27533"/>
+    <eAnnotations source="positions.1968" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.528/%">
+      <details key="start" value="27643"/>
+      <details key="end" value="27644"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1933" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.520/%.1">
-      <details key="start" value="27534"/>
-      <details key="end" value="27535"/>
+    <eAnnotations source="positions.1969" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.528/%.1">
+      <details key="start" value="27645"/>
+      <details key="end" value="27646"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1934" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.521">
-      <details key="start" value="27538"/>
-      <details key="end" value="27539"/>
-      <details key="line" value="386"/>
+    <eAnnotations source="positions.1970" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.529">
+      <details key="start" value="27649"/>
+      <details key="end" value="27650"/>
+      <details key="line" value="383"/>
     </eAnnotations>
-    <eAnnotations source="positions.1935" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.522">
-      <details key="start" value="27972"/>
-      <details key="end" value="28022"/>
+    <eAnnotations source="positions.1971" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.530">
+      <details key="start" value="28083"/>
+      <details key="end" value="28133"/>
+      <details key="line" value="393"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1972" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.531">
+      <details key="start" value="28134"/>
+      <details key="end" value="28174"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1973" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.531/integers">
+      <details key="start" value="28134"/>
+      <details key="end" value="28142"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1974" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.531/%">
+      <details key="start" value="28157"/>
+      <details key="end" value="28173"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1975" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.531/%/%/%">
+      <details key="start" value="28168"/>
+      <details key="end" value="28169"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1976" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.531/%/%.1/%">
+      <details key="start" value="28171"/>
+      <details key="end" value="28172"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1977" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.532">
+      <details key="start" value="28176"/>
+      <details key="end" value="28227"/>
+      <details key="line" value="394"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1978" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.533">
+      <details key="start" value="28228"/>
+      <details key="end" value="28268"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1979" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.533/integers">
+      <details key="start" value="28228"/>
+      <details key="end" value="28236"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1980" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.533/%">
+      <details key="start" value="28251"/>
+      <details key="end" value="28267"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1981" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.533/%/%/%">
+      <details key="start" value="28262"/>
+      <details key="end" value="28263"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1982" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.533/%/%.1/%">
+      <details key="start" value="28265"/>
+      <details key="end" value="28266"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1983" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.534">
+      <details key="start" value="28270"/>
+      <details key="end" value="28321"/>
+      <details key="line" value="395"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1984" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.535">
+      <details key="start" value="28322"/>
+      <details key="end" value="28362"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1985" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.535/integers">
+      <details key="start" value="28322"/>
+      <details key="end" value="28330"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1986" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.535/%">
+      <details key="start" value="28345"/>
+      <details key="end" value="28361"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1987" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.535/%/%/%">
+      <details key="start" value="28356"/>
+      <details key="end" value="28357"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1988" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.535/%/%.1/%">
+      <details key="start" value="28359"/>
+      <details key="end" value="28360"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1989" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.536">
+      <details key="start" value="28364"/>
+      <details key="end" value="28415"/>
       <details key="line" value="396"/>
     </eAnnotations>
-    <eAnnotations source="positions.1936" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523">
-      <details key="start" value="28023"/>
-      <details key="end" value="28063"/>
+    <eAnnotations source="positions.1990" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.537">
+      <details key="start" value="28416"/>
+      <details key="end" value="28456"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1937" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523/integers">
-      <details key="start" value="28023"/>
-      <details key="end" value="28031"/>
+    <eAnnotations source="positions.1991" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.537/integers">
+      <details key="start" value="28416"/>
+      <details key="end" value="28424"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1938" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523/%">
-      <details key="start" value="28046"/>
-      <details key="end" value="28062"/>
+    <eAnnotations source="positions.1992" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.537/%">
+      <details key="start" value="28439"/>
+      <details key="end" value="28455"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1939" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523/%/%/%">
-      <details key="start" value="28057"/>
-      <details key="end" value="28058"/>
+    <eAnnotations source="positions.1993" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.537/%/%/%">
+      <details key="start" value="28450"/>
+      <details key="end" value="28451"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1940" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.523/%/%.1/%">
-      <details key="start" value="28060"/>
-      <details key="end" value="28061"/>
+    <eAnnotations source="positions.1994" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.537/%/%.1/%">
+      <details key="start" value="28453"/>
+      <details key="end" value="28454"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1941" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.524">
-      <details key="start" value="28065"/>
-      <details key="end" value="28116"/>
+    <eAnnotations source="positions.1995" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.538">
+      <details key="start" value="28458"/>
+      <details key="end" value="28459"/>
       <details key="line" value="397"/>
     </eAnnotations>
-    <eAnnotations source="positions.1942" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.525">
-      <details key="start" value="28117"/>
-      <details key="end" value="28157"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1943" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.525/integers">
-      <details key="start" value="28117"/>
-      <details key="end" value="28125"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1944" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.525/%">
-      <details key="start" value="28140"/>
-      <details key="end" value="28156"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1945" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.525/%/%/%">
-      <details key="start" value="28151"/>
-      <details key="end" value="28152"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1946" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.525/%/%.1/%">
-      <details key="start" value="28154"/>
-      <details key="end" value="28155"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1947" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.526">
-      <details key="start" value="28159"/>
-      <details key="end" value="28210"/>
+    <eAnnotations source="positions.1996" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.539">
+      <details key="start" value="28506"/>
+      <details key="end" value="28554"/>
       <details key="line" value="398"/>
     </eAnnotations>
-    <eAnnotations source="positions.1948" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.527">
-      <details key="start" value="28211"/>
-      <details key="end" value="28251"/>
+    <eAnnotations source="positions.1997" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.540">
+      <details key="start" value="28555"/>
+      <details key="end" value="28593"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1949" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.527/integers">
-      <details key="start" value="28211"/>
-      <details key="end" value="28219"/>
+    <eAnnotations source="positions.1998" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.540/integers">
+      <details key="start" value="28555"/>
+      <details key="end" value="28563"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1950" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.527/%">
-      <details key="start" value="28234"/>
-      <details key="end" value="28250"/>
+    <eAnnotations source="positions.1999" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.540/%">
+      <details key="start" value="28576"/>
+      <details key="end" value="28592"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1951" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.527/%/%/%">
-      <details key="start" value="28245"/>
-      <details key="end" value="28246"/>
+    <eAnnotations source="positions.2000" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.540/%/%/%">
+      <details key="start" value="28587"/>
+      <details key="end" value="28588"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1952" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.527/%/%.1/%">
-      <details key="start" value="28248"/>
-      <details key="end" value="28249"/>
+    <eAnnotations source="positions.2001" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.540/%/%.1/%">
+      <details key="start" value="28590"/>
+      <details key="end" value="28591"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1953" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.528">
-      <details key="start" value="28253"/>
-      <details key="end" value="28304"/>
+    <eAnnotations source="positions.2002" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.541">
+      <details key="start" value="28595"/>
+      <details key="end" value="28644"/>
       <details key="line" value="399"/>
     </eAnnotations>
-    <eAnnotations source="positions.1954" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.529">
-      <details key="start" value="28305"/>
-      <details key="end" value="28345"/>
+    <eAnnotations source="positions.2003" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.542">
+      <details key="start" value="28645"/>
+      <details key="end" value="28683"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1955" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.529/integers">
-      <details key="start" value="28305"/>
-      <details key="end" value="28313"/>
+    <eAnnotations source="positions.2004" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.542/integers">
+      <details key="start" value="28645"/>
+      <details key="end" value="28653"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1956" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.529/%">
-      <details key="start" value="28328"/>
-      <details key="end" value="28344"/>
+    <eAnnotations source="positions.2005" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.542/%">
+      <details key="start" value="28666"/>
+      <details key="end" value="28682"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1957" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.529/%/%/%">
-      <details key="start" value="28339"/>
-      <details key="end" value="28340"/>
+    <eAnnotations source="positions.2006" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.542/%/%/%">
+      <details key="start" value="28677"/>
+      <details key="end" value="28678"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1958" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.529/%/%.1/%">
-      <details key="start" value="28342"/>
-      <details key="end" value="28343"/>
+    <eAnnotations source="positions.2007" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.542/%/%.1/%">
+      <details key="start" value="28680"/>
+      <details key="end" value="28681"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1959" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.530">
-      <details key="start" value="28347"/>
-      <details key="end" value="28348"/>
+    <eAnnotations source="positions.2008" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.543">
+      <details key="start" value="28685"/>
+      <details key="end" value="28734"/>
       <details key="line" value="400"/>
     </eAnnotations>
-    <eAnnotations source="positions.1960" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.531">
-      <details key="start" value="28395"/>
-      <details key="end" value="28443"/>
+    <eAnnotations source="positions.2009" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.544">
+      <details key="start" value="28735"/>
+      <details key="end" value="28773"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2010" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.544/integers">
+      <details key="start" value="28735"/>
+      <details key="end" value="28743"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2011" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.544/%">
+      <details key="start" value="28756"/>
+      <details key="end" value="28772"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2012" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.544/%/%/%">
+      <details key="start" value="28767"/>
+      <details key="end" value="28768"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2013" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.544/%/%.1/%">
+      <details key="start" value="28770"/>
+      <details key="end" value="28771"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2014" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.545">
+      <details key="start" value="28775"/>
+      <details key="end" value="28824"/>
       <details key="line" value="401"/>
     </eAnnotations>
-    <eAnnotations source="positions.1961" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.532">
-      <details key="start" value="28444"/>
-      <details key="end" value="28482"/>
+    <eAnnotations source="positions.2015" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.546">
+      <details key="start" value="28825"/>
+      <details key="end" value="28863"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1962" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.532/integers">
-      <details key="start" value="28444"/>
-      <details key="end" value="28452"/>
+    <eAnnotations source="positions.2016" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.546/integers">
+      <details key="start" value="28825"/>
+      <details key="end" value="28833"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1963" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.532/%">
-      <details key="start" value="28465"/>
-      <details key="end" value="28481"/>
+    <eAnnotations source="positions.2017" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.546/%">
+      <details key="start" value="28846"/>
+      <details key="end" value="28862"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1964" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.532/%/%/%">
-      <details key="start" value="28476"/>
-      <details key="end" value="28477"/>
+    <eAnnotations source="positions.2018" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.546/%/%/%">
+      <details key="start" value="28857"/>
+      <details key="end" value="28858"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1965" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.532/%/%.1/%">
-      <details key="start" value="28479"/>
-      <details key="end" value="28480"/>
+    <eAnnotations source="positions.2019" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.546/%/%.1/%">
+      <details key="start" value="28860"/>
+      <details key="end" value="28861"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1966" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.533">
-      <details key="start" value="28484"/>
-      <details key="end" value="28533"/>
+    <eAnnotations source="positions.2020" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.547">
+      <details key="start" value="28865"/>
+      <details key="end" value="28866"/>
       <details key="line" value="402"/>
     </eAnnotations>
-    <eAnnotations source="positions.1967" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.534">
-      <details key="start" value="28534"/>
-      <details key="end" value="28572"/>
+    <eAnnotations source="positions.2021" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.548">
+      <details key="start" value="29046"/>
+      <details key="end" value="29074"/>
+      <details key="line" value="406"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2022" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42">
+      <details key="start" value="29075"/>
+      <details key="end" value="29093"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1968" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.534/integers">
-      <details key="start" value="28534"/>
-      <details key="end" value="28542"/>
+    <eAnnotations source="positions.2023" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/strings">
+      <details key="start" value="29075"/>
+      <details key="end" value="29082"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1969" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.534/%">
-      <details key="start" value="28555"/>
-      <details key="end" value="28571"/>
+    <eAnnotations source="positions.2024" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/%">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1970" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.534/%/%/%">
-      <details key="start" value="28566"/>
-      <details key="end" value="28567"/>
+    <eAnnotations source="positions.2025" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/%/temp1">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1971" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.534/%/%.1/%">
-      <details key="start" value="28569"/>
-      <details key="end" value="28570"/>
+    <eAnnotations source="positions.2026" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/temp66">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1972" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.535">
-      <details key="start" value="28574"/>
-      <details key="end" value="28623"/>
-      <details key="line" value="403"/>
+    <eAnnotations source="positions.2027" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.549">
+      <details key="start" value="29095"/>
+      <details key="end" value="29125"/>
+      <details key="line" value="407"/>
     </eAnnotations>
-    <eAnnotations source="positions.1973" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.536">
-      <details key="start" value="28624"/>
-      <details key="end" value="28662"/>
+    <eAnnotations source="positions.2028" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.43">
+      <details key="start" value="29126"/>
+      <details key="end" value="29145"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1974" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.536/integers">
-      <details key="start" value="28624"/>
-      <details key="end" value="28632"/>
+    <eAnnotations source="positions.2029" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.43/integers">
+      <details key="start" value="29126"/>
+      <details key="end" value="29134"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1975" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.536/%">
-      <details key="start" value="28645"/>
-      <details key="end" value="28661"/>
+    <eAnnotations source="positions.2030" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.43/%">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1976" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.536/%/%/%">
-      <details key="start" value="28656"/>
-      <details key="end" value="28657"/>
+    <eAnnotations source="positions.2031" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.43/%/temp1">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1977" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.536/%/%.1/%">
-      <details key="start" value="28659"/>
-      <details key="end" value="28660"/>
+    <eAnnotations source="positions.2032" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.43/temp67">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1978" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.537">
-      <details key="start" value="28664"/>
-      <details key="end" value="28713"/>
-      <details key="line" value="404"/>
+    <eAnnotations source="positions.2033" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.550">
+      <details key="start" value="29147"/>
+      <details key="end" value="29174"/>
+      <details key="line" value="408"/>
     </eAnnotations>
-    <eAnnotations source="positions.1979" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.538">
-      <details key="start" value="28714"/>
-      <details key="end" value="28752"/>
+    <eAnnotations source="positions.2034" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.44">
+      <details key="start" value="29175"/>
+      <details key="end" value="29191"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1980" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.538/integers">
-      <details key="start" value="28714"/>
-      <details key="end" value="28722"/>
+    <eAnnotations source="positions.2035" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.44/reals">
+      <details key="start" value="29175"/>
+      <details key="end" value="29180"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1981" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.538/%">
-      <details key="start" value="28735"/>
-      <details key="end" value="28751"/>
+    <eAnnotations source="positions.2036" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.44/%">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1982" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.538/%/%/%">
-      <details key="start" value="28746"/>
-      <details key="end" value="28747"/>
+    <eAnnotations source="positions.2037" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.44/%/temp1">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1983" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.538/%/%.1/%">
-      <details key="start" value="28749"/>
-      <details key="end" value="28750"/>
+    <eAnnotations source="positions.2038" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.44/temp68">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1984" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.539">
-      <details key="start" value="28754"/>
-      <details key="end" value="28755"/>
-      <details key="line" value="405"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1985" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.540">
-      <details key="start" value="28935"/>
-      <details key="end" value="28963"/>
+    <eAnnotations source="positions.2039" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.551">
+      <details key="start" value="29193"/>
+      <details key="end" value="29223"/>
       <details key="line" value="409"/>
     </eAnnotations>
-    <eAnnotations source="positions.1986" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42">
-      <details key="start" value="28964"/>
-      <details key="end" value="28982"/>
+    <eAnnotations source="positions.2040" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.45">
+      <details key="start" value="29224"/>
+      <details key="end" value="29243"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1987" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/strings">
-      <details key="start" value="28964"/>
-      <details key="end" value="28971"/>
+    <eAnnotations source="positions.2041" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.45/booleans">
+      <details key="start" value="29224"/>
+      <details key="end" value="29232"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1988" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/%">
+    <eAnnotations source="positions.2042" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.45/%">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1989" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/%/temp1">
+    <eAnnotations source="positions.2043" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.45/%/temp1">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1990" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.42/temp66">
+    <eAnnotations source="positions.2044" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.45/temp69">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1991" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.541">
-      <details key="start" value="28984"/>
-      <details key="end" value="29014"/>
+    <eAnnotations source="positions.2045" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.552">
+      <details key="start" value="29245"/>
+      <details key="end" value="29292"/>
       <details key="line" value="410"/>
     </eAnnotations>
-    <eAnnotations source="positions.1992" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.43">
-      <details key="start" value="29015"/>
-      <details key="end" value="29034"/>
+    <eAnnotations source="positions.2046" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46">
+      <details key="start" value="29293"/>
+      <details key="end" value="29329"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1993" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.43/integers">
-      <details key="start" value="29015"/>
-      <details key="end" value="29023"/>
+    <eAnnotations source="positions.2047" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/collect">
+      <details key="start" value="29293"/>
+      <details key="end" value="29312"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1994" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.43/%">
+    <eAnnotations source="positions.2048" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/collect/eClasses">
+      <details key="start" value="29293"/>
+      <details key="end" value="29301"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2049" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/collect/%">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1995" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.43/%/temp1">
+    <eAnnotations source="positions.2050" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/collect/%/temp1">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1996" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.43/temp67">
+    <eAnnotations source="positions.2051" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/collect/temp70">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1997" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.542">
-      <details key="start" value="29036"/>
-      <details key="end" value="29063"/>
+    <eAnnotations source="positions.2052" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/%">
+      <details key="start" value="29324"/>
+      <details key="end" value="29328"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2053" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/%/temp2">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2054" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/temp71">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2055" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.553">
+      <details key="start" value="29331"/>
+      <details key="end" value="29364"/>
       <details key="line" value="411"/>
     </eAnnotations>
-    <eAnnotations source="positions.1998" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.44">
-      <details key="start" value="29064"/>
-      <details key="end" value="29080"/>
+    <eAnnotations source="positions.2056" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.47">
+      <details key="start" value="29365"/>
+      <details key="end" value="29387"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1999" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.44/reals">
-      <details key="start" value="29064"/>
-      <details key="end" value="29069"/>
+    <eAnnotations source="positions.2057" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.47/collections">
+      <details key="start" value="29365"/>
+      <details key="end" value="29376"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2000" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.44/%">
+    <eAnnotations source="positions.2058" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.47/%">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2001" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.44/%/temp1">
+    <eAnnotations source="positions.2059" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.47/%/temp1">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2002" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.44/temp68">
+    <eAnnotations source="positions.2060" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.47/temp72">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2003" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.543">
-      <details key="start" value="29082"/>
-      <details key="end" value="29112"/>
+    <eAnnotations source="positions.2061" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.554">
+      <details key="start" value="29389"/>
+      <details key="end" value="29390"/>
       <details key="line" value="412"/>
     </eAnnotations>
-    <eAnnotations source="positions.2004" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.45">
-      <details key="start" value="29113"/>
-      <details key="end" value="29132"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2005" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.45/booleans">
-      <details key="start" value="29113"/>
-      <details key="end" value="29121"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2006" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.45/%">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2007" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.45/%/temp1">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2008" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.45/temp69">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2009" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.544">
-      <details key="start" value="29134"/>
-      <details key="end" value="29181"/>
-      <details key="line" value="413"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2010" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46">
-      <details key="start" value="29182"/>
-      <details key="end" value="29218"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2011" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/collect">
-      <details key="start" value="29182"/>
-      <details key="end" value="29201"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2012" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/collect/eClasses">
-      <details key="start" value="29182"/>
-      <details key="end" value="29190"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2013" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/collect/%">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2014" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/collect/%/temp1">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2015" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/collect/temp70">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2016" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/%">
-      <details key="start" value="29213"/>
-      <details key="end" value="29217"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2017" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/%/temp2">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2018" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.46/temp71">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2019" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.545">
-      <details key="start" value="29220"/>
-      <details key="end" value="29253"/>
-      <details key="line" value="414"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2020" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.47">
-      <details key="start" value="29254"/>
-      <details key="end" value="29276"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2021" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.47/collections">
-      <details key="start" value="29254"/>
-      <details key="end" value="29265"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2022" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.47/%">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2023" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.47/%/temp1">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2024" references="/0/testOrderedSet/%/%/%/%/%/%/%/collect.47/temp72">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2025" references="/0/testOrderedSet/%/%/%/%/%/%/%/%.546">
-      <details key="start" value="29278"/>
-      <details key="end" value="29279"/>
-      <details key="line" value="415"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2026" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections">
+    <eAnnotations source="positions.2062" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections">
       <details key="start" value="569"/>
       <details key="end" value="667"/>
       <details key="line" value="12"/>
     </eAnnotations>
-    <eAnnotations source="positions.2027" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%">
+    <eAnnotations source="positions.2063" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%">
       <details key="start" value="617"/>
       <details key="end" value="668"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2028" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%/strings">
+    <eAnnotations source="positions.2064" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%/strings">
       <details key="start" value="628"/>
       <details key="end" value="635"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2029" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%">
+    <eAnnotations source="positions.2065" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%">
       <details key="start" value="636"/>
       <details key="end" value="659"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2030" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%/%/%">
+    <eAnnotations source="positions.2066" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%/%/%">
       <details key="start" value="647"/>
       <details key="end" value="650"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2031" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%/%.1/%">
+    <eAnnotations source="positions.2067" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%/%.1/%">
       <details key="start" value="651"/>
       <details key="end" value="654"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2032" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%/%.2/%">
+    <eAnnotations source="positions.2068" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.1/%/%.2/%">
       <details key="start" value="655"/>
       <details key="end" value="658"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2033" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.2/strings">
+    <eAnnotations source="positions.2069" references="/0/testOrderedSet/%/%/%/%/%/%/%/collections/%/%.2/strings">
       <details key="start" value="660"/>
       <details key="end" value="667"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2034" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses">
+    <eAnnotations source="positions.2070" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses">
       <details key="start" value="500"/>
       <details key="end" value="562"/>
       <details key="line" value="11"/>
     </eAnnotations>
-    <eAnnotations source="positions.2035" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses/%">
+    <eAnnotations source="positions.2071" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses/%">
       <details key="start" value="533"/>
       <details key="end" value="563"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2036" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses/%/%">
+    <eAnnotations source="positions.2072" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses/%/%">
       <details key="start" value="533"/>
       <details key="end" value="547"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2037" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses/%/%/p">
+    <eAnnotations source="positions.2073" references="/0/testOrderedSet/%/%/%/%/%/%/eClasses/%/%/p">
       <details key="start" value="533"/>
       <details key="end" value="534"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2038" references="/0/testOrderedSet/%/%/%/%/%/booleans">
+    <eAnnotations source="positions.2074" references="/0/testOrderedSet/%/%/%/%/%/booleans">
       <details key="start" value="431"/>
       <details key="end" value="493"/>
       <details key="line" value="10"/>
     </eAnnotations>
-    <eAnnotations source="positions.2039" references="/0/testOrderedSet/%/%/%/%/%/booleans/%">
+    <eAnnotations source="positions.2075" references="/0/testOrderedSet/%/%/%/%/%/booleans/%">
       <details key="start" value="465"/>
       <details key="end" value="494"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2040" references="/0/testOrderedSet/%/%/%/%/%/booleans/%/%/%">
+    <eAnnotations source="positions.2076" references="/0/testOrderedSet/%/%/%/%/%/booleans/%/%/%">
       <details key="start" value="476"/>
       <details key="end" value="480"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2041" references="/0/testOrderedSet/%/%/%/%/%/booleans/%/%.1/%">
+    <eAnnotations source="positions.2077" references="/0/testOrderedSet/%/%/%/%/%/booleans/%/%.1/%">
       <details key="start" value="482"/>
       <details key="end" value="487"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2042" references="/0/testOrderedSet/%/%/%/%/%/booleans/%/%.2/%">
+    <eAnnotations source="positions.2078" references="/0/testOrderedSet/%/%/%/%/%/booleans/%/%.2/%">
       <details key="start" value="489"/>
       <details key="end" value="493"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2043" references="/0/testOrderedSet/%/%/%/%/reals">
+    <eAnnotations source="positions.2079" references="/0/testOrderedSet/%/%/%/%/reals">
       <details key="start" value="374"/>
       <details key="end" value="424"/>
       <details key="line" value="9"/>
     </eAnnotations>
-    <eAnnotations source="positions.2044" references="/0/testOrderedSet/%/%/%/%/reals/%">
+    <eAnnotations source="positions.2080" references="/0/testOrderedSet/%/%/%/%/reals/%">
       <details key="start" value="402"/>
       <details key="end" value="425"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2045" references="/0/testOrderedSet/%/%/%/%/reals/%/%/%">
+    <eAnnotations source="positions.2081" references="/0/testOrderedSet/%/%/%/%/reals/%/%/%">
       <details key="start" value="413"/>
       <details key="end" value="416"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2046" references="/0/testOrderedSet/%/%/%/%/reals/%/%.1/%">
+    <eAnnotations source="positions.2082" references="/0/testOrderedSet/%/%/%/%/reals/%/%.1/%">
       <details key="start" value="417"/>
       <details key="end" value="420"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2047" references="/0/testOrderedSet/%/%/%/%/reals/%/%.2/%">
+    <eAnnotations source="positions.2083" references="/0/testOrderedSet/%/%/%/%/reals/%/%.2/%">
       <details key="start" value="421"/>
       <details key="end" value="424"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2048" references="/0/testOrderedSet/%/%/%/integers">
+    <eAnnotations source="positions.2084" references="/0/testOrderedSet/%/%/%/integers">
       <details key="start" value="317"/>
       <details key="end" value="367"/>
       <details key="line" value="8"/>
     </eAnnotations>
-    <eAnnotations source="positions.2049" references="/0/testOrderedSet/%/%/%/integers/%">
+    <eAnnotations source="positions.2085" references="/0/testOrderedSet/%/%/%/integers/%">
       <details key="start" value="351"/>
       <details key="end" value="368"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2050" references="/0/testOrderedSet/%/%/%/integers/%/%/%">
+    <eAnnotations source="positions.2086" references="/0/testOrderedSet/%/%/%/integers/%/%/%">
       <details key="start" value="362"/>
       <details key="end" value="363"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2051" references="/0/testOrderedSet/%/%/%/integers/%/%.1/%">
+    <eAnnotations source="positions.2087" references="/0/testOrderedSet/%/%/%/integers/%/%.1/%">
       <details key="start" value="364"/>
       <details key="end" value="365"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2052" references="/0/testOrderedSet/%/%/%/integers/%/%.2/%">
+    <eAnnotations source="positions.2088" references="/0/testOrderedSet/%/%/%/integers/%/%.2/%">
       <details key="start" value="366"/>
       <details key="end" value="367"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2053" references="/0/testOrderedSet/%/%/strings">
+    <eAnnotations source="positions.2089" references="/0/testOrderedSet/%/%/strings">
       <details key="start" value="256"/>
       <details key="end" value="310"/>
       <details key="line" value="7"/>
     </eAnnotations>
-    <eAnnotations source="positions.2054" references="/0/testOrderedSet/%/%/strings/%">
+    <eAnnotations source="positions.2090" references="/0/testOrderedSet/%/%/strings/%">
       <details key="start" value="288"/>
       <details key="end" value="311"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2055" references="/0/testOrderedSet/%/%/strings/%/%/%">
+    <eAnnotations source="positions.2091" references="/0/testOrderedSet/%/%/strings/%/%/%">
       <details key="start" value="299"/>
       <details key="end" value="302"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2056" references="/0/testOrderedSet/%/%/strings/%/%.1/%">
+    <eAnnotations source="positions.2092" references="/0/testOrderedSet/%/%/strings/%/%.1/%">
       <details key="start" value="303"/>
       <details key="end" value="306"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2057" references="/0/testOrderedSet/%/%/strings/%/%.2/%">
+    <eAnnotations source="positions.2093" references="/0/testOrderedSet/%/%/strings/%/%.2/%">
       <details key="start" value="307"/>
       <details key="end" value="310"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2058" references="/0/testOrderedSet/%/%.1">
+    <eAnnotations source="positions.2094" references="/0/testOrderedSet/%/%.1">
       <details key="start" value="143"/>
       <details key="end" value="159"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2059" references="/0/testOrderedSet/p">
+    <eAnnotations source="positions.2095" references="/0/testOrderedSet/p">
       <details key="start" value="104"/>
       <details key="end" value="116"/>
       <details key="line" value="3"/>
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.mtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.mtl
index 1158f8b..b9786f1 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/orderedSetsServices/orderedSetsServices.mtl
@@ -358,6 +358,10 @@
                   
                 @Test OrderedSet{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p => [OrderedSet{p, 'test', true, 1, 2.2}->filter(ecore::EPackage)->first() = p/]
                 @Test OrderedSet{p,'test',true,1,2.2} -> filter(EClass) -> size() => [OrderedSet{p, 'test', true, 1, 2.2}->filter(ecore::EClass)->size()/]
+                @Test OrderedSet{p,'test',true,1,2.2} -> filter(String) => [OrderedSet{p, 'test', true, 1, 2.2}->filter(String)/]
+                @Test OrderedSet{p,'test',true,1,2.2} -> filter(Integer) => [OrderedSet{p, 'test', true, 1, 2.2}->filter(Integer)/]
+                @Test OrderedSet{p,'test',true,1,2.2} -> filter(Boolean) => [OrderedSet{p, 'test', true, 1, 2.2}->filter(Boolean)/]
+                @Test OrderedSet{p,'test',true,1,2.2} -> filter(Real) => [OrderedSet{p, 'test', true, 1, 2.2}->filter(Real)/]
                 @Test strings -> subOrderedSet(1,2) => [strings->subOrderedSet(1, 2)/]
                 @Test integers -> subOrderedSet(1,2) => [integers->subOrderedSet(1, 2)/]
                 @Test reals -> subOrderedSet(1,2) => [reals->subOrderedSet(1, 2)/]
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/generated/testSequence-expected.txt b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/generated/testSequence-expected.txt
index 156e525..f7f500e 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/generated/testSequence-expected.txt
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/generated/testSequence-expected.txt
@@ -348,6 +348,10 @@
   
 @Test Sequence{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p => true
 @Test Sequence{p,'test',true,1,2.2} -> filter(EClass) -> size() => 0
+@Test Sequence{p,'test',true,1,2.2} -> filter(String) => test
+@Test Sequence{p,'test',true,1,2.2} -> filter(Integer) => 1
+@Test Sequence{p,'test',true,1,2.2} -> filter(Boolean) => true
+@Test Sequence{p,'test',true,1,2.2} -> filter(Real) => 2.2
   
 @Test strings -> subSequence(1,2) => ab
 @Test integers -> subSequence(1,2) => 12
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-expected-validation.txt b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-expected-validation.txt
index 6e1db3b..75bdf87 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-expected-validation.txt
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-expected-validation.txt
@@ -1,18 +1,18 @@
 INFO Always true:
-Nothing inferred when temp6 (java.lang.String) is not type of java.lang.String - 1213 1238
+Nothing inferred when temp6 (java.lang.String) is not type of ClassLiteral=java.lang.String - 1213 1238
 INFO Always true:
-Nothing inferred when temp7 (java.lang.Double) is not type of java.lang.Double - 1315 1338
+Nothing inferred when temp7 (java.lang.Double) is not type of ClassLiteral=java.lang.Double - 1315 1338
 INFO Always true:
-Nothing inferred when temp8 (java.lang.Integer) is not type of java.lang.Integer - 1424 1450
+Nothing inferred when temp8 (java.lang.Integer) is not type of ClassLiteral=java.lang.Integer - 1424 1450
 INFO Always true:
-Nothing inferred when temp9 (java.lang.Boolean) is not type of java.lang.Boolean - 1536 1562
+Nothing inferred when temp9 (java.lang.Boolean) is not type of ClassLiteral=java.lang.Boolean - 1536 1562
 INFO Always true:
-Nothing inferred when temp11 (java.lang.String) is not kind of java.lang.String - 1784 1810
+Nothing inferred when temp11 (java.lang.String) is not kind of ClassLiteral=java.lang.String - 1784 1810
 INFO Always true:
-Nothing inferred when temp12 (java.lang.Double) is not kind of java.lang.Double - 1888 1912
+Nothing inferred when temp12 (java.lang.Double) is not kind of ClassLiteral=java.lang.Double - 1888 1912
 INFO Always true:
-Nothing inferred when temp13 (java.lang.Integer) is not kind of java.lang.Integer - 1999 2026
+Nothing inferred when temp13 (java.lang.Integer) is not kind of ClassLiteral=java.lang.Integer - 1999 2026
 INFO Always true:
-Nothing inferred when temp14 (java.lang.Boolean) is not kind of java.lang.Boolean - 2113 2140
+Nothing inferred when temp14 (java.lang.Boolean) is not kind of ClassLiteral=java.lang.Boolean - 2113 2140
 INFO Always true:
 Nothing inferred when temp15 (EClassifier=EClassifier) is not kind of EClassifierLiteral=EObject - 2227 2261
\ No newline at end of file
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-expected.mtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-expected.mtl
index c59a809..f306ee1 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-expected.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-expected.mtl
@@ -359,6 +359,10 @@
                   
                 @Test Sequence{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p => [Sequence{p, 'test', true, 1, 2.2}->filter(ecore::EPackage)->first() = p/]
                 @Test Sequence{p,'test',true,1,2.2} -> filter(EClass) -> size() => [Sequence{p, 'test', true, 1, 2.2}->filter(ecore::EClass)->size()/]
+                @Test Sequence{p,'test',true,1,2.2} -> filter(String) => [Sequence{p, 'test', true, 1, 2.2}->filter(String)/]
+                @Test Sequence{p,'test',true,1,2.2} -> filter(Integer) => [Sequence{p, 'test', true, 1, 2.2}->filter(Integer)/]
+                @Test Sequence{p,'test',true,1,2.2} -> filter(Boolean) => [Sequence{p, 'test', true, 1, 2.2}->filter(Boolean)/]
+                @Test Sequence{p,'test',true,1,2.2} -> filter(Real) => [Sequence{p, 'test', true, 1, 2.2}->filter(Real)/]
                   
                 @Test strings -> subSequence(1,2) => [strings->subSequence(1, 2)/]
                 @Test integers -> subSequence(1,2) => [integers->subSequence(1, 2)/]
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-origin.mtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-origin.mtl
index 28343cb..9be9ae1 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-origin.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices-origin.mtl
@@ -369,13 +369,10 @@
   
 @Test Sequence{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p => [Sequence{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p/]
 @Test Sequence{p,'test',true,1,2.2} -> filter(EClass) -> size() => [Sequence{p,'test',true,1,2.2} -> filter(EClass) -> size()/]
-[comment]A4-UNSUPPORTED(LOT1) WIP https://git.eclipse.org/r/#/c/162879/ filter(primitiveType)[/comment]
-[comment]
-[Sequence{p,'test',true,1,2.2} -> filter(String)/]
-[Sequence{p,'test',true,1,2.2} -> filter(Integer)/]
-[Sequence{p,'test',true,1,2.2} -> filter(Boolean)/]
-[Sequence{p,'test',true,1,2.2} -> filter(Real)/]
-[/comment]
+@Test Sequence{p,'test',true,1,2.2} -> filter(String) => [Sequence{p,'test',true,1,2.2} -> filter(String)/]
+@Test Sequence{p,'test',true,1,2.2} -> filter(Integer) => [Sequence{p,'test',true,1,2.2} -> filter(Integer)/]
+@Test Sequence{p,'test',true,1,2.2} -> filter(Boolean) => [Sequence{p,'test',true,1,2.2} -> filter(Boolean)/]
+@Test Sequence{p,'test',true,1,2.2} -> filter(Real) => [Sequence{p,'test',true,1,2.2} -> filter(Real)/]
   
 @Test strings -> subSequence(1,2) => [strings -> subSequence(1,2)/]
 @Test integers -> subSequence(1,2) => [integers -> subSequence(1,2)/]
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.emtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.emtl
index 18a5cd1..98631ed 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.emtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.emtl
@@ -4984,8 +4984,159 @@
                       </source>
                       <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/size"/>
                     </body>
-                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
-                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="  &#xA;@Test strings -> subSequence(1,2) => "/>
+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;@Test Sequence{p,'test',true,1,2.2} -> filter(String) => "/>
+                    <body xsi:type="ocl.ecore:OperationCallExp" eType="/7/Sequence(String)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">
+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/Sequence(OclAny)" kind="Sequence">
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          <item xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/testSequence/p">
+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          <item xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="test">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          <item xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          <item xsi:type="ocl.ecore:RealLiteralExp" realSymbol="2.2">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          </item>
+                        </part>
+                      </source>
+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/19/String">
+                        <referredType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                      </argument>
+                    </body>
+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;@Test Sequence{p,'test',true,1,2.2} -> filter(Integer) => "/>
+                    <body xsi:type="ocl.ecore:OperationCallExp" eType="/7/Sequence(Integer)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">
+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/Sequence(OclAny)" kind="Sequence">
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          <item xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/testSequence/p">
+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          <item xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="test">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          <item xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          <item xsi:type="ocl.ecore:RealLiteralExp" realSymbol="2.2">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          </item>
+                        </part>
+                      </source>
+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/19/Integer">
+                        <referredType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                      </argument>
+                    </body>
+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;@Test Sequence{p,'test',true,1,2.2} -> filter(Boolean) => "/>
+                    <body xsi:type="ocl.ecore:OperationCallExp" eType="/7/Sequence(Boolean)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">
+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/Sequence(OclAny)" kind="Sequence">
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          <item xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/testSequence/p">
+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          <item xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="test">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          <item xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          <item xsi:type="ocl.ecore:RealLiteralExp" realSymbol="2.2">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          </item>
+                        </part>
+                      </source>
+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/19/Boolean">
+                        <referredType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                      </argument>
+                    </body>
+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;@Test Sequence{p,'test',true,1,2.2} -> filter(Real) => "/>
+                    <body xsi:type="ocl.ecore:OperationCallExp" eType="/7/Sequence(Real)" referredOperation="/1/oclstdlib_Collection(T)_Class/filter">
+                      <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/7/Sequence(OclAny)" kind="Sequence">
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          <item xsi:type="ocl.ecore:VariableExp" name="p" referredVariable="/0/testSequence/p">
+                            <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          <item xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="test">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          <item xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          <item xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+                          </item>
+                        </part>
+                        <part xsi:type="ocl.ecore:CollectionItem">
+                          <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          <item xsi:type="ocl.ecore:RealLiteralExp" realSymbol="2.2">
+                            <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                          </item>
+                        </part>
+                      </source>
+                      <argument xsi:type="ocl.ecore:TypeExp" eType="/19/Real">
+                        <referredType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
+                      </argument>
+                    </body>
+                    <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;  &#xA;@Test strings -> subSequence(1,2) => "/>
                     <body xsi:type="ocl.ecore:OperationCallExp" eType="/7/Sequence(String)">
                       <source xsi:type="ocl.ecore:VariableExp" name="strings" eType="/7/Sequence(String)" referredVariable="/0/testSequence/%/%/strings"/>
                       <argument xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
@@ -6697,47 +6848,59 @@
     <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
   </ocl.ecore:Variable>
   <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
+    <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+  </ocl.ecore:Variable>
+  <ocl.ecore:Variable name="self">
     <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
   </ocl.ecore:Variable>
   <ecore:EAnnotation source="positions">
     <eAnnotations source="positions.0" references="/0/testSequence">
       <details key="start" value="70"/>
-      <details key="end" value="28713"/>
+      <details key="end" value="28816"/>
       <details key="line" value="3"/>
     </eAnnotations>
     <eAnnotations source="positions.1" references="/0/testSequence/%">
       <details key="start" value="132"/>
-      <details key="end" value="28701"/>
+      <details key="end" value="28804"/>
       <details key="line" value="5"/>
     </eAnnotations>
     <eAnnotations source="positions.2" references="/0/testSequence/%/%">
       <details key="start" value="242"/>
-      <details key="end" value="28693"/>
+      <details key="end" value="28796"/>
       <details key="line" value="7"/>
     </eAnnotations>
     <eAnnotations source="positions.3" references="/0/testSequence/%/%/%">
       <details key="start" value="299"/>
-      <details key="end" value="28687"/>
+      <details key="end" value="28790"/>
       <details key="line" value="8"/>
     </eAnnotations>
     <eAnnotations source="positions.4" references="/0/testSequence/%/%/%/%">
       <details key="start" value="352"/>
-      <details key="end" value="28681"/>
+      <details key="end" value="28784"/>
       <details key="line" value="9"/>
     </eAnnotations>
     <eAnnotations source="positions.5" references="/0/testSequence/%/%/%/%/%">
       <details key="start" value="405"/>
-      <details key="end" value="28675"/>
+      <details key="end" value="28778"/>
       <details key="line" value="10"/>
     </eAnnotations>
     <eAnnotations source="positions.6" references="/0/testSequence/%/%/%/%/%/%">
       <details key="start" value="470"/>
-      <details key="end" value="28669"/>
+      <details key="end" value="28772"/>
       <details key="line" value="11"/>
     </eAnnotations>
     <eAnnotations source="positions.7" references="/0/testSequence/%/%/%/%/%/%/%">
       <details key="start" value="535"/>
-      <details key="end" value="28663"/>
+      <details key="end" value="28766"/>
       <details key="line" value="12"/>
     </eAnnotations>
     <eAnnotations source="positions.8" references="/0/testSequence/%/%/%/%/%/%/%/%">
@@ -16082,805 +16245,980 @@
     </eAnnotations>
     <eAnnotations source="positions.1876" references="/0/testSequence/%/%/%/%/%/%/%/%.514">
       <details key="start" value="25872"/>
-      <details key="end" value="25873"/>
+      <details key="end" value="25930"/>
       <details key="line" value="372"/>
     </eAnnotations>
     <eAnnotations source="positions.1877" references="/0/testSequence/%/%/%/%/%/%/%/%.515">
-      <details key="start" value="26202"/>
-      <details key="end" value="26242"/>
-      <details key="line" value="379"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1878" references="/0/testSequence/%/%/%/%/%/%/%/%.516">
-      <details key="start" value="26243"/>
-      <details key="end" value="26270"/>
+      <details key="start" value="25931"/>
+      <details key="end" value="25978"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1879" references="/0/testSequence/%/%/%/%/%/%/%/%.516/strings">
-      <details key="start" value="26243"/>
-      <details key="end" value="26250"/>
+    <eAnnotations source="positions.1878" references="/0/testSequence/%/%/%/%/%/%/%/%.515/%">
+      <details key="start" value="25931"/>
+      <details key="end" value="25960"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1880" references="/0/testSequence/%/%/%/%/%/%/%/%.516/%">
+    <eAnnotations source="positions.1879" references="/0/testSequence/%/%/%/%/%/%/%/%.515/%/%/p">
+      <details key="start" value="25940"/>
+      <details key="end" value="25941"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1880" references="/0/testSequence/%/%/%/%/%/%/%/%.515/%/%.1/%">
+      <details key="start" value="25942"/>
+      <details key="end" value="25948"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1881" references="/0/testSequence/%/%/%/%/%/%/%/%.515/%/%.2/%">
+      <details key="start" value="25949"/>
+      <details key="end" value="25953"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1882" references="/0/testSequence/%/%/%/%/%/%/%/%.515/%/%.3/%">
+      <details key="start" value="25954"/>
+      <details key="end" value="25955"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1883" references="/0/testSequence/%/%/%/%/%/%/%/%.515/%/%.4/%">
+      <details key="start" value="25956"/>
+      <details key="end" value="25959"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1884" references="/0/testSequence/%/%/%/%/%/%/%/%.515/%.1">
+      <details key="start" value="25971"/>
+      <details key="end" value="25977"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1885" references="/0/testSequence/%/%/%/%/%/%/%/%.516">
+      <details key="start" value="25980"/>
+      <details key="end" value="26039"/>
+      <details key="line" value="373"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1886" references="/0/testSequence/%/%/%/%/%/%/%/%.517">
+      <details key="start" value="26040"/>
+      <details key="end" value="26088"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1887" references="/0/testSequence/%/%/%/%/%/%/%/%.517/%">
+      <details key="start" value="26040"/>
+      <details key="end" value="26069"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1888" references="/0/testSequence/%/%/%/%/%/%/%/%.517/%/%/p">
+      <details key="start" value="26049"/>
+      <details key="end" value="26050"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1889" references="/0/testSequence/%/%/%/%/%/%/%/%.517/%/%.1/%">
+      <details key="start" value="26051"/>
+      <details key="end" value="26057"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1890" references="/0/testSequence/%/%/%/%/%/%/%/%.517/%/%.2/%">
+      <details key="start" value="26058"/>
+      <details key="end" value="26062"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1891" references="/0/testSequence/%/%/%/%/%/%/%/%.517/%/%.3/%">
+      <details key="start" value="26063"/>
+      <details key="end" value="26064"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1892" references="/0/testSequence/%/%/%/%/%/%/%/%.517/%/%.4/%">
+      <details key="start" value="26065"/>
+      <details key="end" value="26068"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1893" references="/0/testSequence/%/%/%/%/%/%/%/%.517/%.1">
+      <details key="start" value="26080"/>
+      <details key="end" value="26087"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1894" references="/0/testSequence/%/%/%/%/%/%/%/%.518">
+      <details key="start" value="26090"/>
+      <details key="end" value="26149"/>
+      <details key="line" value="374"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1895" references="/0/testSequence/%/%/%/%/%/%/%/%.519">
+      <details key="start" value="26150"/>
+      <details key="end" value="26198"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1896" references="/0/testSequence/%/%/%/%/%/%/%/%.519/%">
+      <details key="start" value="26150"/>
+      <details key="end" value="26179"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1897" references="/0/testSequence/%/%/%/%/%/%/%/%.519/%/%/p">
+      <details key="start" value="26159"/>
+      <details key="end" value="26160"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1898" references="/0/testSequence/%/%/%/%/%/%/%/%.519/%/%.1/%">
+      <details key="start" value="26161"/>
+      <details key="end" value="26167"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1899" references="/0/testSequence/%/%/%/%/%/%/%/%.519/%/%.2/%">
+      <details key="start" value="26168"/>
+      <details key="end" value="26172"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1900" references="/0/testSequence/%/%/%/%/%/%/%/%.519/%/%.3/%">
+      <details key="start" value="26173"/>
+      <details key="end" value="26174"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1901" references="/0/testSequence/%/%/%/%/%/%/%/%.519/%/%.4/%">
+      <details key="start" value="26175"/>
+      <details key="end" value="26178"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1902" references="/0/testSequence/%/%/%/%/%/%/%/%.519/%.1">
+      <details key="start" value="26190"/>
+      <details key="end" value="26197"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1903" references="/0/testSequence/%/%/%/%/%/%/%/%.520">
+      <details key="start" value="26200"/>
+      <details key="end" value="26256"/>
+      <details key="line" value="375"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1904" references="/0/testSequence/%/%/%/%/%/%/%/%.521">
+      <details key="start" value="26257"/>
+      <details key="end" value="26302"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1905" references="/0/testSequence/%/%/%/%/%/%/%/%.521/%">
+      <details key="start" value="26257"/>
+      <details key="end" value="26286"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1906" references="/0/testSequence/%/%/%/%/%/%/%/%.521/%/%/p">
       <details key="start" value="26266"/>
       <details key="end" value="26267"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1881" references="/0/testSequence/%/%/%/%/%/%/%/%.516/%.1">
+    <eAnnotations source="positions.1907" references="/0/testSequence/%/%/%/%/%/%/%/%.521/%/%.1/%">
       <details key="start" value="26268"/>
-      <details key="end" value="26269"/>
+      <details key="end" value="26274"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1882" references="/0/testSequence/%/%/%/%/%/%/%/%.517">
-      <details key="start" value="26272"/>
-      <details key="end" value="26311"/>
-      <details key="line" value="381"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1883" references="/0/testSequence/%/%/%/%/%/%/%/%.518">
-      <details key="start" value="26312"/>
-      <details key="end" value="26340"/>
+    <eAnnotations source="positions.1908" references="/0/testSequence/%/%/%/%/%/%/%/%.521/%/%.2/%">
+      <details key="start" value="26275"/>
+      <details key="end" value="26279"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1884" references="/0/testSequence/%/%/%/%/%/%/%/%.518/integers">
-      <details key="start" value="26312"/>
-      <details key="end" value="26320"/>
+    <eAnnotations source="positions.1909" references="/0/testSequence/%/%/%/%/%/%/%/%.521/%/%.3/%">
+      <details key="start" value="26280"/>
+      <details key="end" value="26281"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1885" references="/0/testSequence/%/%/%/%/%/%/%/%.518/%">
-      <details key="start" value="26336"/>
-      <details key="end" value="26337"/>
+    <eAnnotations source="positions.1910" references="/0/testSequence/%/%/%/%/%/%/%/%.521/%/%.4/%">
+      <details key="start" value="26282"/>
+      <details key="end" value="26285"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1886" references="/0/testSequence/%/%/%/%/%/%/%/%.518/%.1">
-      <details key="start" value="26338"/>
-      <details key="end" value="26339"/>
+    <eAnnotations source="positions.1911" references="/0/testSequence/%/%/%/%/%/%/%/%.521/%.1">
+      <details key="start" value="26297"/>
+      <details key="end" value="26301"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1887" references="/0/testSequence/%/%/%/%/%/%/%/%.519">
-      <details key="start" value="26342"/>
-      <details key="end" value="26378"/>
-      <details key="line" value="382"/>
+    <eAnnotations source="positions.1912" references="/0/testSequence/%/%/%/%/%/%/%/%.522">
+      <details key="start" value="26304"/>
+      <details key="end" value="26345"/>
+      <details key="line" value="376"/>
     </eAnnotations>
-    <eAnnotations source="positions.1888" references="/0/testSequence/%/%/%/%/%/%/%/%.520">
-      <details key="start" value="26379"/>
-      <details key="end" value="26404"/>
+    <eAnnotations source="positions.1913" references="/0/testSequence/%/%/%/%/%/%/%/%.523">
+      <details key="start" value="26346"/>
+      <details key="end" value="26373"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1889" references="/0/testSequence/%/%/%/%/%/%/%/%.520/reals">
-      <details key="start" value="26379"/>
-      <details key="end" value="26384"/>
+    <eAnnotations source="positions.1914" references="/0/testSequence/%/%/%/%/%/%/%/%.523/strings">
+      <details key="start" value="26346"/>
+      <details key="end" value="26353"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1890" references="/0/testSequence/%/%/%/%/%/%/%/%.520/%">
-      <details key="start" value="26400"/>
-      <details key="end" value="26401"/>
+    <eAnnotations source="positions.1915" references="/0/testSequence/%/%/%/%/%/%/%/%.523/%">
+      <details key="start" value="26369"/>
+      <details key="end" value="26370"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1891" references="/0/testSequence/%/%/%/%/%/%/%/%.520/%.1">
-      <details key="start" value="26402"/>
-      <details key="end" value="26403"/>
+    <eAnnotations source="positions.1916" references="/0/testSequence/%/%/%/%/%/%/%/%.523/%.1">
+      <details key="start" value="26371"/>
+      <details key="end" value="26372"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1892" references="/0/testSequence/%/%/%/%/%/%/%/%.521">
-      <details key="start" value="26406"/>
-      <details key="end" value="26445"/>
-      <details key="line" value="383"/>
+    <eAnnotations source="positions.1917" references="/0/testSequence/%/%/%/%/%/%/%/%.524">
+      <details key="start" value="26375"/>
+      <details key="end" value="26414"/>
+      <details key="line" value="378"/>
     </eAnnotations>
-    <eAnnotations source="positions.1893" references="/0/testSequence/%/%/%/%/%/%/%/%.522">
-      <details key="start" value="26446"/>
-      <details key="end" value="26474"/>
+    <eAnnotations source="positions.1918" references="/0/testSequence/%/%/%/%/%/%/%/%.525">
+      <details key="start" value="26415"/>
+      <details key="end" value="26443"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1894" references="/0/testSequence/%/%/%/%/%/%/%/%.522/booleans">
-      <details key="start" value="26446"/>
-      <details key="end" value="26454"/>
+    <eAnnotations source="positions.1919" references="/0/testSequence/%/%/%/%/%/%/%/%.525/integers">
+      <details key="start" value="26415"/>
+      <details key="end" value="26423"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1895" references="/0/testSequence/%/%/%/%/%/%/%/%.522/%">
-      <details key="start" value="26470"/>
-      <details key="end" value="26471"/>
+    <eAnnotations source="positions.1920" references="/0/testSequence/%/%/%/%/%/%/%/%.525/%">
+      <details key="start" value="26439"/>
+      <details key="end" value="26440"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1896" references="/0/testSequence/%/%/%/%/%/%/%/%.522/%.1">
-      <details key="start" value="26472"/>
-      <details key="end" value="26473"/>
+    <eAnnotations source="positions.1921" references="/0/testSequence/%/%/%/%/%/%/%/%.525/%.1">
+      <details key="start" value="26441"/>
+      <details key="end" value="26442"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1897" references="/0/testSequence/%/%/%/%/%/%/%/%.523">
-      <details key="start" value="26476"/>
-      <details key="end" value="26532"/>
-      <details key="line" value="384"/>
+    <eAnnotations source="positions.1922" references="/0/testSequence/%/%/%/%/%/%/%/%.526">
+      <details key="start" value="26445"/>
+      <details key="end" value="26481"/>
+      <details key="line" value="379"/>
     </eAnnotations>
-    <eAnnotations source="positions.1898" references="/0/testSequence/%/%/%/%/%/%/%/collect.45">
-      <details key="start" value="26533"/>
-      <details key="end" value="26578"/>
+    <eAnnotations source="positions.1923" references="/0/testSequence/%/%/%/%/%/%/%/%.527">
+      <details key="start" value="26482"/>
+      <details key="end" value="26507"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1899" references="/0/testSequence/%/%/%/%/%/%/%/collect.45/%">
-      <details key="start" value="26533"/>
-      <details key="end" value="26561"/>
+    <eAnnotations source="positions.1924" references="/0/testSequence/%/%/%/%/%/%/%/%.527/reals">
+      <details key="start" value="26482"/>
+      <details key="end" value="26487"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1900" references="/0/testSequence/%/%/%/%/%/%/%/collect.45/%/eClasses">
-      <details key="start" value="26533"/>
-      <details key="end" value="26541"/>
+    <eAnnotations source="positions.1925" references="/0/testSequence/%/%/%/%/%/%/%/%.527/%">
+      <details key="start" value="26503"/>
+      <details key="end" value="26504"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1901" references="/0/testSequence/%/%/%/%/%/%/%/collect.45/%/%">
-      <details key="start" value="26557"/>
-      <details key="end" value="26558"/>
+    <eAnnotations source="positions.1926" references="/0/testSequence/%/%/%/%/%/%/%/%.527/%.1">
+      <details key="start" value="26505"/>
+      <details key="end" value="26506"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1902" references="/0/testSequence/%/%/%/%/%/%/%/collect.45/%/%.1">
-      <details key="start" value="26559"/>
-      <details key="end" value="26560"/>
-      <details key="line" value="0"/>
+    <eAnnotations source="positions.1927" references="/0/testSequence/%/%/%/%/%/%/%/%.528">
+      <details key="start" value="26509"/>
+      <details key="end" value="26548"/>
+      <details key="line" value="380"/>
     </eAnnotations>
-    <eAnnotations source="positions.1903" references="/0/testSequence/%/%/%/%/%/%/%/collect.45/%.1">
-      <details key="start" value="26573"/>
+    <eAnnotations source="positions.1928" references="/0/testSequence/%/%/%/%/%/%/%/%.529">
+      <details key="start" value="26549"/>
       <details key="end" value="26577"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1904" references="/0/testSequence/%/%/%/%/%/%/%/collect.45/%.1/temp1">
+    <eAnnotations source="positions.1929" references="/0/testSequence/%/%/%/%/%/%/%/%.529/booleans">
+      <details key="start" value="26549"/>
+      <details key="end" value="26557"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1930" references="/0/testSequence/%/%/%/%/%/%/%/%.529/%">
+      <details key="start" value="26573"/>
+      <details key="end" value="26574"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1931" references="/0/testSequence/%/%/%/%/%/%/%/%.529/%.1">
+      <details key="start" value="26575"/>
+      <details key="end" value="26576"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1932" references="/0/testSequence/%/%/%/%/%/%/%/%.530">
+      <details key="start" value="26579"/>
+      <details key="end" value="26635"/>
+      <details key="line" value="381"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1933" references="/0/testSequence/%/%/%/%/%/%/%/collect.45">
+      <details key="start" value="26636"/>
+      <details key="end" value="26681"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1934" references="/0/testSequence/%/%/%/%/%/%/%/collect.45/%">
+      <details key="start" value="26636"/>
+      <details key="end" value="26664"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1935" references="/0/testSequence/%/%/%/%/%/%/%/collect.45/%/eClasses">
+      <details key="start" value="26636"/>
+      <details key="end" value="26644"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1936" references="/0/testSequence/%/%/%/%/%/%/%/collect.45/%/%">
+      <details key="start" value="26660"/>
+      <details key="end" value="26661"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1937" references="/0/testSequence/%/%/%/%/%/%/%/collect.45/%/%.1">
+      <details key="start" value="26662"/>
+      <details key="end" value="26663"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1938" references="/0/testSequence/%/%/%/%/%/%/%/collect.45/%.1">
+      <details key="start" value="26676"/>
+      <details key="end" value="26680"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1939" references="/0/testSequence/%/%/%/%/%/%/%/collect.45/%.1/temp1">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1905" references="/0/testSequence/%/%/%/%/%/%/%/collect.45/temp59">
+    <eAnnotations source="positions.1940" references="/0/testSequence/%/%/%/%/%/%/%/collect.45/temp59">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1906" references="/0/testSequence/%/%/%/%/%/%/%/%.524">
-      <details key="start" value="26580"/>
-      <details key="end" value="26622"/>
-      <details key="line" value="385"/>
+    <eAnnotations source="positions.1941" references="/0/testSequence/%/%/%/%/%/%/%/%.531">
+      <details key="start" value="26683"/>
+      <details key="end" value="26725"/>
+      <details key="line" value="382"/>
     </eAnnotations>
-    <eAnnotations source="positions.1907" references="/0/testSequence/%/%/%/%/%/%/%/%.525">
-      <details key="start" value="26623"/>
-      <details key="end" value="26654"/>
+    <eAnnotations source="positions.1942" references="/0/testSequence/%/%/%/%/%/%/%/%.532">
+      <details key="start" value="26726"/>
+      <details key="end" value="26757"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1908" references="/0/testSequence/%/%/%/%/%/%/%/%.525/collections">
-      <details key="start" value="26623"/>
-      <details key="end" value="26634"/>
+    <eAnnotations source="positions.1943" references="/0/testSequence/%/%/%/%/%/%/%/%.532/collections">
+      <details key="start" value="26726"/>
+      <details key="end" value="26737"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1909" references="/0/testSequence/%/%/%/%/%/%/%/%.525/%">
-      <details key="start" value="26650"/>
-      <details key="end" value="26651"/>
+    <eAnnotations source="positions.1944" references="/0/testSequence/%/%/%/%/%/%/%/%.532/%">
+      <details key="start" value="26753"/>
+      <details key="end" value="26754"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1910" references="/0/testSequence/%/%/%/%/%/%/%/%.525/%.1">
-      <details key="start" value="26652"/>
-      <details key="end" value="26653"/>
+    <eAnnotations source="positions.1945" references="/0/testSequence/%/%/%/%/%/%/%/%.532/%.1">
+      <details key="start" value="26755"/>
+      <details key="end" value="26756"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1911" references="/0/testSequence/%/%/%/%/%/%/%/%.526">
-      <details key="start" value="26656"/>
-      <details key="end" value="26657"/>
-      <details key="line" value="386"/>
+    <eAnnotations source="positions.1946" references="/0/testSequence/%/%/%/%/%/%/%/%.533">
+      <details key="start" value="26759"/>
+      <details key="end" value="26760"/>
+      <details key="line" value="383"/>
     </eAnnotations>
-    <eAnnotations source="positions.1912" references="/0/testSequence/%/%/%/%/%/%/%/%.527">
-      <details key="start" value="27048"/>
-      <details key="end" value="27098"/>
+    <eAnnotations source="positions.1947" references="/0/testSequence/%/%/%/%/%/%/%/%.534">
+      <details key="start" value="27151"/>
+      <details key="end" value="27201"/>
+      <details key="line" value="392"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1948" references="/0/testSequence/%/%/%/%/%/%/%/%.535">
+      <details key="start" value="27202"/>
+      <details key="end" value="27242"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1949" references="/0/testSequence/%/%/%/%/%/%/%/%.535/integers">
+      <details key="start" value="27202"/>
+      <details key="end" value="27210"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1950" references="/0/testSequence/%/%/%/%/%/%/%/%.535/%">
+      <details key="start" value="27225"/>
+      <details key="end" value="27241"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1951" references="/0/testSequence/%/%/%/%/%/%/%/%.535/%/%/%">
+      <details key="start" value="27236"/>
+      <details key="end" value="27237"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1952" references="/0/testSequence/%/%/%/%/%/%/%/%.535/%/%.1/%">
+      <details key="start" value="27239"/>
+      <details key="end" value="27240"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1953" references="/0/testSequence/%/%/%/%/%/%/%/%.536">
+      <details key="start" value="27244"/>
+      <details key="end" value="27295"/>
+      <details key="line" value="393"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1954" references="/0/testSequence/%/%/%/%/%/%/%/%.537">
+      <details key="start" value="27296"/>
+      <details key="end" value="27336"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1955" references="/0/testSequence/%/%/%/%/%/%/%/%.537/integers">
+      <details key="start" value="27296"/>
+      <details key="end" value="27304"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1956" references="/0/testSequence/%/%/%/%/%/%/%/%.537/%">
+      <details key="start" value="27319"/>
+      <details key="end" value="27335"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1957" references="/0/testSequence/%/%/%/%/%/%/%/%.537/%/%/%">
+      <details key="start" value="27330"/>
+      <details key="end" value="27331"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1958" references="/0/testSequence/%/%/%/%/%/%/%/%.537/%/%.1/%">
+      <details key="start" value="27333"/>
+      <details key="end" value="27334"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1959" references="/0/testSequence/%/%/%/%/%/%/%/%.538">
+      <details key="start" value="27338"/>
+      <details key="end" value="27389"/>
+      <details key="line" value="394"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1960" references="/0/testSequence/%/%/%/%/%/%/%/%.539">
+      <details key="start" value="27390"/>
+      <details key="end" value="27430"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1961" references="/0/testSequence/%/%/%/%/%/%/%/%.539/integers">
+      <details key="start" value="27390"/>
+      <details key="end" value="27398"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1962" references="/0/testSequence/%/%/%/%/%/%/%/%.539/%">
+      <details key="start" value="27413"/>
+      <details key="end" value="27429"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1963" references="/0/testSequence/%/%/%/%/%/%/%/%.539/%/%/%">
+      <details key="start" value="27424"/>
+      <details key="end" value="27425"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1964" references="/0/testSequence/%/%/%/%/%/%/%/%.539/%/%.1/%">
+      <details key="start" value="27427"/>
+      <details key="end" value="27428"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1965" references="/0/testSequence/%/%/%/%/%/%/%/%.540">
+      <details key="start" value="27432"/>
+      <details key="end" value="27483"/>
       <details key="line" value="395"/>
     </eAnnotations>
-    <eAnnotations source="positions.1913" references="/0/testSequence/%/%/%/%/%/%/%/%.528">
-      <details key="start" value="27099"/>
-      <details key="end" value="27139"/>
+    <eAnnotations source="positions.1966" references="/0/testSequence/%/%/%/%/%/%/%/%.541">
+      <details key="start" value="27484"/>
+      <details key="end" value="27524"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1914" references="/0/testSequence/%/%/%/%/%/%/%/%.528/integers">
-      <details key="start" value="27099"/>
-      <details key="end" value="27107"/>
+    <eAnnotations source="positions.1967" references="/0/testSequence/%/%/%/%/%/%/%/%.541/integers">
+      <details key="start" value="27484"/>
+      <details key="end" value="27492"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1915" references="/0/testSequence/%/%/%/%/%/%/%/%.528/%">
-      <details key="start" value="27122"/>
-      <details key="end" value="27138"/>
+    <eAnnotations source="positions.1968" references="/0/testSequence/%/%/%/%/%/%/%/%.541/%">
+      <details key="start" value="27507"/>
+      <details key="end" value="27523"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1916" references="/0/testSequence/%/%/%/%/%/%/%/%.528/%/%/%">
-      <details key="start" value="27133"/>
-      <details key="end" value="27134"/>
+    <eAnnotations source="positions.1969" references="/0/testSequence/%/%/%/%/%/%/%/%.541/%/%/%">
+      <details key="start" value="27518"/>
+      <details key="end" value="27519"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1917" references="/0/testSequence/%/%/%/%/%/%/%/%.528/%/%.1/%">
-      <details key="start" value="27136"/>
-      <details key="end" value="27137"/>
+    <eAnnotations source="positions.1970" references="/0/testSequence/%/%/%/%/%/%/%/%.541/%/%.1/%">
+      <details key="start" value="27521"/>
+      <details key="end" value="27522"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1918" references="/0/testSequence/%/%/%/%/%/%/%/%.529">
-      <details key="start" value="27141"/>
-      <details key="end" value="27192"/>
+    <eAnnotations source="positions.1971" references="/0/testSequence/%/%/%/%/%/%/%/%.542">
+      <details key="start" value="27526"/>
+      <details key="end" value="27527"/>
       <details key="line" value="396"/>
     </eAnnotations>
-    <eAnnotations source="positions.1919" references="/0/testSequence/%/%/%/%/%/%/%/%.530">
-      <details key="start" value="27193"/>
-      <details key="end" value="27233"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1920" references="/0/testSequence/%/%/%/%/%/%/%/%.530/integers">
-      <details key="start" value="27193"/>
-      <details key="end" value="27201"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1921" references="/0/testSequence/%/%/%/%/%/%/%/%.530/%">
-      <details key="start" value="27216"/>
-      <details key="end" value="27232"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1922" references="/0/testSequence/%/%/%/%/%/%/%/%.530/%/%/%">
-      <details key="start" value="27227"/>
-      <details key="end" value="27228"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1923" references="/0/testSequence/%/%/%/%/%/%/%/%.530/%/%.1/%">
-      <details key="start" value="27230"/>
-      <details key="end" value="27231"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1924" references="/0/testSequence/%/%/%/%/%/%/%/%.531">
-      <details key="start" value="27235"/>
-      <details key="end" value="27286"/>
+    <eAnnotations source="positions.1972" references="/0/testSequence/%/%/%/%/%/%/%/%.543">
+      <details key="start" value="27574"/>
+      <details key="end" value="27622"/>
       <details key="line" value="397"/>
     </eAnnotations>
-    <eAnnotations source="positions.1925" references="/0/testSequence/%/%/%/%/%/%/%/%.532">
-      <details key="start" value="27287"/>
-      <details key="end" value="27327"/>
+    <eAnnotations source="positions.1973" references="/0/testSequence/%/%/%/%/%/%/%/%.544">
+      <details key="start" value="27623"/>
+      <details key="end" value="27661"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1926" references="/0/testSequence/%/%/%/%/%/%/%/%.532/integers">
-      <details key="start" value="27287"/>
-      <details key="end" value="27295"/>
+    <eAnnotations source="positions.1974" references="/0/testSequence/%/%/%/%/%/%/%/%.544/integers">
+      <details key="start" value="27623"/>
+      <details key="end" value="27631"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1927" references="/0/testSequence/%/%/%/%/%/%/%/%.532/%">
-      <details key="start" value="27310"/>
-      <details key="end" value="27326"/>
+    <eAnnotations source="positions.1975" references="/0/testSequence/%/%/%/%/%/%/%/%.544/%">
+      <details key="start" value="27644"/>
+      <details key="end" value="27660"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1928" references="/0/testSequence/%/%/%/%/%/%/%/%.532/%/%/%">
-      <details key="start" value="27321"/>
-      <details key="end" value="27322"/>
+    <eAnnotations source="positions.1976" references="/0/testSequence/%/%/%/%/%/%/%/%.544/%/%/%">
+      <details key="start" value="27655"/>
+      <details key="end" value="27656"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1929" references="/0/testSequence/%/%/%/%/%/%/%/%.532/%/%.1/%">
-      <details key="start" value="27324"/>
-      <details key="end" value="27325"/>
+    <eAnnotations source="positions.1977" references="/0/testSequence/%/%/%/%/%/%/%/%.544/%/%.1/%">
+      <details key="start" value="27658"/>
+      <details key="end" value="27659"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1930" references="/0/testSequence/%/%/%/%/%/%/%/%.533">
-      <details key="start" value="27329"/>
-      <details key="end" value="27380"/>
+    <eAnnotations source="positions.1978" references="/0/testSequence/%/%/%/%/%/%/%/%.545">
+      <details key="start" value="27663"/>
+      <details key="end" value="27712"/>
       <details key="line" value="398"/>
     </eAnnotations>
-    <eAnnotations source="positions.1931" references="/0/testSequence/%/%/%/%/%/%/%/%.534">
-      <details key="start" value="27381"/>
-      <details key="end" value="27421"/>
+    <eAnnotations source="positions.1979" references="/0/testSequence/%/%/%/%/%/%/%/%.546">
+      <details key="start" value="27713"/>
+      <details key="end" value="27751"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1932" references="/0/testSequence/%/%/%/%/%/%/%/%.534/integers">
-      <details key="start" value="27381"/>
-      <details key="end" value="27389"/>
+    <eAnnotations source="positions.1980" references="/0/testSequence/%/%/%/%/%/%/%/%.546/integers">
+      <details key="start" value="27713"/>
+      <details key="end" value="27721"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1933" references="/0/testSequence/%/%/%/%/%/%/%/%.534/%">
-      <details key="start" value="27404"/>
-      <details key="end" value="27420"/>
+    <eAnnotations source="positions.1981" references="/0/testSequence/%/%/%/%/%/%/%/%.546/%">
+      <details key="start" value="27734"/>
+      <details key="end" value="27750"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1934" references="/0/testSequence/%/%/%/%/%/%/%/%.534/%/%/%">
-      <details key="start" value="27415"/>
-      <details key="end" value="27416"/>
+    <eAnnotations source="positions.1982" references="/0/testSequence/%/%/%/%/%/%/%/%.546/%/%/%">
+      <details key="start" value="27745"/>
+      <details key="end" value="27746"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1935" references="/0/testSequence/%/%/%/%/%/%/%/%.534/%/%.1/%">
-      <details key="start" value="27418"/>
-      <details key="end" value="27419"/>
+    <eAnnotations source="positions.1983" references="/0/testSequence/%/%/%/%/%/%/%/%.546/%/%.1/%">
+      <details key="start" value="27748"/>
+      <details key="end" value="27749"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1936" references="/0/testSequence/%/%/%/%/%/%/%/%.535">
-      <details key="start" value="27423"/>
-      <details key="end" value="27424"/>
+    <eAnnotations source="positions.1984" references="/0/testSequence/%/%/%/%/%/%/%/%.547">
+      <details key="start" value="27753"/>
+      <details key="end" value="27802"/>
       <details key="line" value="399"/>
     </eAnnotations>
-    <eAnnotations source="positions.1937" references="/0/testSequence/%/%/%/%/%/%/%/%.536">
-      <details key="start" value="27471"/>
-      <details key="end" value="27519"/>
+    <eAnnotations source="positions.1985" references="/0/testSequence/%/%/%/%/%/%/%/%.548">
+      <details key="start" value="27803"/>
+      <details key="end" value="27841"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1986" references="/0/testSequence/%/%/%/%/%/%/%/%.548/integers">
+      <details key="start" value="27803"/>
+      <details key="end" value="27811"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1987" references="/0/testSequence/%/%/%/%/%/%/%/%.548/%">
+      <details key="start" value="27824"/>
+      <details key="end" value="27840"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1988" references="/0/testSequence/%/%/%/%/%/%/%/%.548/%/%/%">
+      <details key="start" value="27835"/>
+      <details key="end" value="27836"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1989" references="/0/testSequence/%/%/%/%/%/%/%/%.548/%/%.1/%">
+      <details key="start" value="27838"/>
+      <details key="end" value="27839"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1990" references="/0/testSequence/%/%/%/%/%/%/%/%.549">
+      <details key="start" value="27843"/>
+      <details key="end" value="27892"/>
       <details key="line" value="400"/>
     </eAnnotations>
-    <eAnnotations source="positions.1938" references="/0/testSequence/%/%/%/%/%/%/%/%.537">
-      <details key="start" value="27520"/>
-      <details key="end" value="27558"/>
+    <eAnnotations source="positions.1991" references="/0/testSequence/%/%/%/%/%/%/%/%.550">
+      <details key="start" value="27893"/>
+      <details key="end" value="27931"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1939" references="/0/testSequence/%/%/%/%/%/%/%/%.537/integers">
-      <details key="start" value="27520"/>
-      <details key="end" value="27528"/>
+    <eAnnotations source="positions.1992" references="/0/testSequence/%/%/%/%/%/%/%/%.550/integers">
+      <details key="start" value="27893"/>
+      <details key="end" value="27901"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1940" references="/0/testSequence/%/%/%/%/%/%/%/%.537/%">
-      <details key="start" value="27541"/>
-      <details key="end" value="27557"/>
+    <eAnnotations source="positions.1993" references="/0/testSequence/%/%/%/%/%/%/%/%.550/%">
+      <details key="start" value="27914"/>
+      <details key="end" value="27930"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1941" references="/0/testSequence/%/%/%/%/%/%/%/%.537/%/%/%">
-      <details key="start" value="27552"/>
-      <details key="end" value="27553"/>
+    <eAnnotations source="positions.1994" references="/0/testSequence/%/%/%/%/%/%/%/%.550/%/%/%">
+      <details key="start" value="27925"/>
+      <details key="end" value="27926"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1942" references="/0/testSequence/%/%/%/%/%/%/%/%.537/%/%.1/%">
-      <details key="start" value="27555"/>
-      <details key="end" value="27556"/>
+    <eAnnotations source="positions.1995" references="/0/testSequence/%/%/%/%/%/%/%/%.550/%/%.1/%">
+      <details key="start" value="27928"/>
+      <details key="end" value="27929"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1943" references="/0/testSequence/%/%/%/%/%/%/%/%.538">
-      <details key="start" value="27560"/>
-      <details key="end" value="27609"/>
+    <eAnnotations source="positions.1996" references="/0/testSequence/%/%/%/%/%/%/%/%.551">
+      <details key="start" value="27933"/>
+      <details key="end" value="27934"/>
       <details key="line" value="401"/>
     </eAnnotations>
-    <eAnnotations source="positions.1944" references="/0/testSequence/%/%/%/%/%/%/%/%.539">
-      <details key="start" value="27610"/>
-      <details key="end" value="27648"/>
+    <eAnnotations source="positions.1997" references="/0/testSequence/%/%/%/%/%/%/%/%.552">
+      <details key="start" value="28114"/>
+      <details key="end" value="28142"/>
+      <details key="line" value="405"/>
+    </eAnnotations>
+    <eAnnotations source="positions.1998" references="/0/testSequence/%/%/%/%/%/%/%/collect.46">
+      <details key="start" value="28143"/>
+      <details key="end" value="28161"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1945" references="/0/testSequence/%/%/%/%/%/%/%/%.539/integers">
-      <details key="start" value="27610"/>
-      <details key="end" value="27618"/>
+    <eAnnotations source="positions.1999" references="/0/testSequence/%/%/%/%/%/%/%/collect.46/strings">
+      <details key="start" value="28143"/>
+      <details key="end" value="28150"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1946" references="/0/testSequence/%/%/%/%/%/%/%/%.539/%">
-      <details key="start" value="27631"/>
-      <details key="end" value="27647"/>
+    <eAnnotations source="positions.2000" references="/0/testSequence/%/%/%/%/%/%/%/collect.46/%">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1947" references="/0/testSequence/%/%/%/%/%/%/%/%.539/%/%/%">
-      <details key="start" value="27642"/>
-      <details key="end" value="27643"/>
+    <eAnnotations source="positions.2001" references="/0/testSequence/%/%/%/%/%/%/%/collect.46/%/temp1">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1948" references="/0/testSequence/%/%/%/%/%/%/%/%.539/%/%.1/%">
-      <details key="start" value="27645"/>
-      <details key="end" value="27646"/>
+    <eAnnotations source="positions.2002" references="/0/testSequence/%/%/%/%/%/%/%/collect.46/temp60">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1949" references="/0/testSequence/%/%/%/%/%/%/%/%.540">
-      <details key="start" value="27650"/>
-      <details key="end" value="27699"/>
-      <details key="line" value="402"/>
+    <eAnnotations source="positions.2003" references="/0/testSequence/%/%/%/%/%/%/%/%.553">
+      <details key="start" value="28163"/>
+      <details key="end" value="28193"/>
+      <details key="line" value="406"/>
     </eAnnotations>
-    <eAnnotations source="positions.1950" references="/0/testSequence/%/%/%/%/%/%/%/%.541">
-      <details key="start" value="27700"/>
-      <details key="end" value="27738"/>
+    <eAnnotations source="positions.2004" references="/0/testSequence/%/%/%/%/%/%/%/collect.47">
+      <details key="start" value="28194"/>
+      <details key="end" value="28213"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1951" references="/0/testSequence/%/%/%/%/%/%/%/%.541/integers">
-      <details key="start" value="27700"/>
-      <details key="end" value="27708"/>
+    <eAnnotations source="positions.2005" references="/0/testSequence/%/%/%/%/%/%/%/collect.47/integers">
+      <details key="start" value="28194"/>
+      <details key="end" value="28202"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1952" references="/0/testSequence/%/%/%/%/%/%/%/%.541/%">
-      <details key="start" value="27721"/>
-      <details key="end" value="27737"/>
+    <eAnnotations source="positions.2006" references="/0/testSequence/%/%/%/%/%/%/%/collect.47/%">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1953" references="/0/testSequence/%/%/%/%/%/%/%/%.541/%/%/%">
-      <details key="start" value="27732"/>
-      <details key="end" value="27733"/>
+    <eAnnotations source="positions.2007" references="/0/testSequence/%/%/%/%/%/%/%/collect.47/%/temp1">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1954" references="/0/testSequence/%/%/%/%/%/%/%/%.541/%/%.1/%">
-      <details key="start" value="27735"/>
-      <details key="end" value="27736"/>
+    <eAnnotations source="positions.2008" references="/0/testSequence/%/%/%/%/%/%/%/collect.47/temp61">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1955" references="/0/testSequence/%/%/%/%/%/%/%/%.542">
-      <details key="start" value="27740"/>
-      <details key="end" value="27789"/>
-      <details key="line" value="403"/>
+    <eAnnotations source="positions.2009" references="/0/testSequence/%/%/%/%/%/%/%/%.554">
+      <details key="start" value="28215"/>
+      <details key="end" value="28242"/>
+      <details key="line" value="407"/>
     </eAnnotations>
-    <eAnnotations source="positions.1956" references="/0/testSequence/%/%/%/%/%/%/%/%.543">
-      <details key="start" value="27790"/>
-      <details key="end" value="27828"/>
+    <eAnnotations source="positions.2010" references="/0/testSequence/%/%/%/%/%/%/%/collect.48">
+      <details key="start" value="28243"/>
+      <details key="end" value="28259"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1957" references="/0/testSequence/%/%/%/%/%/%/%/%.543/integers">
-      <details key="start" value="27790"/>
-      <details key="end" value="27798"/>
+    <eAnnotations source="positions.2011" references="/0/testSequence/%/%/%/%/%/%/%/collect.48/reals">
+      <details key="start" value="28243"/>
+      <details key="end" value="28248"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1958" references="/0/testSequence/%/%/%/%/%/%/%/%.543/%">
-      <details key="start" value="27811"/>
-      <details key="end" value="27827"/>
+    <eAnnotations source="positions.2012" references="/0/testSequence/%/%/%/%/%/%/%/collect.48/%">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1959" references="/0/testSequence/%/%/%/%/%/%/%/%.543/%/%/%">
-      <details key="start" value="27822"/>
-      <details key="end" value="27823"/>
+    <eAnnotations source="positions.2013" references="/0/testSequence/%/%/%/%/%/%/%/collect.48/%/temp1">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1960" references="/0/testSequence/%/%/%/%/%/%/%/%.543/%/%.1/%">
-      <details key="start" value="27825"/>
-      <details key="end" value="27826"/>
+    <eAnnotations source="positions.2014" references="/0/testSequence/%/%/%/%/%/%/%/collect.48/temp62">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1961" references="/0/testSequence/%/%/%/%/%/%/%/%.544">
-      <details key="start" value="27830"/>
-      <details key="end" value="27831"/>
-      <details key="line" value="404"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1962" references="/0/testSequence/%/%/%/%/%/%/%/%.545">
-      <details key="start" value="28011"/>
-      <details key="end" value="28039"/>
+    <eAnnotations source="positions.2015" references="/0/testSequence/%/%/%/%/%/%/%/%.555">
+      <details key="start" value="28261"/>
+      <details key="end" value="28291"/>
       <details key="line" value="408"/>
     </eAnnotations>
-    <eAnnotations source="positions.1963" references="/0/testSequence/%/%/%/%/%/%/%/collect.46">
-      <details key="start" value="28040"/>
-      <details key="end" value="28058"/>
+    <eAnnotations source="positions.2016" references="/0/testSequence/%/%/%/%/%/%/%/collect.49">
+      <details key="start" value="28292"/>
+      <details key="end" value="28311"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1964" references="/0/testSequence/%/%/%/%/%/%/%/collect.46/strings">
-      <details key="start" value="28040"/>
-      <details key="end" value="28047"/>
+    <eAnnotations source="positions.2017" references="/0/testSequence/%/%/%/%/%/%/%/collect.49/booleans">
+      <details key="start" value="28292"/>
+      <details key="end" value="28300"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1965" references="/0/testSequence/%/%/%/%/%/%/%/collect.46/%">
+    <eAnnotations source="positions.2018" references="/0/testSequence/%/%/%/%/%/%/%/collect.49/%">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1966" references="/0/testSequence/%/%/%/%/%/%/%/collect.46/%/temp1">
+    <eAnnotations source="positions.2019" references="/0/testSequence/%/%/%/%/%/%/%/collect.49/%/temp1">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1967" references="/0/testSequence/%/%/%/%/%/%/%/collect.46/temp60">
+    <eAnnotations source="positions.2020" references="/0/testSequence/%/%/%/%/%/%/%/collect.49/temp63">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1968" references="/0/testSequence/%/%/%/%/%/%/%/%.546">
-      <details key="start" value="28060"/>
-      <details key="end" value="28090"/>
+    <eAnnotations source="positions.2021" references="/0/testSequence/%/%/%/%/%/%/%/%.556">
+      <details key="start" value="28313"/>
+      <details key="end" value="28360"/>
       <details key="line" value="409"/>
     </eAnnotations>
-    <eAnnotations source="positions.1969" references="/0/testSequence/%/%/%/%/%/%/%/collect.47">
-      <details key="start" value="28091"/>
-      <details key="end" value="28110"/>
+    <eAnnotations source="positions.2022" references="/0/testSequence/%/%/%/%/%/%/%/collect.50">
+      <details key="start" value="28361"/>
+      <details key="end" value="28397"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1970" references="/0/testSequence/%/%/%/%/%/%/%/collect.47/integers">
-      <details key="start" value="28091"/>
-      <details key="end" value="28099"/>
+    <eAnnotations source="positions.2023" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/collect">
+      <details key="start" value="28361"/>
+      <details key="end" value="28380"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1971" references="/0/testSequence/%/%/%/%/%/%/%/collect.47/%">
+    <eAnnotations source="positions.2024" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/collect/eClasses">
+      <details key="start" value="28361"/>
+      <details key="end" value="28369"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2025" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/collect/%">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1972" references="/0/testSequence/%/%/%/%/%/%/%/collect.47/%/temp1">
+    <eAnnotations source="positions.2026" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/collect/%/temp1">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1973" references="/0/testSequence/%/%/%/%/%/%/%/collect.47/temp61">
+    <eAnnotations source="positions.2027" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/collect/temp64">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1974" references="/0/testSequence/%/%/%/%/%/%/%/%.547">
-      <details key="start" value="28112"/>
-      <details key="end" value="28139"/>
+    <eAnnotations source="positions.2028" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/%">
+      <details key="start" value="28392"/>
+      <details key="end" value="28396"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2029" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/%/temp2">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2030" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/temp65">
+      <details key="start" value="-1"/>
+      <details key="end" value="-1"/>
+      <details key="line" value="0"/>
+    </eAnnotations>
+    <eAnnotations source="positions.2031" references="/0/testSequence/%/%/%/%/%/%/%/%.557">
+      <details key="start" value="28399"/>
+      <details key="end" value="28432"/>
       <details key="line" value="410"/>
     </eAnnotations>
-    <eAnnotations source="positions.1975" references="/0/testSequence/%/%/%/%/%/%/%/collect.48">
-      <details key="start" value="28140"/>
-      <details key="end" value="28156"/>
+    <eAnnotations source="positions.2032" references="/0/testSequence/%/%/%/%/%/%/%/collect.51">
+      <details key="start" value="28433"/>
+      <details key="end" value="28455"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1976" references="/0/testSequence/%/%/%/%/%/%/%/collect.48/reals">
-      <details key="start" value="28140"/>
-      <details key="end" value="28145"/>
+    <eAnnotations source="positions.2033" references="/0/testSequence/%/%/%/%/%/%/%/collect.51/collections">
+      <details key="start" value="28433"/>
+      <details key="end" value="28444"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1977" references="/0/testSequence/%/%/%/%/%/%/%/collect.48/%">
+    <eAnnotations source="positions.2034" references="/0/testSequence/%/%/%/%/%/%/%/collect.51/%">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1978" references="/0/testSequence/%/%/%/%/%/%/%/collect.48/%/temp1">
+    <eAnnotations source="positions.2035" references="/0/testSequence/%/%/%/%/%/%/%/collect.51/%/temp1">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1979" references="/0/testSequence/%/%/%/%/%/%/%/collect.48/temp62">
+    <eAnnotations source="positions.2036" references="/0/testSequence/%/%/%/%/%/%/%/collect.51/temp66">
       <details key="start" value="-1"/>
       <details key="end" value="-1"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.1980" references="/0/testSequence/%/%/%/%/%/%/%/%.548">
-      <details key="start" value="28158"/>
-      <details key="end" value="28188"/>
+    <eAnnotations source="positions.2037" references="/0/testSequence/%/%/%/%/%/%/%/%.558">
+      <details key="start" value="28457"/>
+      <details key="end" value="28458"/>
       <details key="line" value="411"/>
     </eAnnotations>
-    <eAnnotations source="positions.1981" references="/0/testSequence/%/%/%/%/%/%/%/collect.49">
-      <details key="start" value="28189"/>
-      <details key="end" value="28208"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1982" references="/0/testSequence/%/%/%/%/%/%/%/collect.49/booleans">
-      <details key="start" value="28189"/>
-      <details key="end" value="28197"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1983" references="/0/testSequence/%/%/%/%/%/%/%/collect.49/%">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1984" references="/0/testSequence/%/%/%/%/%/%/%/collect.49/%/temp1">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1985" references="/0/testSequence/%/%/%/%/%/%/%/collect.49/temp63">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1986" references="/0/testSequence/%/%/%/%/%/%/%/%.549">
-      <details key="start" value="28210"/>
-      <details key="end" value="28257"/>
-      <details key="line" value="412"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1987" references="/0/testSequence/%/%/%/%/%/%/%/collect.50">
-      <details key="start" value="28258"/>
-      <details key="end" value="28294"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1988" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/collect">
-      <details key="start" value="28258"/>
-      <details key="end" value="28277"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1989" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/collect/eClasses">
-      <details key="start" value="28258"/>
-      <details key="end" value="28266"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1990" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/collect/%">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1991" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/collect/%/temp1">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1992" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/collect/temp64">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1993" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/%">
-      <details key="start" value="28289"/>
-      <details key="end" value="28293"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1994" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/%/temp2">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1995" references="/0/testSequence/%/%/%/%/%/%/%/collect.50/temp65">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1996" references="/0/testSequence/%/%/%/%/%/%/%/%.550">
-      <details key="start" value="28296"/>
-      <details key="end" value="28329"/>
-      <details key="line" value="413"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1997" references="/0/testSequence/%/%/%/%/%/%/%/collect.51">
-      <details key="start" value="28330"/>
-      <details key="end" value="28352"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1998" references="/0/testSequence/%/%/%/%/%/%/%/collect.51/collections">
-      <details key="start" value="28330"/>
-      <details key="end" value="28341"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.1999" references="/0/testSequence/%/%/%/%/%/%/%/collect.51/%">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2000" references="/0/testSequence/%/%/%/%/%/%/%/collect.51/%/temp1">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2001" references="/0/testSequence/%/%/%/%/%/%/%/collect.51/temp66">
-      <details key="start" value="-1"/>
-      <details key="end" value="-1"/>
-      <details key="line" value="0"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2002" references="/0/testSequence/%/%/%/%/%/%/%/%.551">
-      <details key="start" value="28354"/>
-      <details key="end" value="28355"/>
-      <details key="line" value="414"/>
-    </eAnnotations>
-    <eAnnotations source="positions.2003" references="/0/testSequence/%/%/%/%/%/%/%/collections">
+    <eAnnotations source="positions.2038" references="/0/testSequence/%/%/%/%/%/%/%/collections">
       <details key="start" value="540"/>
       <details key="end" value="630"/>
       <details key="line" value="12"/>
     </eAnnotations>
-    <eAnnotations source="positions.2004" references="/0/testSequence/%/%/%/%/%/%/%/collections/%">
+    <eAnnotations source="positions.2039" references="/0/testSequence/%/%/%/%/%/%/%/collections/%">
       <details key="start" value="584"/>
       <details key="end" value="631"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2005" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%/strings">
+    <eAnnotations source="positions.2040" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%/strings">
       <details key="start" value="593"/>
       <details key="end" value="600"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2006" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%">
+    <eAnnotations source="positions.2041" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%">
       <details key="start" value="601"/>
       <details key="end" value="622"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2007" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%/%/%">
+    <eAnnotations source="positions.2042" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%/%/%">
       <details key="start" value="610"/>
       <details key="end" value="613"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2008" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%/%.1/%">
+    <eAnnotations source="positions.2043" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%/%.1/%">
       <details key="start" value="614"/>
       <details key="end" value="617"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2009" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%/%.2/%">
+    <eAnnotations source="positions.2044" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.1/%/%.2/%">
       <details key="start" value="618"/>
       <details key="end" value="621"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2010" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.2/strings">
+    <eAnnotations source="positions.2045" references="/0/testSequence/%/%/%/%/%/%/%/collections/%/%.2/strings">
       <details key="start" value="623"/>
       <details key="end" value="630"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2011" references="/0/testSequence/%/%/%/%/%/%/eClasses">
+    <eAnnotations source="positions.2046" references="/0/testSequence/%/%/%/%/%/%/eClasses">
       <details key="start" value="475"/>
       <details key="end" value="533"/>
       <details key="line" value="11"/>
     </eAnnotations>
-    <eAnnotations source="positions.2012" references="/0/testSequence/%/%/%/%/%/%/eClasses/%">
+    <eAnnotations source="positions.2047" references="/0/testSequence/%/%/%/%/%/%/eClasses/%">
       <details key="start" value="506"/>
       <details key="end" value="534"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2013" references="/0/testSequence/%/%/%/%/%/%/eClasses/%/%">
+    <eAnnotations source="positions.2048" references="/0/testSequence/%/%/%/%/%/%/eClasses/%/%">
       <details key="start" value="506"/>
       <details key="end" value="520"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2014" references="/0/testSequence/%/%/%/%/%/%/eClasses/%/%/p">
+    <eAnnotations source="positions.2049" references="/0/testSequence/%/%/%/%/%/%/eClasses/%/%/p">
       <details key="start" value="506"/>
       <details key="end" value="507"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2015" references="/0/testSequence/%/%/%/%/%/booleans">
+    <eAnnotations source="positions.2050" references="/0/testSequence/%/%/%/%/%/booleans">
       <details key="start" value="410"/>
       <details key="end" value="468"/>
       <details key="line" value="10"/>
     </eAnnotations>
-    <eAnnotations source="positions.2016" references="/0/testSequence/%/%/%/%/%/booleans/%">
+    <eAnnotations source="positions.2051" references="/0/testSequence/%/%/%/%/%/booleans/%">
       <details key="start" value="442"/>
       <details key="end" value="469"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2017" references="/0/testSequence/%/%/%/%/%/booleans/%/%/%">
+    <eAnnotations source="positions.2052" references="/0/testSequence/%/%/%/%/%/booleans/%/%/%">
       <details key="start" value="451"/>
       <details key="end" value="455"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2018" references="/0/testSequence/%/%/%/%/%/booleans/%/%.1/%">
+    <eAnnotations source="positions.2053" references="/0/testSequence/%/%/%/%/%/booleans/%/%.1/%">
       <details key="start" value="457"/>
       <details key="end" value="462"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2019" references="/0/testSequence/%/%/%/%/%/booleans/%/%.2/%">
+    <eAnnotations source="positions.2054" references="/0/testSequence/%/%/%/%/%/booleans/%/%.2/%">
       <details key="start" value="464"/>
       <details key="end" value="468"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2020" references="/0/testSequence/%/%/%/%/reals">
+    <eAnnotations source="positions.2055" references="/0/testSequence/%/%/%/%/reals">
       <details key="start" value="357"/>
       <details key="end" value="403"/>
       <details key="line" value="9"/>
     </eAnnotations>
-    <eAnnotations source="positions.2021" references="/0/testSequence/%/%/%/%/reals/%">
+    <eAnnotations source="positions.2056" references="/0/testSequence/%/%/%/%/reals/%">
       <details key="start" value="383"/>
       <details key="end" value="404"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2022" references="/0/testSequence/%/%/%/%/reals/%/%/%">
+    <eAnnotations source="positions.2057" references="/0/testSequence/%/%/%/%/reals/%/%/%">
       <details key="start" value="392"/>
       <details key="end" value="395"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2023" references="/0/testSequence/%/%/%/%/reals/%/%.1/%">
+    <eAnnotations source="positions.2058" references="/0/testSequence/%/%/%/%/reals/%/%.1/%">
       <details key="start" value="396"/>
       <details key="end" value="399"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2024" references="/0/testSequence/%/%/%/%/reals/%/%.2/%">
+    <eAnnotations source="positions.2059" references="/0/testSequence/%/%/%/%/reals/%/%.2/%">
       <details key="start" value="400"/>
       <details key="end" value="403"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2025" references="/0/testSequence/%/%/%/integers">
+    <eAnnotations source="positions.2060" references="/0/testSequence/%/%/%/integers">
       <details key="start" value="304"/>
       <details key="end" value="350"/>
       <details key="line" value="8"/>
     </eAnnotations>
-    <eAnnotations source="positions.2026" references="/0/testSequence/%/%/%/integers/%">
+    <eAnnotations source="positions.2061" references="/0/testSequence/%/%/%/integers/%">
       <details key="start" value="336"/>
       <details key="end" value="351"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2027" references="/0/testSequence/%/%/%/integers/%/%/%">
+    <eAnnotations source="positions.2062" references="/0/testSequence/%/%/%/integers/%/%/%">
       <details key="start" value="345"/>
       <details key="end" value="346"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2028" references="/0/testSequence/%/%/%/integers/%/%.1/%">
+    <eAnnotations source="positions.2063" references="/0/testSequence/%/%/%/integers/%/%.1/%">
       <details key="start" value="347"/>
       <details key="end" value="348"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2029" references="/0/testSequence/%/%/%/integers/%/%.2/%">
+    <eAnnotations source="positions.2064" references="/0/testSequence/%/%/%/integers/%/%.2/%">
       <details key="start" value="349"/>
       <details key="end" value="350"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2030" references="/0/testSequence/%/%/strings">
+    <eAnnotations source="positions.2065" references="/0/testSequence/%/%/strings">
       <details key="start" value="247"/>
       <details key="end" value="297"/>
       <details key="line" value="7"/>
     </eAnnotations>
-    <eAnnotations source="positions.2031" references="/0/testSequence/%/%/strings/%">
+    <eAnnotations source="positions.2066" references="/0/testSequence/%/%/strings/%">
       <details key="start" value="277"/>
       <details key="end" value="298"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2032" references="/0/testSequence/%/%/strings/%/%/%">
+    <eAnnotations source="positions.2067" references="/0/testSequence/%/%/strings/%/%/%">
       <details key="start" value="286"/>
       <details key="end" value="289"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2033" references="/0/testSequence/%/%/strings/%/%.1/%">
+    <eAnnotations source="positions.2068" references="/0/testSequence/%/%/strings/%/%.1/%">
       <details key="start" value="290"/>
       <details key="end" value="293"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2034" references="/0/testSequence/%/%/strings/%/%.2/%">
+    <eAnnotations source="positions.2069" references="/0/testSequence/%/%/strings/%/%.2/%">
       <details key="start" value="294"/>
       <details key="end" value="297"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2035" references="/0/testSequence/%/%.1">
+    <eAnnotations source="positions.2070" references="/0/testSequence/%/%.1">
       <details key="start" value="139"/>
       <details key="end" value="153"/>
       <details key="line" value="0"/>
     </eAnnotations>
-    <eAnnotations source="positions.2036" references="/0/testSequence/p">
+    <eAnnotations source="positions.2071" references="/0/testSequence/p">
       <details key="start" value="100"/>
       <details key="end" value="112"/>
       <details key="line" value="3"/>
diff --git a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.mtl b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.mtl
index c59a809..f306ee1 100644
--- a/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.mtl
+++ b/tests/org.eclipse.acceleo.aql.migration.tests/resources/services/sequencesServices/sequencesServices.mtl
@@ -359,6 +359,10 @@
                   
                 @Test Sequence{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p => [Sequence{p, 'test', true, 1, 2.2}->filter(ecore::EPackage)->first() = p/]
                 @Test Sequence{p,'test',true,1,2.2} -> filter(EClass) -> size() => [Sequence{p, 'test', true, 1, 2.2}->filter(ecore::EClass)->size()/]
+                @Test Sequence{p,'test',true,1,2.2} -> filter(String) => [Sequence{p, 'test', true, 1, 2.2}->filter(String)/]
+                @Test Sequence{p,'test',true,1,2.2} -> filter(Integer) => [Sequence{p, 'test', true, 1, 2.2}->filter(Integer)/]
+                @Test Sequence{p,'test',true,1,2.2} -> filter(Boolean) => [Sequence{p, 'test', true, 1, 2.2}->filter(Boolean)/]
+                @Test Sequence{p,'test',true,1,2.2} -> filter(Real) => [Sequence{p, 'test', true, 1, 2.2}->filter(Real)/]
                   
                 @Test strings -> subSequence(1,2) => [strings->subSequence(1, 2)/]
                 @Test integers -> subSequence(1,2) => [integers->subSequence(1, 2)/]