[unrelated] Avoid 56k limit but use local variables to avoid copy
diff --git a/examples/org.eclipse.ocl.examples.build/.launches/Generate OCLMetaModel.launch b/examples/org.eclipse.ocl.examples.build/.launches/Generate OCLMetaModel.launch
new file mode 100644
index 0000000..480f7fb
--- /dev/null
+++ b/examples/org.eclipse.ocl.examples.build/.launches/Generate OCLMetaModel.launch
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

+<launchConfiguration type="org.eclipse.emf.mwe2.launch.Mwe2LaunchConfigurationType">

+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/>

+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">

+<listEntry value="/org.eclipse.ocl.examples.build"/>

+</listAttribute>

+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">

+<listEntry value="4"/>

+</listAttribute>

+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src/org/eclipse/ocl/examples/build/GenerateOCLMetaModel.mwe2"/>

+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ocl.examples.build"/>

+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>

+</launchConfiguration>

diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/GenerateOclMetaModel.mwe2 b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/GenerateOclMetaModel.mwe2
index f66cea9..af18bc9 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/GenerateOclMetaModel.mwe2
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/GenerateOclMetaModel.mwe2
@@ -30,13 +30,18 @@
  */
 Workflow {
 	bean = ResourceSetImpl : resourceSet {}
-    bean = StandaloneSetup { resourceSet = resourceSet
-    	platformUri = ".."
-    }
+    bean = ProjectMapSetup { resourceSet = resourceSet }
+    bean = UMLStandaloneSetup { resourceSet = resourceSet }
+    bean = OCLStandaloneSetup {}
+    bean = UMLGenModelSetup { resourceSet = resourceSet }
+//    bean = StandaloneSetup { resourceSet = resourceSet
+//    	platformUri = ".."
+ //   }
     component = OclMetaModelCodeGenerator { resourceSet = resourceSet
-    	libraryFile = "/${projectName}/model/Pivot.ecore"
-    	javaFolder = "/${projectName}/emf-gen"
-    	javaPackageName = "${projectName}.model"
+    	projectName = "${projectName}"
+    	libraryFile = "model/Pivot.ecore"
+    	javaFolder = "emf-gen"
+    	javaPackageName = "${projectName}"
     	javaClassName = "OclMetaModel"
     }
 }
diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/acceleo/generateOCLstdlib.mtl b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/acceleo/generateOCLstdlib.mtl
index 202dc25..6abaaec 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/acceleo/generateOCLstdlib.mtl
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/acceleo/generateOCLstdlib.mtl
@@ -1,9 +1,10 @@
 [comment encoding = UTF-8 /]
-[module generateOCLstdlib('http://www.eclipse.org/ocl/3.1.0/Pivot','http://www.eclipse.org/emf/2002/Ecore')/]
-[import generateOclCommon/]
+[module org::eclipse::ocl::examples::build::acceleo::generateOCLstdlib('http://www.eclipse.org/ocl/3.1.0/Pivot','http://www.eclipse.org/emf/2002/Ecore')/]
+[import org::eclipse::ocl::examples::build::acceleo::generateOclCommon/]
 
 [template public generate(pkg : Package, javaPackage : String, javaClass : String, sourceFile : String, uri : String) ? (pkg.eContainer() = null)]
 [comment @main /]
+[let allEnumerations : Sequence(Enumeration) = pkg.eAllContents(Enumeration)]
 [file (javaClass + '.java', false, 'UTF-8')]
 /**
  * <copyright>
@@ -33,16 +34,13 @@
 import java.util.List;
 
 import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
 import org.eclipse.ocl.examples.pivot.*;
 import org.eclipse.ocl.examples.pivot.Class;
 import org.eclipse.ocl.examples.pivot.Library;
 import org.eclipse.ocl.examples.pivot.Package;
 import org.eclipse.ocl.examples.pivot.library.StandardLibraryContribution;
-import org.eclipse.uml2.common.util.SubsetSupersetEObjectEList;
 
 /**
  * This is the [uri/] Standard Library
@@ -56,8 +54,8 @@
  * to locate a library type when its default Standard Library URI is the same
  * as this Standard Library.
  */
-@SuppressWarnings("nls")
-public class [javaClass/] extends AbstractPivotModel
+@SuppressWarnings({"nls", "unused"})
+public class [javaClass/] extends XMIResourceImpl
 {
 	/**
 	 *	The static package-of-types pivot model of the Standard Library.
@@ -69,8 +67,6 @@
 	 */
 	public static final String STDLIB_URI = "[uri/]";
 
-	[pkg.defineConstants()/]
-
 	/**
 	 * Return the default OCL standard Library. 
 	 *  This static definition auto-generated from [sourceFile/]
@@ -78,7 +74,8 @@
 	 */
 	public static OCLstdlib getDefault() {
 		if (INSTANCE == null) {
-			Library library = create("[pkg.name/]", "[pkg.nsPrefix/]", "[pkg.nsURI/]");
+			Contents contents = new Contents();
+			Library library = contents.create("[pkg.name/]", "[pkg.nsPrefix/]", "[pkg.nsURI/]");
 			INSTANCE = new OCLstdlib(STDLIB_URI, library);
 		}
 		return INSTANCE;
@@ -121,56 +118,91 @@
 	}
 	
 	/**
+	 *	Construct a copy of the OCL Standard Library with specified resource URI,
+	 *  and package name, prefix and namespace URI.
+	 */
+	public static [javaClass/] create(String uri, String name, String nsPrefix, String nsURI) {
+		Contents contents = new Contents();
+		Library library = contents.create(name, nsPrefix, nsURI);
+		return new [javaClass/](uri, library);
+	}
+	
+	/**
 	 *	Construct an OCL Standard Library with specified resource URI and library content.
 	 */
 	public [javaClass/](String uri, Library library) {
 		super(URI.createURI(uri));
 		getContents().add(library);
 	}
-	
-	/**
-	 *	Construct a copy of the OCL Standard Library with specified resource URI,
-	 *  and package name, prefix and namespace URI.
-	 */
-	public static [javaClass/] create(String uri, String name, String nsPrefix, String nsURI) {
-		@SuppressWarnings("serial")
-		EcoreUtil.Copier copier = new EcoreUtil.Copier(true, false)
-		{
-			@Override
-			protected void copyReference(EReference eReference, EObject eObject, EObject copyEObject) {
-				Object eGet = eObject.eGet(eReference);
-				if (eGet instanceof SubsetSupersetEObjectEList) {
-					if (eReference == PivotPackage.Literals.TEMPLATE_SIGNATURE__PARAMETER) {
-						return;	// Avoid doubling up on TEMPLATE_SIGNATURE__OWNED_PARAMETER
-					}
-					System.out.println(eReference.getContainerClass().getName() + "::" + eReference.getName());
-				}
-				super.copyReference(eReference, eObject, copyEObject);
-			}			
-		};
-		Library library = (Library) copier.copy(getDefault().getContents().get(0));
-		copier.copyReferences();
-		library.setName(name);
-		library.setNsPrefix(nsPrefix);
-		library.setNsURI(nsURI);
-		return new [javaClass/](uri, library);
-	}
 
-	private static Library create(String name, String nsPrefix, String nsURI)
+	protected static class Contents extends AbstractContents
 	{
-		Library [pkg.getPrefixedSymbolName('library')/] = createLibrary("[pkg.name/]", nsPrefix, nsURI);
-		List<Precedence> ownedPrecedences = library.getOwnedPrecedences();
-	[for (precedence : Precedence | pkg.ownedPrecedence)]
-		[emitPrecedence(precedence)/]
-	[/for]
-	[for (ownedType : Type | pkg.ownedType->sortedBy(getMoniker()))]
-		[emitType(ownedType)/]
-	[/for]
-	[for (nestedPackage : Package | pkg.nestedPackage->sortedBy(name))]
-		[emitPackage(nestedPackage)/]
-	[/for]
-		return [pkg.getSymbolName()/];
+		protected Library [pkg.getPrefixedSymbolName('library')/];
+
+		protected Library create(String name, String nsPrefix, String nsURI)
+		{
+			[pkg.getPrefixedSymbolName('library')/] = createLibrary("[pkg.name/]", nsPrefix, nsURI);
+			installPackages();
+			installOclTypes();
+			installPrimitiveTypes();
+[if (allEnumerations->notEmpty())]
+			installEnumerations();
+[/if]
+			installParameterTypes();
+			installCollectionTypes();
+			installClassifierTypes();
+			installLambdaTypes();
+			installTupleTypes();
+			installOperations();
+			installIterations();
+			installProperties();
+			installTemplateSignatures();
+			installTemplateBindings();
+			installPrecedences();
+			installComments();
+			return [pkg.getSymbolName()/];
+		}
+	
+		[pkg.definePackages()/]
+		[pkg.declareOclTypes()/]
+		[pkg.declarePrimitiveTypes()/]
+[if (allEnumerations->notEmpty())]
+		[pkg.declareEnumerations()/]
+[/if]
+		[pkg.declareParameterTypes()/]
+		[pkg.declareCollectionTypes()/]
+		[pkg.declareClassifierTypes()/]
+		[pkg.declareTupleTypes()/]
+		[pkg.defineOclTypes()/]
+		[pkg.definePrimitiveTypes()/]
+[if (allEnumerations->notEmpty())]
+		[pkg.defineEnumerations()/]
+[/if]
+		[pkg.defineParameterTypes()/]
+		[pkg.defineCollectionTypes()/]
+		[pkg.defineClassifierTypes()/]
+		[pkg.defineTupleTypes()/]
+		[pkg.defineLambdaTypes()/]	
+		[pkg.defineOperations()/]	
+		[pkg.defineIterations()/]	
+		[pkg.defineProperties()/]
+		[pkg.defineTemplateSignatures()/]
+		[pkg.defineTemplateBindings()/]
+		[pkg.definePrecedences()/]
+		[pkg.defineComments()/]
 	}
 }
 [/file]
+[/let]
+[/template]
+
+[template public defineConstantType(type : DataType)]
+[if (type.name = 'Boolean')]
+protected final PrimitiveType [type.getPrefixedSymbolName('_'+type.partialName())/] = OCLstdlib._Boolean;[elseif (type.name = 'Classifier')]
+protected final PrimitiveType [type.getPrefixedSymbolName('_'+type.partialName())/] = OCLstdlib._Classifier;[elseif (type.name = 'Integer')]
+protected final PrimitiveType [type.getPrefixedSymbolName('_'+type.partialName())/] = OCLstdlib._Integer;[elseif (type.name = 'Real')]
+protected final PrimitiveType [type.getPrefixedSymbolName('_'+type.partialName())/] = OCLstdlib._Real;[elseif (type.name = 'String')]
+protected final PrimitiveType [type.getPrefixedSymbolName('_'+type.partialName())/] = OCLstdlib._String;[elseif (type.name = 'UnlimitedNatural')]
+protected final PrimitiveType [type.getPrefixedSymbolName('_'+type.partialName())/] = OCLstdlib._UnlimitedNatural;[else]
+protected final DataType [type.getPrefixedSymbolName('_'+type.partialName())/] = createDataType("[type.name/]");[/if]
 [/template]
diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/acceleo/generateOclCommon.mtl b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/acceleo/generateOclCommon.mtl
index 06ee581..2c234aa 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/acceleo/generateOclCommon.mtl
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/acceleo/generateOclCommon.mtl
@@ -1,5 +1,5 @@
 [comment encoding = UTF-8 /]
-[module generateOclCommon('http://www.eclipse.org/ocl/3.1.0/Pivot','http://www.eclipse.org/emf/2002/Ecore')/]
+[module org::eclipse::ocl::examples::build::acceleo::generateOclCommon('http://www.eclipse.org/ocl/3.1.0/Pivot','http://www.eclipse.org/emf/2002/Ecore')/]
 
 [query public getMoniker(elem : Element) : String =
 invoke('org.eclipse.ocl.examples.build.acceleo.NameQueries', 'getMoniker(org.eclipse.ocl.examples.pivot.Element)', Sequence{elem}) /]
@@ -28,276 +28,502 @@
 | (p.name = 'diagnostics') and (p.type.name = 'EDiagnosticChain'))->notEmpty()
 /]
 
-[template public defineConstants(pkg : Package)]
-[let allComments : OrderedSet(Comment) = pkg.eAllContents(Comment)->asSet()->sortedBy(_body)]
-[for (pComment : Comment | allComments)]
-private static Comment [pComment.getPrefixedSymbolName('co_'+pComment.partialName())/] = createComment("[pComment.javaString()/]");
-[/for]
-[/let]
+[template public declareClassifierTypes(pkg : Package)]
+[let allClassifierTypes : OrderedSet(ClassifierType) = pkg.eAllContents(ClassifierType)->asSet()->sortedBy(getMoniker())]
+[for (type : ClassifierType | allClassifierTypes)]
+protected final ClassifierType [type.getPrefixedSymbolName('_'+type.partialName())/] = createClassifierType("[type.name/]");
+[/for][/let][/template]
 
-[let allPrecedences : OrderedSet(Precedence) = pkg.eAllContents(Precedence)->asSet()->sortedBy(getMoniker())]
-[for (precedence : Precedence | allPrecedences)]
-private static Precedence [precedence.getPrefixedSymbolName('prec_'+precedence.partialName())/] = createPrecedence("[precedence.name/]", AssociativityKind.[precedence.associativity.toString().toUpper()/]);
-[/for]
-[/let]
+[template public declareCollectionTypes(pkg : Package)]
+[let allTypes : OrderedSet(CollectionType) = pkg.eAllContents(CollectionType)->asSet()->sortedBy(getMoniker())]
+[for (type : CollectionType | allTypes)]
+protected final [type.eClass().name/] [type.getPrefixedSymbolName('_'+type.partialName())/] = create[type.eClass().name/]("[type.name/]");
+[/for][/let][/template]
 
-[let allEnumerationLiterals : OrderedSet(EnumerationLiteral) = pkg.eAllContents(EnumerationLiteral)->asSet()->sortedBy(getMoniker())]
-[for (enumerationLiteral : EnumerationLiteral | allEnumerationLiterals)]
-private static EnumerationLiteral [enumerationLiteral.getPrefixedSymbolName('el_'+enumerationLiteral.partialName())/] = createEnumerationLiteral("[enumerationLiteral.name/]");
-[/for]
-[/let]
+[template public declareEnumerations(pkg : Package)]
+[let allEnumerations : OrderedSet(Enumeration) = pkg.eAllContents(Enumeration)->asSet()->sortedBy(getMoniker())]
+[for (enumeration : Enumeration | allEnumerations)]
+protected final Enumeration [enumeration.getPrefixedSymbolName('_'+enumeration.partialName())/] = createEnumeration("[enumeration.name/]");
+[/for][/let][/template]
 
-[let allTypes : OrderedSet(Type) = pkg.eAllContents(Type)->asSet()->sortedBy(getMoniker())]
+[template public declareOclTypes(pkg : Package)]
+[let allOclTypes : OrderedSet(Type) = pkg.getOclTypes()->sortedBy(getMoniker())]
+[for (type : Type | allOclTypes)]
+protected final [type.eClass().name/] [type.getPrefixedSymbolName('_'+type.partialName())/] = create[type.eClass().name/]("[type.name/]");
+[/for][/let][/template]
+
+[template public declareParameterTypes(pkg : Package)]
+[let allTypes : OrderedSet(Type) = pkg.eAllContents(Type)->select(owningTemplateParameter <> null)->asSet()->sortedBy(getMoniker())]
 [for (type : Type | allTypes)]
-private static [type.eClass().name/] [type.getPrefixedSymbolName('t_'+type.partialName())/] = create[type.eClass().name/]("[type.name/]");
+protected final Class [type.getPrefixedSymbolName('_'+type.partialName())/] = createClass("[type.name/]");
+[/for][/let][/template]
+
+[template public declarePrimitiveTypes(pkg : Package)]
+[let allTypes : OrderedSet(PrimitiveType) = pkg.eAllContents(PrimitiveType)->asSet()->sortedBy(getMoniker())]
+[for (type : PrimitiveType | allTypes)]
+protected final PrimitiveType [type.getPrefixedSymbolName('_'+type.partialName())/] = createPrimitiveType("[type.name/]");
+[/for][/let][/template]
+
+[template public declareTupleTypes(pkg : Package)]
+[let allTupleTypes : OrderedSet(TupleType) = pkg.eAllContents(TupleType)->asSet()->sortedBy(getMoniker())]
+[for (type : TupleType | allTupleTypes)]
+protected final TupleType [type.getPrefixedSymbolName('_'+type.partialName())/] = createTupleType("[type.name/]",
+[for (property : Property | type.ownedAttribute->sortedBy(name)) separator(',\n')]
+	createProperty("[property.name/]", [property.type.getSymbolName()/])[/for]);
+[/for][/let][/template]
+
+[template public defineClassifierTypes(pkg : Package)]
+[let allClassifierTypes : OrderedSet(ClassifierType) = pkg.eAllContents(ClassifierType)->asSet()->sortedBy(getMoniker())]
+[let allContainers : Set(Package) = allClassifierTypes.eContainer()->asSet()->excluding(pkg)->filter(Package)]
+protected void installClassifierTypes() {
+	final List<Type> ownedTypes = [pkg.getSymbolName()/].getOwnedTypes();
+[if (allContainers->notEmpty())]
+	final List<Type> orphanTypes = [allContainers->any(true).getSymbolName()/].getOwnedTypes();
+[/if]
+	ClassifierType type;
+	List<Type> superClasses;
+[for (type : ClassifierType | allClassifierTypes)]
+[if (type.unspecializedElement = null)]
+	ownedTypes.add(type = [type.getSymbolName()/]);
+[else]
+	orphanTypes.add(type = [type.getSymbolName()/]);
+	type.setUnspecializedElement([type.unspecializedElement.getSymbolName()/]);
+[/if]
+	type.setInstanceType([type.instanceType.getSymbolName()/]);
+	[type.emitSuperClasses()/]
+[/for]
+}
+[/let][/let][/template]
+
+[template public defineCollectionTypes(pkg : Package)]
+[let allCollectionTypes : OrderedSet(CollectionType) = pkg.eAllContents(CollectionType)->asSet()->sortedBy(getMoniker())]
+[let allContainers : Set(Package) = allCollectionTypes.eContainer()->asSet()->excluding(pkg)->filter(Package)]
+protected void installCollectionTypes() {
+	final List<Type> ownedTypes = [pkg.getSymbolName()/].getOwnedTypes();
+[if (allContainers->notEmpty())]
+	final List<Type> orphanTypes = [allContainers->any(true).getSymbolName()/].getOwnedTypes();
+[/if]
+	CollectionType type;
+	List<Type> superClasses;
+[for (type : CollectionType | allCollectionTypes)]
+[if (type.unspecializedElement = null)]
+	ownedTypes.add(type = [type.getSymbolName()/]);
+[else]
+	orphanTypes.add(type = [type.getSymbolName()/]);
+	type.setUnspecializedElement([type.unspecializedElement.getSymbolName()/]);
+[/if]
+	type.setElementType([type.elementType.getSymbolName()/]);
+	[type.emitSuperClasses()/]
+[/for]
+}
+[/let][/let][/template]
+
+[template public defineComments(pkg : Package)]
+protected void installComments() {
+[let commentedElements : OrderedSet(Element) = pkg.eAllContents(Element)->reject(oclIsKindOf(Constraint))->select(ownedComment->notEmpty())->asSet()->sortedBy(getMoniker())]
+[for (pElement : Element | commentedElements->sortedBy(getMoniker()))]
+[for (pComment : Comment | pElement.ownedComment->sortedBy(_body))]
+	installComment([pElement.getSymbolName()/], "[pComment.javaString()/]");
+[/for]
 [/for]
 [/let]
+}
+[/template]
 
-[let allParameters : OrderedSet(Parameter) = pkg.eAllContents(Parameter)->asSet()->sortedBy(getMoniker())]
-[for (parameter : Parameter | allParameters)]
-private static Parameter [parameter.getPrefixedSymbolName('pa_'+partialName())/] = createParameter("[parameter.name/]", [parameter.type.getSymbolName()/]);
+[template public defineEnumerations(pkg : Package)]
+[let allEnumerations : OrderedSet(Enumeration) = pkg.eAllContents(Enumeration)->asSet()->sortedBy(getMoniker())]
+protected void installEnumerations() {
+	final List<Type> ownedTypes = [pkg.getSymbolName()/].getOwnedTypes();
+	Enumeration type;
+	List<EnumerationLiteral> enumerationLiterals;
+[for (enumeration : Enumeration | allEnumerations)]
+	ownedTypes.add(type = [enumeration.getSymbolName()/]);
+	enumerationLiterals = type.getOwnedLiterals();
+[for (enumerationLiteral : EnumerationLiteral | enumeration.ownedLiteral)]
+	enumerationLiterals.add(createEnumerationLiteral("[enumerationLiteral.name/]"));
 [/for]
-[/let]
+	type.getSuperClasses().add(_Enumeration);
+[/for]
+}
+[/let][/template]
 
+[template public defineIterations(pkg : Package)]
 [let allIterations : OrderedSet(Iteration) = pkg.eAllContents(Iteration)->asSet()->sortedBy(getMoniker())]
 [for (iteration : Iteration | allIterations)]
-private static Iteration [iteration.getPrefixedSymbolName('it_'+iteration.partialName())/] = createIteration("[iteration.name/]", [iteration.type.getSymbolName()/], [if (iteration.implementationClass->notEmpty())]"[iteration.implementationClass/]", [iteration.implementationClass/].INSTANCE[else]null, null[/if], [iteration.ownedParameter->first().getSymbolName()/][for (iterator : Parameter | iteration.ownedIterator)], [iterator.getSymbolName()/][/for]);
+protected final Iteration [iteration.getPrefixedSymbolName('it_'+iteration.partialName())/] = createIteration("[iteration.name/]", [iteration.type.getSymbolName()/], [if (iteration.implementationClass->notEmpty())]"[iteration.implementationClass/]", [iteration.implementationClass/].INSTANCE[else]null, null[/if]);
+[/for]
+
+protected void installIterations() {
+	List<Operation> ownedIterations;
+	List<Parameter> ownedParameters;
+	Iteration iteration;
+	Parameter parameter;
+[for (type : Type | allIterations.owningType->asSet()->sortedBy(getMoniker()))]
+	ownedIterations = [type.getSymbolName()/].getOwnedOperations();
+[for (iteration : Iteration | type.ownedOperation->intersection(allIterations)->filter(Iteration)->sortedBy(getMoniker()))]
+	ownedIterations.add(iteration = [iteration.getSymbolName()/]);
+[if (iteration.lower <> 1)]
+	iteration.setLower(BigInteger.valueOf([iteration.lower/]));
+[/if][if (iteration.upper <> 1)]
+	iteration.setUpper(BigInteger.valueOf([iteration.upper/]));
+[/if][if (iteration.isOrdered)]
+	iteration.setIsOrdered(true);
+[/if][if (not iteration.isUnique)]
+	iteration.setIsUnique(false);
+[/if][if (iteration.isStatic)]
+	iteration.setIsStatic(true);
+[/if]
+[if (iteration.ownedIterator->notEmpty())]
+	ownedParameters = iteration.getOwnedIterators();
+[for (parameter : Parameter | iteration.ownedIterator)]
+	ownedParameters.add(parameter = createParameter("[parameter.name/]", [parameter.type.getSymbolName()/]));
+[if (parameter.lower <> 1)]
+	parameter.setLower(BigInteger.valueOf([parameter.lower/]));
+[/if][if (parameter.upper <> 1)]
+	parameter.setUpper(BigInteger.valueOf([parameter.upper/]));
+[/if][if (parameter.isOrdered)]
+	parameter.setIsOrdered(true);
+[/if][if (not parameter.isUnique)]
+	parameter.setIsUnique(false);
+[/if][/for][/if]
+[if (iteration.ownedAccumulator->notEmpty())]
+	ownedParameters = iteration.getOwnedAccumulators();
+[for (parameter : Parameter | iteration.ownedAccumulator)]
+	ownedParameters.add(parameter = createParameter("[parameter.name/]", [parameter.type.getSymbolName()/]));
+[if (parameter.lower <> 1)]
+	parameter.setLower(BigInteger.valueOf([parameter.lower/]));
+[/if][if (parameter.upper <> 1)]
+	parameter.setUpper(BigInteger.valueOf([parameter.upper/]));
+[/if][if (parameter.isOrdered)]
+	parameter.setIsOrdered(true);
+[/if][if (not parameter.isUnique)]
+	parameter.setIsUnique(false);
+[/if][/for][/if]
+[if (iteration.ownedParameter->notEmpty())]
+	ownedParameters = iteration.getOwnedParameters();
+[for (parameter : Parameter | iteration.ownedParameter)]
+	ownedParameters.add(parameter = createParameter("[parameter.name/]", [parameter.type.getSymbolName()/]));
+[if (parameter.lower <> 1)]
+	parameter.setLower(BigInteger.valueOf([parameter.lower/]));
+[/if][if (parameter.upper <> 1)]
+	parameter.setUpper(BigInteger.valueOf([parameter.upper/]));
+[/if][if (parameter.isOrdered)]
+	parameter.setIsOrdered(true);
+[/if][if (not parameter.isUnique)]
+	parameter.setIsUnique(false);
+[/if][/for][/if]
+[/for]
+[/for]
+[/let]
+}
+
+[/template]
+
+[template public defineLambdaTypes(pkg : Package)]
+[let allLambdaTypes : OrderedSet(LambdaType) = pkg.eAllContents(LambdaType)->asSet()->sortedBy(getMoniker())]
+[let allContainers : Set(Package) = allLambdaTypes.eContainer()->asSet()->excluding(pkg)->filter(Package)]
+[for (type : LambdaType | allLambdaTypes)]
+protected final LambdaType [type.getPrefixedSymbolName('_'+type.partialName())/] = createLambdaType("[type.name/]");
+[/for]
+
+protected void installLambdaTypes() {
+	final List<Type> orphanTypes = [allContainers->any(true).getSymbolName()/].getOwnedTypes();
+	LambdaType type;
+	List<Type> superClasses;
+[for (type : LambdaType | allLambdaTypes)]
+	orphanTypes.add(type = [type.getSymbolName()/]);
+	type.setContextType([type.contextType.getSymbolName()/]);
+[for (parameterType : Type| type.parameterType)]
+	type.getParameterTypes().add([parameterType.getSymbolName()/]);
+[/for]
+	type.setResultType([type.resultType.getSymbolName()/]);
+	[type.emitSuperClasses()/]
+[/for]
+}
+[/let][/let]
+[/template]
+
+[template public defineOclTypes(pkg : Package)]
+[let allOclTypes : OrderedSet(Type) = pkg.getOclTypes()->sortedBy(getMoniker())]
+protected void installOclTypes() {
+	final List<Type> ownedTypes = [pkg.getSymbolName()/].getOwnedTypes();
+	Type type;
+	List<Type> superClasses;
+[for (type : Type | allOclTypes)]
+	ownedTypes.add(type = [type.getSymbolName()/]);
+[if (not type.oclIsKindOf(AnyType))]
+	[type.emitSuperClasses()/]
+[/if]
+[/for]
+}
+[/let]
+[/template]
+
+[template public defineOperations(pkg : Package)]
+[let allOperations : OrderedSet(Operation) = pkg.eAllContents(Operation)->reject(oclIsKindOf(Iteration))->reject(isEcoreConstraint())->asSet()->sortedBy(getMoniker())]
+[for (operation : Operation | allOperations)]
+protected final Operation [operation.getPrefixedSymbolName('op_'+operation.partialName())/] = createOperation("[operation.name/]", [operation.type.getSymbolName()/], [if (operation.implementationClass->notEmpty())]"[operation.implementationClass/]", [operation.implementationClass/].INSTANCE[else]null, null[/if]);
+[/for]
+
+protected void installOperations() {
+	List<Operation> ownedOperations;
+	List<Parameter> ownedParameters;
+	Operation operation;
+	Parameter parameter;
+[for (type : Type | allOperations.owningType->asSet()->excluding(null)->sortedBy(getMoniker()))]
+	ownedOperations = [type.getSymbolName()/].getOwnedOperations();
+[for (operation : Operation | type.ownedOperation->intersection(allOperations)->sortedBy(getMoniker()))]
+	ownedOperations.add(operation = [operation.getSymbolName()/]);
+[if (operation.lower <> 1)]
+	operation.setLower(BigInteger.valueOf([operation.lower/]));
+[/if][if (operation.upper <> 1)]
+	operation.setUpper(BigInteger.valueOf([operation.upper/]));
+[/if][if (operation.isOrdered)]
+	operation.setIsOrdered(true);
+[/if][if (not operation.isUnique)]
+	operation.setIsUnique(false);
+[/if][if (operation.isStatic)]
+	operation.setIsStatic(true);
+[/if]
+[if (operation.ownedParameter->notEmpty())]
+	ownedParameters = operation.getOwnedParameters();
+[for (parameter : Parameter | operation.ownedParameter)]
+	ownedParameters.add(parameter = createParameter("[parameter.name/]", [parameter.type.getSymbolName()/]));
+[if (parameter.lower <> 1)]
+	parameter.setLower(BigInteger.valueOf([parameter.lower/]));
+[/if][if (parameter.upper <> 1)]
+	parameter.setUpper(BigInteger.valueOf([parameter.upper/]));
+[/if][if (parameter.isOrdered)]
+	parameter.setIsOrdered(true);
+[/if][if (not parameter.isUnique)]
+	parameter.setIsUnique(false);
+[/if][/for][/if]
+[/for]
+[/for]
+[/let]
+}
+
+[/template]
+
+[template public definePackages(pkg : Package)]
+[let allPackages : OrderedSet(Package) = pkg.eAllContents(Package)->asSet()->sortedBy(getMoniker())]
+[for (pkg : Package | allPackages)]
+protected final [pkg.eClass().name/] [pkg.getPrefixedSymbolName('pk_'+pkg.partialName())/] = create[pkg.eClass().name/]("[pkg.name/]", [if pkg.nsPrefix <> null]"[pkg.nsPrefix/]"[else]null[/if], [if pkg.nsURI <> null]"[pkg.nsURI/]"[else]null[/if]);
 [/for]
 [/let]
 
-[let allOperations : OrderedSet(Operation) = pkg.eAllContents(Operation)->asSet()->sortedBy(getMoniker())]
-[for (operation : Operation | allOperations->reject(oclIsKindOf(Iteration))->select(not isEcoreConstraint()))]
-private static Operation [operation.getPrefixedSymbolName('op_'+operation.partialName())/] = createOperation("[operation.name/]", [operation.type.getSymbolName()/], [if (operation.implementationClass->notEmpty())]"[operation.implementationClass/]", [operation.implementationClass/].INSTANCE[else]null, null[/if][for (parameter : Parameter | operation.ownedParameter)], [parameter.getSymbolName()/][/for]);
+protected void installPackages() {
+	[emitPackage(pkg)/]
+}
+
+[/template]
+
+[template public defineParameterTypes(pkg : Package)]
+[let allTypes : OrderedSet(Type) = pkg.eAllContents(Type)->select(owningTemplateParameter <> null)->asSet()->sortedBy(getMoniker())]
+protected void installParameterTypes() {
+}
+[/let]
+[/template]
+
+[template public definePrecedences(pkg : Package)]
+protected void installPrecedences() {
+[let allPrecedences : OrderedSet(Precedence) = pkg.ownedPrecedence]
+[for (precedence : Precedence | allPrecedences->sortedBy(name))]
+	final Precedence [precedence.getPrefixedSymbolName('prec_'+precedence.partialName())/] = createPrecedence("[precedence.name/]", AssociativityKind.[precedence.associativity.toString().toUpper()/]);
+[/for]
+
+	final List<Precedence> ownedPrecedences = [pkg.getSymbolName()/].getOwnedPrecedences();
+[for (precedence : Precedence | allPrecedences)]
+	ownedPrecedences.add([precedence.getSymbolName()/]);
 [/for]
 [/let]
 
-[let allProperties : OrderedSet(Property) = pkg.eAllContents(Property)->asSet()->sortedBy(getMoniker())]
+[let allOperations : OrderedSet(Operation) = pkg.eAllContents(Operation)->select(precedence <> null)->asSet()->sortedBy(getMoniker())]
+[for (operation : Operation | allOperations)]
+	[operation.getSymbolName()/].setPrecedence([operation.precedence.getSymbolName()/]);
+[/for]
+[/let]
+}
+
+[/template]
+
+[template public definePrimitiveTypes(pkg : Package)]
+[let allTypes : OrderedSet(PrimitiveType) = pkg.eAllContents(PrimitiveType)->asSet()->sortedBy(getMoniker())]
+protected void installPrimitiveTypes() {
+	final List<Type> ownedTypes = [pkg.getSymbolName()/].getOwnedTypes();
+	PrimitiveType type;
+[for (type : PrimitiveType | allTypes)]
+	ownedTypes.add(type = [type.getSymbolName()/]);
+[let superClasses : OrderedSet(Type) = type.superClass->select(_package.getRootPackage() = type._package.getRootPackage())]
+[for (superClass : Type | superClasses)]
+	type.getSuperClasses().add([superClass.getSymbolName()/]);
+[/for]
+[/let]
+[/for]
+}
+[/let]
+[/template]
+
+[template public defineProperties(pkg : Package)]
+[let allProperties : OrderedSet(Property) = pkg.eAllContents(Property)->reject(eContainer().oclIsKindOf(TupleType))->asSet()->sortedBy(getMoniker())]
 [for (property : Property | allProperties)]
-private static Property [property.getPrefixedSymbolName('pr_'+property.partialName())/] = createProperty("[property.name/]", [property.type.getSymbolName()/], [if (property.implementationClass->notEmpty())]"[property.implementationClass/]", [property.implementationClass/].INSTANCE[else]null, null[/if]);
+protected final Property [property.getPrefixedSymbolName('pr_'+partialName())/] = createProperty("[property.name/]", [property.type.getSymbolName()/]);
+[/for]
+
+protected void installProperties() {
+	List<Property> ownedProperties;
+	Property property;
+[for (type : Type | allProperties.owningType->asSet()->excluding(null)->sortedBy(getMoniker()))]
+	ownedProperties = [type.getSymbolName()/].getOwnedAttributes();
+[for (property : Property | type.ownedAttribute->intersection(allProperties)->sortedBy(getMoniker()))]
+	ownedProperties.add(property = [property.getSymbolName()/]);
+[if (property.lower <> 1)]
+	property.setLower(BigInteger.valueOf([property.lower/]));
+[/if][if (property.upper <> 1)]
+	property.setUpper(BigInteger.valueOf([property.upper/]));
+[/if][if (property.isOrdered)]
+	property.setIsOrdered(true);
+[/if][if (not property.isUnique)]
+	property.setIsUnique(false);
+[/if][if (property.isComposite)]
+	property.setIsComposite(true);
+[/if][if (property.isDerived)]
+	property.setIsDerived(true);
+[/if][if (property.isID)]
+	property.setIsID(true);
+[/if][if (property.implicit)]
+	property.setImplicit(true);
+[/if][if (property.isReadOnly)]
+	property.setIsReadOnly(true);
+[/if][if (property.isResolveProxies)]
+	property.setIsResolveProxies(true);
+[/if][if (property.isStatic)]
+	property.setIsStatic(true);
+[/if][if (property.isTransient)]
+	property.setIsTransient(true);
+[/if][if (property.isUnsettable)]
+	property.setIsUnsettable(true);
+[/if][if (property.isVolatile)]
+	property.setIsVolatile(true);
+[/if][if (property.opposite->notEmpty())]
+	property.setOpposite([property.opposite.getSymbolName()/]);
+[/if][if (property.implementationClass->notEmpty())]
+	property.setImplementationClass("[property.implementationClass/]");
+	property.setImplementation([property.implementationClass/].INSTANCE);
+[/if][/for][/for][/let]
+}
+[/template]
+
+[template public defineTemplateBindings(pkg : Package)]
+protected void installTemplateBindings() {
+[let allTemplateableElements : OrderedSet(TemplateableElement) = pkg.eAllContents(TemplateableElement)->select(templateBinding->notEmpty())->asSet()->sortedBy(getMoniker())]
+[for (templateableElement : TemplateableElement | allTemplateableElements)]
+[for (templateBinding : TemplateBinding | templateableElement.templateBinding)]
+	[templateableElement.getSymbolName()/].getTemplateBindings().add(createTemplateBinding([templateBinding.signature.getSymbolName()/],
+[for (templateParameterSubstitution : TemplateParameterSubstitution | templateBinding.parameterSubstitution) separator(',\n')]
+		createTemplateParameterSubstitution([templateParameterSubstitution.formal.getSymbolName()/], [templateParameterSubstitution.actual.getSymbolName()/])[/for]));
+[/for]
 [/for]
 [/let]
+}
 
+[/template]
+
+[template public defineTemplateSignatures(pkg : Package)]
 [let allTemplateParameters : OrderedSet(TemplateParameter) = pkg.eAllContents(TemplateParameter)->asSet()->sortedBy(getMoniker())]
 [for (templateParameter : TemplateParameter | allTemplateParameters)]
-private static TypeTemplateParameter [templateParameter.getPrefixedSymbolName('tp_'+templateParameter.partialName())/] = createTypeTemplateParameter([templateParameter.ownedParameteredElement.getSymbolName()/]);
+protected final TypeTemplateParameter [templateParameter.getPrefixedSymbolName('tp_'+templateParameter.partialName())/] = createTypeTemplateParameter([templateParameter.ownedParameteredElement.getSymbolName()/]);
 [/for]
 [/let]
 
 [let allTemplateSignatures : OrderedSet(TemplateSignature) = pkg.eAllContents(TemplateSignature)->asSet()->sortedBy(getMoniker())]
 [for (templateSignature : TemplateSignature | allTemplateSignatures)]
-private static TemplateSignature [templateSignature.getPrefixedSymbolName('ts_'+templateSignature.partialName())/] = createTemplateSignature([templateSignature.template.getSymbolName()/][for (templateParameter : TemplateParameter | templateSignature.ownedParameter)], [templateParameter.getSymbolName()/][/for]);
+protected final TemplateSignature [templateSignature.getPrefixedSymbolName('ts_'+templateSignature.partialName())/] = createTemplateSignature([templateSignature.template.getSymbolName()/][for (templateParameter : TemplateParameter | templateSignature.ownedParameter)], [templateParameter.getSymbolName()/][/for]);
 [/for]
 [/let]
 
-[let allPackages : OrderedSet(Package) = pkg.eAllContents(Package)->asSet()->sortedBy(getMoniker())]
-[for (pkg : Package | allPackages)]
-private static [pkg.eClass().name/] [pkg.getPrefixedSymbolName('pk_'+pkg.partialName())/] = create[pkg.eClass().name/]("[pkg.name/]", [if pkg.nsPrefix <> null]"[pkg.nsPrefix/]"[else]null[/if], [if pkg.nsURI <> null]"[pkg.nsURI/]"[else]null[/if]);
-[/for]
-[/let]
+protected void installTemplateSignatures() {
+}
 
-[let allTemplateParameterSubstitutions : OrderedSet(TemplateParameterSubstitution) = pkg.eAllContents(TemplateParameterSubstitution)->asSet()->sortedBy(getMoniker())]
-[for (templateParameterSubstitution : TemplateParameterSubstitution | allTemplateParameterSubstitutions)]
-private static TemplateParameterSubstitution [templateParameterSubstitution.getPrefixedSymbolName('tps_'+templateParameterSubstitution.partialName())/] = createTemplateParameterSubstitution([templateParameterSubstitution.formal.getSymbolName()/], [templateParameterSubstitution.actual.getSymbolName()/]);
-[/for]
-[/let]
-
-[let allTemplateBindings : OrderedSet(TemplateBinding) = pkg.eAllContents(TemplateBinding)->asSet()->sortedBy(getMoniker())]
-[for (templateBinding : TemplateBinding | allTemplateBindings)]
-private static TemplateBinding [templateBinding.getPrefixedSymbolName('tb_'+templateBinding.partialName())/] = createTemplateBinding([templateBinding.signature.getSymbolName()/][for (templateParameterSubstitution : TemplateParameterSubstitution | templateBinding.parameterSubstitution)], [templateParameterSubstitution.getSymbolName()/][/for]);
-[/for]
-[/let]
 [/template]
 
-[template public emitAccumulator(parameter : Parameter)]
-[if (parameter.ownedComment->notEmpty())]
-[parameter.emitComments()/]
-[/if][parameter.eContainer().getSymbolName()/].getOwnedAccumulators().add([parameter.getSymbolName()/]);[/template]
-
-[template public emitComments(namedElement : NamedElement)]
-[for (pComment : Comment | namedElement.ownedComment)]
-[namedElement.getSymbolName()/].getOwnedComments().add([pComment.getSymbolName()/]);[/for][/template]
-
-[template public emitIterator(parameter : Parameter)]
-[if (parameter.ownedComment->notEmpty())]
-[parameter.emitComments()/]
-[/if][/template]
-
-[template public emitMultiplicityElement(multiplicityElement : TypedMultiplicityElement)]
-[if (multiplicityElement.lower <> 1)]
-[multiplicityElement.getSymbolName()/].setLower(BigInteger.valueOf([multiplicityElement.lower/]));
-[/if][if (multiplicityElement.upper <> 1)]
-[multiplicityElement.getSymbolName()/].setUpper(BigInteger.valueOf([multiplicityElement.upper/]));
-[/if][if (multiplicityElement.isOrdered)]
-[multiplicityElement.getSymbolName()/].setIsOrdered(true);
-[/if][if (not multiplicityElement.isUnique)]
-[multiplicityElement.getSymbolName()/].setIsUnique(false);
-[/if][/template]
-
-[template public emitOperation(iteration : Iteration)]
-[emitMultiplicityElement(iteration)/][for (parameter : Parameter | iteration.ownedIterator)]
-[emitIterator(parameter)/][/for][for (parameter : Parameter | iteration.ownedAccumulator)]
-[emitAccumulator(parameter)/][/for][for (parameter : Parameter | iteration.ownedParameter)]
-[emitParameter(parameter)/][/for][if (iteration.precedence->notEmpty())]
-[iteration.getSymbolName()/].setPrecedence([iteration.precedence.getSymbolName()/]);
-[/if][if (iteration.ownedComment->notEmpty())]
-[iteration.emitComments()/]
-[/if][iteration.eContainer().getSymbolName()/].getOwnedOperations().add([iteration.getSymbolName()/]);
-[/template]
-
-[template public emitOperation(operation : Operation)]
-[emitMultiplicityElement(operation)/][if (operation.isStatic)]
-[operation.getSymbolName()/].setIsStatic(true);
-[/if][if (operation.precedence->notEmpty())]
-[operation.getSymbolName()/].setPrecedence([operation.precedence.getSymbolName()/]);
-[/if][if (operation.ownedComment->notEmpty())]
-[operation.emitComments()/]
-[/if][operation.eContainer().getSymbolName()/].getOwnedOperations().add([operation.getSymbolName()/]);
+[template public defineTupleTypes(pkg : Package)]
+[let allTupleTypes : OrderedSet(TupleType) = pkg.eAllContents(TupleType)->asSet()->sortedBy(getMoniker())]
+[let allContainers : Set(Package) = allTupleTypes.eContainer()->asSet()->excluding(pkg)->filter(Package)]
+protected void installTupleTypes() {
+	final List<Type> orphanTypes = [allContainers->any(true).getSymbolName()/].getOwnedTypes();
+	TupleType type;
+	List<Type> superClasses;
+[for (type : TupleType | allTupleTypes)]
+	orphanTypes.add(type = [type.getSymbolName()/]);
+[for (property : Property | type.ownedAttribute->sortedBy(name))]
+[if (property.implementationClass->notEmpty())]
+	[property.getSymbolName()/].setImplementationClass("[property.implementationClass/]");
+	[property.getSymbolName()/].setImplementation([property.implementationClass/].INSTANCE);
+[/if][/for]
+	[type.emitSuperClasses()/]
+[/for]
+}
+[/let][/let]
 [/template]
 
 [template public emitPackage(pkg : Package)]
-//
-// [pkg.getSignature()/]
-//
-[for (ownedType : Type | pkg.ownedType->sortedBy(getMoniker()))]
-[emitType(ownedType)/]
-[/for]
-[for (nestedPackage : Package | pkg.nestedPackage->sortedBy(name))]
-[emitPackage(nestedPackage)/]
-[/for]
-[if (pkg.ownedComment->notEmpty())]
-[pkg.emitComments()/]
-[/if]
-[pkg.eContainer().getSymbolName()/].getNestedPackages().add([pkg.getSymbolName()/]);
-[/template]
+[for (nestedPackage : Package | pkg.nestedPackage->sortedBy(name)) separator('\n')]
+[if (nestedPackage.nestedPackage->notEmpty())]
+[emitPackage(nestedPackage)/][/if]
+[pkg.getSymbolName()/].getNestedPackages().add([nestedPackage.getSymbolName()/]);[/for][/template]
 
-[template public emitParameter(parameter : Parameter)]
-[emitMultiplicityElement(parameter)/][if (parameter.ownedComment->notEmpty())]
-[parameter.emitComments()/][/if][/template]
-
-[template public emitPrecedence(precedence : Precedence)]
-[if (precedence.ownedComment->notEmpty())]
-[precedence.emitComments()/]
-[/if]
-ownedPrecedences.add([precedence.getSymbolName()/]);
-[/template]
-
-[template public emitProperty(property : Property)]
-[emitMultiplicityElement(property)/][if (property.isComposite)]
-[property.getSymbolName()/].setIsComposite(true);
-[/if][if (property.isDerived)]
-[property.getSymbolName()/].setIsDerived(true);
-[/if][if (property.isID)]
-[property.getSymbolName()/].setIsID(true);
-[/if][if (property.implicit)]
-[property.getSymbolName()/].setImplicit(true);
-[/if][if (property.isReadOnly)]
-[property.getSymbolName()/].setIsReadOnly(true);
-[/if][if (property.isResolveProxies)]
-[property.getSymbolName()/].setIsResolveProxies(true);
-[/if][if (property.isStatic)]
-[property.getSymbolName()/].setIsStatic(true);
-[/if][if (property.isTransient)]
-[property.getSymbolName()/].setIsTransient(true);
-[/if][if (property.isUnsettable)]
-[property.getSymbolName()/].setIsUnsettable(true);
-[/if][if (property.isVolatile)]
-[property.getSymbolName()/].setIsVolatile(true);
-[/if][if (property.opposite->notEmpty())]
-[property.getSymbolName()/].setOpposite([property.opposite.getSymbolName()/]);
-[/if][if (property.ownedComment->notEmpty())]
-[property.emitComments()/]
-[/if][property.eContainer().getSymbolName()/].getOwnedAttributes().add([property.getSymbolName()/]);
-[/template]
-
-[template public emitType(type : Type)]
-[/template]
-
-[template public emitType(type : Class)]
-//
-// [type.getSignature()/]
-//
-[if (type.oclIsKindOf(ClassifierType))]
-[type.getSymbolName()/].setInstanceType([type.oclAsType(ClassifierType).instanceType.getSymbolName()/]);
-[/if]
-[if (type.oclIsKindOf(CollectionType))]
-[type.getSymbolName()/].setElementType([type.oclAsType(CollectionType).elementType.getSymbolName()/]);
-[/if]
-[if (type.oclIsKindOf(LambdaType))]
-[let lambdaType : LambdaType = type.oclAsType(LambdaType)]
-[type.getSymbolName()/].setContextType([lambdaType.contextType.getSymbolName()/]);
-[for (parameterType : Type| lambdaType.parameterType)]
-	[type.getSymbolName()/].getParameterTypes().add([parameterType.getSymbolName()/]);
-[/for]
-[type.getSymbolName()/].setResultType([lambdaType.resultType.getSymbolName()/]);
-[/let][/if]
-[if (type.unspecializedElement->notEmpty())]
-[type.getSymbolName()/].setUnspecializedElement([type.unspecializedElement.getSymbolName()/]);
-[/if]
-[if (type.templateBinding->notEmpty())]
-[for (templateBinding : TemplateBinding | type.templateBinding)]
-[type.getSymbolName()/].getTemplateBindings().add([templateBinding.getSymbolName()/]);
-[/for]
-[/if]
+[template public emitSuperClasses(type : Type)]
 [let superClasses : OrderedSet(Type) = type.superClass->select(_package.getRootPackage() = type._package.getRootPackage())]
 [if (superClasses->notEmpty())]
-[for (superClass : Type | superClasses)]
-[type.getSymbolName()/].getSuperClasses().add([superClass.getSymbolName()/]);
-[/for]
-[elseif (not type.oclIsKindOf(AnyType))]
-[type.getSymbolName()/].getSuperClasses().add(standardLibrary.getOclElementType());
-[/if]
+superClasses = type.getSuperClasses();
+[for (superClass : Type | superClasses) separator('\n')]
+superClasses.add([superClass.getSymbolName()/]);[/for][elseif (not type.oclIsKindOf(AnyType))]
+superClasses = type.getSuperClasses();
+superClasses.add(_OclElement);[/if]
 [/let]
-[for (property : Property | type.ownedAttribute->sortedBy(name))]
-//
-// [property.getSignature()/]
-//
-[emitProperty(property)/]
-[/for]
-[for (operation : Operation | type.ownedOperation->sortedBy(name)->select(not isEcoreConstraint()))]
-//
-// [operation.getSignature()/]
-//
-[emitOperation(operation)/]
-[/for]
-[if (type.ownedComment->notEmpty())]
-[type.emitComments()/]
-[/if]
-[type.eContainer().getSymbolName()/].getOwnedTypes().add([type.getSymbolName()/]);
 [/template]
 
-[template public emitType(type : Enumeration)]
-//
-// [type.getSignature()/]
-//
-[for (superClass : Type | type.superClass)]
-[if (type._package.getRootPackage() = superClass._package.getRootPackage())]
-[type.getSymbolName()/].getSuperClasses().add([superClass.getSymbolName()/]);[/if]
-[/for]
-{
-[for (literal : EnumerationLiteral | type.ownedLiteral)]
-	[type.getSymbolName()/].getOwnedLiterals().add([literal.getSymbolName()/]);
-[/for]
-}
-[if (type.ownedComment->notEmpty())]
-[type.emitComments()/]
-[/if]
-[type.eContainer().getSymbolName()/].getOwnedTypes().add([type.getSymbolName()/]);
+[template public partialName(element : CollectionType)] 
+[if element.elementType = null]
+[element.name.javaName()/][else]
+[element.name.javaName()+'_'+element.elementType.partialName()/][/if]
 [/template]
 
 [template public partialName(element : Comment)] 
-[element._body.substring(1, 12.min(element._body.size())).javaName() /]
+[if element._body = null]
+null[else]
+[element._body.substring(1, 12.min(element._body.size())).javaName()/][/if]
+[/template]
+
+[template public partialName(element : EnumerationLiteral)] 
+[if element.enumeration = null]
+null[else]
+[element.enumeration.partialName()+'_'+element.name.javaName()/][/if]
 [/template]
 
 [template public partialName(element : LambdaType)] 
-[element.name.javaName() + '_' + element.contextType.partialName()/]
+[if element.contextType = null]
+null[else]
+[element.name.javaName() + '_' + element.contextType.partialName()/][/if]
 [/template]
 
 [template public partialName(element : OclAny)] 
 ['xyzzy'+element.eClass().name /]
 [/template]
 
+[template public partialName(element : OclInvalid)] 
+['invalid'/]
+[/template]
+
+[template public partialName(element : OclVoid)] 
+['void'/]
+[/template]
+
 [template public partialName(element : Operation)] 
-[element.owningType.partialName()+'_'+element.name.javaName() /]
+[if element.owningType = null]
+null[else]
+[element.owningType.partialName()/][/if]_[element.name.javaName()/]
 [/template]
 
 [template public partialName(element : Package)] 
@@ -305,7 +531,9 @@
 [/template]
 
 [template public partialName(element : Parameter)] 
-[element.eContainer().partialName()+'_'+element.name.javaName()/]
+[if element.eContainer() = null]
+null[else]
+[element.eContainer().partialName()/][/if]_[element.name.javaName()/]
 [/template]
 
 [template public partialName(element : Precedence)] 
@@ -313,25 +541,36 @@
 [/template]
 
 [template public partialName(element : Property)] 
-[element.owningType.partialName()+'_'+element.name.javaName() /]
+[if element.owningType = null]
+null[else]
+[element.owningType.partialName()/][/if]_[element.name.javaName()/]
 [/template]
 
 [template public partialName(element : TemplateBinding)] 
-[element.boundElement.partialName() /]
+[if element.boundElement = null]
+null[else]
+[element.boundElement.partialName()/][/if]
 [/template]
 
 [template public partialName(element : TemplateParameter)] 
-[if element.signature.template <> null]
+[if element.signature.template = null]
+['['+element.signature.partialName()+']'/][elseif element.parameteredElement = null]
+[element.signature.template.partialName()/][elseif true]
 [element.signature.template.partialName()/][else]
-['['+element.signature.partialName()+']'/][/if]
+[element.signature.template.partialName()/]_[element.parameteredElement.simpleName()/][/if]
 [/template]
 
 [template public partialName(element : TemplateParameterSubstitution)] 
-[element.templateBinding.boundElement.partialName() /]
+[if element.templateBinding = null]
+null[elseif element.templateBinding.boundElement = null]
+null[else]
+[element.templateBinding.boundElement.partialName()/][/if]
 [/template]
 
 [template public partialName(element : TemplateSignature)] 
-[element.template.partialName() /]
+[if element.template = null]
+null[else]
+[element.template.partialName()/][/if]
 [/template]
 
 [template public partialName(element : Type)] 
@@ -345,26 +584,57 @@
 ['xyzzy'+element.eClass().name /]
 [/template]
 
+[template public simpleName(element : OclInvalid)] 
+['invalid'/]
+[/template]
+
+[template public simpleName(element : OclVoid)] 
+['void'/]
+[/template]
+
 [template public simpleName(element : Operation)] 
-[element.owningType.simpleName()+'_'+element.name.javaName() /]
+[if element.owningType = null]
+null[else]
+[element.owningType.simpleName()/][/if]_[element.name.javaName()/]
 [/template]
 
 [template public simpleName(element : TemplateParameter)] 
-[if element.signature.template <> null]
-[element.signature.template.simpleName()/][else]
-['['+element.signature.simpleName()+']'/][/if]
+[if element.signature.template = null]
+null[else]
+[element.signature.template.simpleName()/][/if]
 [/template]
 
 [template public simpleName(element : TemplateParameterSubstitution)] 
-[element.templateBinding.boundElement.simpleName() /]
+[if element.templateBinding = null]
+null[elseif element.templateBinding.boundElement = null]
+null[else]
+[element.templateBinding.boundElement.simpleName()/][/if]
 [/template]
 
 [template public simpleName(element : Type)] 
-[if element.templateParameter <> null]
-[element.templateParameter.simpleName()+'_'+element.name.javaName()/][else]
-[element.name.javaName()/][/if]
+[if element.templateParameter = null]
+[element.name.javaName()/][else]
+[element.templateParameter.simpleName()+'_'+element.name.javaName()/][/if]
 [/template]
 
+[query public getOclTypes(pkg : Package) : Set(Type) =
+let types : Set(Type) = pkg.eAllContents(Type)->asSet()
+->reject(oclIsKindOf(Enumeration))
+->reject(oclIsKindOf(LambdaType))
+->reject(oclIsKindOf(CollectionType))
+->reject(oclIsKindOf(PrimitiveType))
+->reject(oclIsKindOf(ClassifierType))
+->reject(oclIsKindOf(TupleType))
+->select(owningTemplateParameter = null) in
+if types->exists(name = 'Boolean') then types
+->reject(name = 'Boolean')
+->reject(name = 'Integer')
+->reject(name = 'OclElement')
+->reject(name = 'Real')
+->reject(name = 'String')
+->reject(name = 'UnlimitedNatural')
+else types endif /]
+
 [query public javaName(string : String) : String = 
 invoke('org.eclipse.ocl.examples.codegen.common.NameQueries', 'rawEncodeName(java.lang.String)', Sequence{string}) /]
 
diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/acceleo/generateOclMetaModel.mtl b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/acceleo/generateOclMetaModel.mtl
index 36de834..0347863 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/acceleo/generateOclMetaModel.mtl
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/acceleo/generateOclMetaModel.mtl
@@ -1,9 +1,11 @@
 [comment encoding = UTF-8 /]
-[module generateOclMetaModel('http://www.eclipse.org/ocl/3.1.0/Pivot','http://www.eclipse.org/emf/2002/Ecore')/]
-[import generateOclCommon/]
+[module org::eclipse::ocl::examples::build::acceleo::generateOclMetaModel('http://www.eclipse.org/ocl/3.1.0/Pivot','http://www.eclipse.org/emf/2002/Ecore') extends org::eclipse::ocl::examples::build::acceleo::generateOclCommon/]
 
 [template public generate(pkg : Package, javaPackage : String, javaClass : String, sourceFile : String, uri : String)]
 [comment @main /]
+[let allEnumerations : Sequence(Enumeration) = pkg.eAllContents(Enumeration)]
+[let allLambdaTypes : Sequence(LambdaType) = pkg.eAllContents(LambdaType)]
+[let allTupleTypes : Sequence(TupleType) = pkg.eAllContents(TupleType)]
 [file (javaClass + '.java', false, 'UTF-8')]
 /**
  * <copyright>
@@ -36,12 +38,13 @@
 import java.util.List;
 
 import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
 import org.eclipse.ocl.examples.domain.library.LibraryFeature;
 import org.eclipse.ocl.examples.pivot.*;
 import org.eclipse.ocl.examples.pivot.Class;
 import org.eclipse.ocl.examples.pivot.Package;
 import org.eclipse.ocl.examples.pivot.manager.PivotStandardLibrary;
+import org.eclipse.ocl.examples.pivot.model.OCLstdlib;
 import org.eclipse.ocl.examples.pivot.utilities.PivotUtil;
 
 /**
@@ -49,92 +52,101 @@
  * auto-generated from [sourceFile/].
  * It facilitates efficient model loading without the overheads of model reading.
  */
-@SuppressWarnings("nls")
-public class [javaClass/] extends XMLResourceImpl
+@SuppressWarnings({"nls", "unused"})
+public class [javaClass/] extends XMIResourceImpl
 {
 	/**
 	 *	The URI of this Standard Library.
 	 */
 	public static final String PIVOT_URI = "[uri/]";
 
-	[pkg.defineConstants()/]
-
-	public [javaClass/](PivotStandardLibrary standardLibrary, String name, String nsURI) {
+	public [javaClass/](PivotStandardLibrary standardLibrary, String name, String nsPrefix, String nsURI) {
 		super(URI.createURI(PIVOT_URI));
-		Package metaModel = create(standardLibrary);
+		Contents contents = new Contents(standardLibrary);
+		Package metaModel = contents.create(name != null ? name : "[pkg.name/]", nsPrefix != null ? nsPrefix : "[pkg.nsPrefix/]", nsURI != null ? nsURI : "[pkg.nsURI/]");
 		getContents().add(metaModel);
-		if (name != null) {
-			metaModel.setName(name);
-		}
-		if (nsURI != null) {
-			metaModel.setNsURI(nsURI);
-		}
 	}
-	
-	/**
-	 *	Create and return a pivot model of the Pivot Model.
-	 */
-	public static Package create(PivotStandardLibrary standardLibrary)
+
+	protected static class Contents extends AbstractContents
 	{
-		Package [pkg.getSymbolName()/] = PivotFactory.eINSTANCE.createPackage(); // [pkg.getMoniker()/]
-		[for (ownedType : Type | pkg.ownedType->sortedBy(name))]
-		[if (ownedType.name = 'Boolean')]
-		PrimitiveType [ownedType.getSymbolName()/] = standardLibrary.getBooleanType(); // [ownedType.getMoniker()/]
-		[elseif (ownedType.name = 'Classifier')]
-		PrimitiveType [ownedType.getSymbolName()/] = standardLibrary.getClassifierType(); // [ownedType.getMoniker()/]
-		[elseif (ownedType.name = 'Integer')]
-		PrimitiveType [ownedType.getSymbolName()/] = standardLibrary.getIntegerType(); // [ownedType.getMoniker()/]
-		[elseif (ownedType.name = 'Real')]
-		PrimitiveType [ownedType.getSymbolName()/] = standardLibrary.getRealType(); // [ownedType.getMoniker()/]
-		[elseif (ownedType.name = 'String')]
-		PrimitiveType [ownedType.getSymbolName()/] = standardLibrary.getStringType(); // [ownedType.getMoniker()/]
-		[elseif (ownedType.name = 'UnlimitedNatural')]
-		PrimitiveType [ownedType.getSymbolName()/] = standardLibrary.getUnlimitedNaturalType(); // [ownedType.getMoniker()/]
-		[/if]
-		[/for]
-
-		[pkg.getSymbolName()/].setName("[pkg.name/]");
-		[if (pkg.nsPrefix <> null)]
-		[pkg.getSymbolName()/].setNsPrefix("[pkg.nsPrefix/]");
-		[/if]
-		[if (pkg.nsURI <> null)]
-		[pkg.getSymbolName()/].setNsURI("[pkg.nsURI/]");
-		[/if]
-	[for (ownedType : Type | pkg.ownedType->sortedBy(name))]
-		[if (ownedType.name = 'Boolean')]
-		[elseif (ownedType.name = 'Integer')]
-		[elseif (ownedType.name = 'Real')]
-		[elseif (ownedType.name = 'String')]
-		[elseif (ownedType.name = 'UnlimitedNatural')]
-		[else]
-		[emitType(ownedType)/]
-		[/if]
-	[/for]
-	[for (nestedPackage : Package | pkg.nestedPackage->sortedBy(name))]
-		[emitPackage(nestedPackage)/]
-	[/for]
-
-		Class elementClass = (Class) PivotUtil.getNamedElement([pkg.getSymbolName()/].getOwnedTypes(), "Element");
-		elementClass.getSuperClasses().clear();
-		elementClass.getSuperClasses().add(standardLibrary.getOclElementType());
-		for (Type pivotClass : [pkg.getSymbolName()/].getOwnedTypes()) {
-			if (pivotClass instanceof Enumeration) {
-				List<Type> superClasses = ((Enumeration) pivotClass).getSuperClasses();
-				if (superClasses.isEmpty()) {
-					superClasses.add(standardLibrary.getEnumerationType());
-				}
-			}
-//			else if (pivotClass instanceof Class) {
-//				List<Class> superClasses = ((Class) pivotClass).getSuperClasses();
-//				if (superClasses.isEmpty()) {
-//					superClasses.add(standardLibrary.getClassifierType());
-//				}
-//			}
+		protected Contents(PivotStandardLibrary standardLibrary) {
+			super(standardLibrary);
 		}
-		
-		return [pkg.getSymbolName()/];
+
+		protected final PrimitiveType [pkg.ownedType->select(name='Boolean')->any(true).getPrefixedSymbolName('_Boolean')/] = standardLibrary.getBooleanType();
+		protected final PrimitiveType [pkg.ownedType->select(name='Integer')->any(true).getPrefixedSymbolName('_Integer')/] = standardLibrary.getIntegerType();
+		protected final Class [pkg.ownedType->select(name='OclElement')->any(true).getPrefixedSymbolName('_OclElement')/] = standardLibrary.getOclElementType();
+		protected final PrimitiveType [pkg.ownedType->select(name='Real')->any(true).getPrefixedSymbolName('_Real')/] = standardLibrary.getRealType();
+		protected final PrimitiveType [pkg.ownedType->select(name='String')->any(true).getPrefixedSymbolName('_String')/] = standardLibrary.getStringType();
+		protected final PrimitiveType [pkg.ownedType->select(name='UnlimitedNatural')->any(true).getPrefixedSymbolName('_UnlimitedNatural')/] = standardLibrary.getUnlimitedNaturalType();
+
+		protected Package [pkg.getPrefixedSymbolName('metaModel')/];
+
+		protected Package create(String name, String nsPrefix, String nsURI)
+		{
+			[pkg.getSymbolName()/] = createPackage(name, nsPrefix, nsURI);
+			installPackages();
+			installOclTypes();
+			installPrimitiveTypes();
+[if (allEnumerations->notEmpty())]
+			installEnumerations();
+[/if]
+			installParameterTypes();
+			installCollectionTypes();
+			installClassifierTypes();
+[if (allLambdaTypes->notEmpty())]
+			installLambdaTypes();
+[/if]
+[if (allTupleTypes->notEmpty())]
+			installTupleTypes();
+[/if]
+			installOperations();
+			installIterations();
+			installProperties();
+			installTemplateSignatures();
+			installTemplateBindings();
+			installPrecedences();
+			installComments();
+			return [pkg.getSymbolName()/];
+		}
+	
+		[pkg.definePackages()/]
+		[pkg.declareOclTypes()/]
+		[pkg.declarePrimitiveTypes()/]
+[if (allEnumerations->notEmpty())]
+		[pkg.declareEnumerations()/]
+[/if]
+		[pkg.declareParameterTypes()/]
+		[pkg.declareCollectionTypes()/]
+		[pkg.declareClassifierTypes()/]
+[if (allTupleTypes->notEmpty())]
+		[pkg.declareTupleTypes()/]
+[/if]
+		[pkg.defineOclTypes()/]
+		[pkg.definePrimitiveTypes()/]
+[if (allEnumerations->notEmpty())]
+		[pkg.defineEnumerations()/]
+[/if]
+		[pkg.defineParameterTypes()/]
+		[pkg.defineCollectionTypes()/]
+		[pkg.defineClassifierTypes()/]
+[if (allTupleTypes->notEmpty())]
+		[pkg.defineTupleTypes()/]
+[/if]	
+[if (allLambdaTypes->notEmpty())]
+		[pkg.defineLambdaTypes()/]	
+[/if]	
+		[pkg.defineOperations()/]
+		[pkg.defineIterations()/]	
+		[pkg.defineProperties()/]
+		[pkg.defineTemplateSignatures()/]
+		[pkg.defineTemplateBindings()/]
+		[pkg.definePrecedences()/]
+		[pkg.defineComments()/]
 	}
 }
 [/file]
+[/let]
+[/let]
+[/let]
 [/template]
-
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/PivotTables.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/PivotTables.java
index ab66fbb..a6ca5d9 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/PivotTables.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/PivotTables.java
@@ -1436,9 +1436,9 @@
 		public static final ExecutorOperation _Real___add_ = new ExecutorOperation("+",
 			Types._Real, 1, org.eclipse.ocl.examples.library.real.RealPlusOperation.INSTANCE,
 				OCLstdlibTables.Types._OclSelf);
-		public static final ExecutorOperation _Real__1__sub_ = new ExecutorOperation("-",
-			Types._Real, 2, org.eclipse.ocl.examples.library.numeric.NumericNegateOperation.INSTANCE);
 		public static final ExecutorOperation _Real__0__sub_ = new ExecutorOperation("-",
+			Types._Real, 2, org.eclipse.ocl.examples.library.numeric.NumericNegateOperation.INSTANCE);
+		public static final ExecutorOperation _Real__1__sub_ = new ExecutorOperation("-",
 			Types._Real, 3, org.eclipse.ocl.examples.library.real.RealMinusOperation.INSTANCE,
 				OCLstdlibTables.Types._OclSelf);
 		public static final ExecutorOperation _Real___div_ = new ExecutorOperation("/",
@@ -1639,9 +1639,8 @@
 		public static final ExecutorProperty _Detail__Annotation = new ExecutorProperty("Annotation", Types._Detail, 0, new EcoreLibraryOppositeProperty(PivotPackage.Literals.ANNOTATION__OWNED_DETAIL));
 		public static final ExecutorProperty _Detail__value = new ExecutorProperty("value", Types._Detail, 1, new EcoreLibraryProperty(PivotPackage.Literals.DETAIL__VALUE));
 	
-		public static final ExecutorProperty _Element__Comment = new ExecutorProperty("Comment", Types._Element, 0, new EcoreLibraryOppositeProperty(PivotPackage.Literals.COMMENT__ANNOTATED_ELEMENT));
-		public static final ExecutorProperty _Element__Constraint = new ExecutorProperty("Constraint", Types._Element, 1, new EcoreLibraryOppositeProperty(PivotPackage.Literals.CONSTRAINT__CONSTRAINED_ELEMENT));
-		public static final ExecutorProperty _Element__ownedComment = new ExecutorProperty("ownedComment", Types._Element, 2, new EcoreLibraryProperty(PivotPackage.Literals.ELEMENT__OWNED_COMMENT));
+		public static final ExecutorProperty _Element__Constraint = new ExecutorProperty("Constraint", Types._Element, 0, new EcoreLibraryOppositeProperty(PivotPackage.Literals.CONSTRAINT__CONSTRAINED_ELEMENT));
+		public static final ExecutorProperty _Element__ownedComment = new ExecutorProperty("ownedComment", Types._Element, 1, new EcoreLibraryProperty(PivotPackage.Literals.ELEMENT__OWNED_COMMENT));
 	
 		public static final ExecutorProperty _EnumLiteralExp__referredEnumLiteral = new ExecutorProperty("referredEnumLiteral", Types._EnumLiteralExp, 0, new EcoreLibraryProperty(PivotPackage.Literals.ENUM_LITERAL_EXP__REFERRED_ENUM_LITERAL));
 	
@@ -1791,12 +1790,11 @@
 		public static final ExecutorProperty _TemplateBinding__signature = new ExecutorProperty("signature", Types._TemplateBinding, 2, new EcoreLibraryProperty(PivotPackage.Literals.TEMPLATE_BINDING__SIGNATURE));
 	
 		public static final ExecutorProperty _TemplateParameter__TemplateParameterSubstitution = new ExecutorProperty("TemplateParameterSubstitution", Types._TemplateParameter, 0, new EcoreLibraryOppositeProperty(PivotPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL));
-		public static final ExecutorProperty _TemplateParameter__TemplateSignature = new ExecutorProperty("TemplateSignature", Types._TemplateParameter, 1, new EcoreLibraryOppositeProperty(PivotPackage.Literals.TEMPLATE_SIGNATURE__PARAMETER));
-		public static final ExecutorProperty _TemplateParameter__default = new ExecutorProperty("default", Types._TemplateParameter, 2, new EcoreLibraryProperty(PivotPackage.Literals.TEMPLATE_PARAMETER__DEFAULT));
-		public static final ExecutorProperty _TemplateParameter__ownedDefault = new ExecutorProperty("ownedDefault", Types._TemplateParameter, 3, new EcoreLibraryProperty(PivotPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT));
-		public static final ExecutorProperty _TemplateParameter__ownedParameteredElement = new ExecutorProperty("ownedParameteredElement", Types._TemplateParameter, 4, new EcoreLibraryProperty(PivotPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT));
-		public static final ExecutorProperty _TemplateParameter__parameteredElement = new ExecutorProperty("parameteredElement", Types._TemplateParameter, 5, new EcoreLibraryProperty(PivotPackage.Literals.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT));
-		public static final ExecutorProperty _TemplateParameter__signature = new ExecutorProperty("signature", Types._TemplateParameter, 6, new EcoreLibraryProperty(PivotPackage.Literals.TEMPLATE_PARAMETER__SIGNATURE));
+		public static final ExecutorProperty _TemplateParameter__default = new ExecutorProperty("default", Types._TemplateParameter, 1, new EcoreLibraryProperty(PivotPackage.Literals.TEMPLATE_PARAMETER__DEFAULT));
+		public static final ExecutorProperty _TemplateParameter__ownedDefault = new ExecutorProperty("ownedDefault", Types._TemplateParameter, 2, new EcoreLibraryProperty(PivotPackage.Literals.TEMPLATE_PARAMETER__OWNED_DEFAULT));
+		public static final ExecutorProperty _TemplateParameter__ownedParameteredElement = new ExecutorProperty("ownedParameteredElement", Types._TemplateParameter, 3, new EcoreLibraryProperty(PivotPackage.Literals.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT));
+		public static final ExecutorProperty _TemplateParameter__parameteredElement = new ExecutorProperty("parameteredElement", Types._TemplateParameter, 4, new EcoreLibraryProperty(PivotPackage.Literals.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT));
+		public static final ExecutorProperty _TemplateParameter__signature = new ExecutorProperty("signature", Types._TemplateParameter, 5, new EcoreLibraryProperty(PivotPackage.Literals.TEMPLATE_PARAMETER__SIGNATURE));
 	
 		public static final ExecutorProperty _TemplateParameterSubstitution__actual = new ExecutorProperty("actual", Types._TemplateParameterSubstitution, 0, new EcoreLibraryProperty(PivotPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__ACTUAL));
 		public static final ExecutorProperty _TemplateParameterSubstitution__formal = new ExecutorProperty("formal", Types._TemplateParameterSubstitution, 1, new EcoreLibraryProperty(PivotPackage.Literals.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL));
@@ -1822,16 +1820,15 @@
 		public static final ExecutorProperty _Type__ClassifierType = new ExecutorProperty("ClassifierType", Types._Type, 0, new EcoreLibraryOppositeProperty(PivotPackage.Literals.CLASSIFIER_TYPE__INSTANCE_TYPE));
 		public static final ExecutorProperty _Type__CollectionType = new ExecutorProperty("CollectionType", Types._Type, 1, new EcoreLibraryOppositeProperty(PivotPackage.Literals.COLLECTION_TYPE__ELEMENT_TYPE));
 		public static final ExecutorProperty _Type__DataType = new ExecutorProperty("DataType", Types._Type, 2, new EcoreLibraryOppositeProperty(PivotPackage.Literals.DATA_TYPE__BEHAVIORAL_TYPE));
-		public static final ExecutorProperty _Type__Operation = new ExecutorProperty("Operation", Types._Type, 3, new EcoreLibraryOppositeProperty(PivotPackage.Literals.OPERATION__RAISED_EXCEPTION));
-		public static final ExecutorProperty _Type__Type = new ExecutorProperty("Type", Types._Type, 4, new EcoreLibraryOppositeProperty(PivotPackage.Literals.TYPE__SUPER_CLASS));
-		public static final ExecutorProperty _Type__TypeExp = new ExecutorProperty("TypeExp", Types._Type, 5, new EcoreLibraryOppositeProperty(PivotPackage.Literals.TYPE_EXP__REFERRED_TYPE));
-		public static final ExecutorProperty _Type__TypeTemplateParameter = new ExecutorProperty("TypeTemplateParameter", Types._Type, 6, new EcoreLibraryOppositeProperty(PivotPackage.Literals.TYPE_TEMPLATE_PARAMETER__CONSTRAINING_TYPE));
-		public static final ExecutorProperty _Type__TypedElement = new ExecutorProperty("TypedElement", Types._Type, 7, new EcoreLibraryOppositeProperty(PivotPackage.Literals.TYPED_ELEMENT__TYPE));
-		public static final ExecutorProperty _Type__instanceClassName = new ExecutorProperty("instanceClassName", Types._Type, 8, new EcoreLibraryProperty(PivotPackage.Literals.TYPE__INSTANCE_CLASS_NAME));
-		public static final ExecutorProperty _Type__ownedAttribute = new ExecutorProperty("ownedAttribute", Types._Type, 9, new EcoreLibraryProperty(PivotPackage.Literals.TYPE__OWNED_ATTRIBUTE));
-		public static final ExecutorProperty _Type__ownedOperation = new ExecutorProperty("ownedOperation", Types._Type, 10, new EcoreLibraryProperty(PivotPackage.Literals.TYPE__OWNED_OPERATION));
-		public static final ExecutorProperty _Type__package = new ExecutorProperty("package", Types._Type, 11, new EcoreLibraryProperty(PivotPackage.Literals.TYPE__PACKAGE));
-		public static final ExecutorProperty _Type__superClass = new ExecutorProperty("superClass", Types._Type, 12, new EcoreLibraryProperty(PivotPackage.Literals.TYPE__SUPER_CLASS));
+		public static final ExecutorProperty _Type__Type = new ExecutorProperty("Type", Types._Type, 3, new EcoreLibraryOppositeProperty(PivotPackage.Literals.TYPE__SUPER_CLASS));
+		public static final ExecutorProperty _Type__TypeExp = new ExecutorProperty("TypeExp", Types._Type, 4, new EcoreLibraryOppositeProperty(PivotPackage.Literals.TYPE_EXP__REFERRED_TYPE));
+		public static final ExecutorProperty _Type__TypeTemplateParameter = new ExecutorProperty("TypeTemplateParameter", Types._Type, 5, new EcoreLibraryOppositeProperty(PivotPackage.Literals.TYPE_TEMPLATE_PARAMETER__CONSTRAINING_TYPE));
+		public static final ExecutorProperty _Type__TypedElement = new ExecutorProperty("TypedElement", Types._Type, 6, new EcoreLibraryOppositeProperty(PivotPackage.Literals.TYPED_ELEMENT__TYPE));
+		public static final ExecutorProperty _Type__instanceClassName = new ExecutorProperty("instanceClassName", Types._Type, 7, new EcoreLibraryProperty(PivotPackage.Literals.TYPE__INSTANCE_CLASS_NAME));
+		public static final ExecutorProperty _Type__ownedAttribute = new ExecutorProperty("ownedAttribute", Types._Type, 8, new EcoreLibraryProperty(PivotPackage.Literals.TYPE__OWNED_ATTRIBUTE));
+		public static final ExecutorProperty _Type__ownedOperation = new ExecutorProperty("ownedOperation", Types._Type, 9, new EcoreLibraryProperty(PivotPackage.Literals.TYPE__OWNED_OPERATION));
+		public static final ExecutorProperty _Type__package = new ExecutorProperty("package", Types._Type, 10, new EcoreLibraryProperty(PivotPackage.Literals.TYPE__PACKAGE));
+		public static final ExecutorProperty _Type__superClass = new ExecutorProperty("superClass", Types._Type, 11, new EcoreLibraryProperty(PivotPackage.Literals.TYPE__SUPER_CLASS));
 	
 		public static final ExecutorProperty _TypeExp__referredType = new ExecutorProperty("referredType", Types._TypeExp, 0, new EcoreLibraryProperty(PivotPackage.Literals.TYPE_EXP__REFERRED_TYPE));
 	
@@ -7538,7 +7535,6 @@
 	 */
 	public static class FragmentProperties {
 		private static final ExecutorProperty[] _Annotation = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Annotation__NamedElement,
 		    PivotTables.Properties._NamedElement__isStatic,
@@ -7554,10 +7550,8 @@
 		private static final ExecutorProperty[] _AnyType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -7585,10 +7579,8 @@
 		    PivotTables.Properties._AssociationClass__AssociationClassCallExp,
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -7616,7 +7608,6 @@
 		private static final ExecutorProperty[] _AssociationClassCallExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -7644,10 +7635,8 @@
 		private static final ExecutorProperty[] _BagType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -7679,7 +7668,6 @@
 		private static final ExecutorProperty[] _BooleanLiteralExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -7700,7 +7688,6 @@
 		private static final ExecutorProperty[] _CallExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -7720,7 +7707,6 @@
 		};
 	
 		private static final ExecutorProperty[] _CallOperationAction = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._CallOperationAction__MessageExp,
 		    PivotTables.Properties._NamedElement__isStatic,
@@ -7734,10 +7720,8 @@
 		private static final ExecutorProperty[] _Class = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -7764,10 +7748,8 @@
 		private static final ExecutorProperty[] _ClassifierType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -7794,7 +7776,6 @@
 	
 		private static final ExecutorProperty[] _CollectionItem = {
 		    PivotTables.Properties._CollectionLiteralPart__CollectionLiteralExp,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._NamedElement__isStatic,
 		    PivotTables.Properties._CollectionItem__item,
@@ -7810,7 +7791,6 @@
 		private static final ExecutorProperty[] _CollectionLiteralExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -7831,7 +7811,6 @@
 	
 		private static final ExecutorProperty[] _CollectionLiteralPart = {
 		    PivotTables.Properties._CollectionLiteralPart__CollectionLiteralExp,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._NamedElement__isStatic,
 		    PivotTables.Properties._NamedElement__name,
@@ -7843,7 +7822,6 @@
 	
 		private static final ExecutorProperty[] _CollectionRange = {
 		    PivotTables.Properties._CollectionLiteralPart__CollectionLiteralExp,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._CollectionRange__first,
 		    PivotTables.Properties._NamedElement__isStatic,
@@ -7858,10 +7836,8 @@
 		private static final ExecutorProperty[] _CollectionType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -7889,7 +7865,6 @@
 		};
 	
 		private static final ExecutorProperty[] _Comment = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Comment__Element,
 		    PivotTables.Properties._Comment__annotatedElement,
@@ -7898,7 +7873,6 @@
 		};
 	
 		private static final ExecutorProperty[] _Constraint = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Constraint__constrainedElement,
 		    PivotTables.Properties._Constraint__context,
@@ -7915,7 +7889,6 @@
 		private static final ExecutorProperty[] _ConstructorExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -7934,7 +7907,6 @@
 		};
 	
 		private static final ExecutorProperty[] _ConstructorPart = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._ConstructorPart__ConstructorExp,
 		    PivotTables.Properties._ConstructorPart__initExpression,
@@ -7945,10 +7917,8 @@
 		private static final ExecutorProperty[] _DataType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -7976,7 +7946,6 @@
 	
 		private static final ExecutorProperty[] _Detail = {
 		    PivotTables.Properties._Detail__Annotation,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._NamedElement__isStatic,
 		    PivotTables.Properties._NamedElement__name,
@@ -7987,7 +7956,6 @@
 		};
 	
 		private static final ExecutorProperty[] _Element = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Element__ownedComment
 		};
@@ -7995,7 +7963,6 @@
 		private static final ExecutorProperty[] _EnumLiteralExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8016,10 +7983,8 @@
 		private static final ExecutorProperty[] _Enumeration = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -8047,7 +8012,6 @@
 		};
 	
 		private static final ExecutorProperty[] _EnumerationLiteral = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._EnumerationLiteral__EnumLiteralExp,
 		    PivotTables.Properties._EnumerationLiteral__enumeration,
@@ -8060,7 +8024,6 @@
 		};
 	
 		private static final ExecutorProperty[] _ExpressionInOcl = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._ValueSpecification__Constraint,
 		    PivotTables.Properties._OpaqueExpression__body,
@@ -8083,7 +8046,6 @@
 		};
 	
 		private static final ExecutorProperty[] _Feature = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Feature__implementation,
 		    PivotTables.Properties._Feature__implementationClass,
@@ -8102,7 +8064,6 @@
 		private static final ExecutorProperty[] _FeatureCallExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8125,7 +8086,6 @@
 		private static final ExecutorProperty[] _IfExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8152,7 +8112,6 @@
 		private static final ExecutorProperty[] _IntegerLiteralExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8173,7 +8132,6 @@
 		private static final ExecutorProperty[] _InvalidLiteralExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8193,10 +8151,8 @@
 		private static final ExecutorProperty[] _InvalidType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -8223,7 +8179,6 @@
 		private static final ExecutorProperty[] _IterateExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8248,7 +8203,6 @@
 	
 		private static final ExecutorProperty[] _Iteration = {
 		    PivotTables.Properties._Operation__CallOperationAction,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Iteration__LoopExp,
 		    PivotTables.Properties._Operation__MessageType,
@@ -8282,7 +8236,6 @@
 		private static final ExecutorProperty[] _IteratorExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8307,10 +8260,8 @@
 		private static final ExecutorProperty[] _LambdaType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -8342,7 +8293,6 @@
 		private static final ExecutorProperty[] _LetExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8362,7 +8312,6 @@
 		};
 	
 		private static final ExecutorProperty[] _Library = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._NamedElement__isStatic,
 		    PivotTables.Properties._NamedElement__name,
@@ -8385,7 +8334,6 @@
 		private static final ExecutorProperty[] _LiteralExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8405,7 +8353,6 @@
 		private static final ExecutorProperty[] _LoopExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8430,7 +8377,6 @@
 		private static final ExecutorProperty[] _MessageExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8454,10 +8400,8 @@
 		private static final ExecutorProperty[] _MessageType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -8484,7 +8428,6 @@
 		private static final ExecutorProperty[] _MorePivotable = {};
 	
 		private static final ExecutorProperty[] _MultiplicityElement = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._MultiplicityElement__isOrdered,
 		    PivotTables.Properties._MultiplicityElement__isUnique,
@@ -8496,7 +8439,6 @@
 		private static final ExecutorProperty[] _Nameable = {};
 	
 		private static final ExecutorProperty[] _NamedElement = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._NamedElement__isStatic,
 		    PivotTables.Properties._NamedElement__name,
@@ -8506,7 +8448,6 @@
 		};
 	
 		private static final ExecutorProperty[] _Namespace = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._NamedElement__isStatic,
 		    PivotTables.Properties._NamedElement__name,
@@ -8518,7 +8459,6 @@
 		private static final ExecutorProperty[] _NavigationCallExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8543,7 +8483,6 @@
 		private static final ExecutorProperty[] _NullLiteralExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8563,7 +8502,6 @@
 		private static final ExecutorProperty[] _NumericLiteralExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8585,7 +8523,6 @@
 		private static final ExecutorProperty[] _OclExpression = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8603,7 +8540,6 @@
 		};
 	
 		private static final ExecutorProperty[] _OpaqueExpression = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._ValueSpecification__Constraint,
 		    PivotTables.Properties._OpaqueExpression__body,
@@ -8622,7 +8558,6 @@
 	
 		private static final ExecutorProperty[] _Operation = {
 		    PivotTables.Properties._Operation__CallOperationAction,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Operation__MessageType,
 		    PivotTables.Properties._Operation__OperationCallExp,
@@ -8653,7 +8588,6 @@
 		private static final ExecutorProperty[] _OperationCallExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8676,10 +8610,8 @@
 		};
 	
 		private static final ExecutorProperty[] _OperationTemplateParameter = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._TemplateParameter__TemplateParameterSubstitution,
-		    PivotTables.Properties._TemplateParameter__TemplateSignature,
 		    PivotTables.Properties._TemplateParameter__default,
 		    PivotTables.Properties._Element__ownedComment,
 		    PivotTables.Properties._TemplateParameter__ownedDefault,
@@ -8691,10 +8623,8 @@
 		private static final ExecutorProperty[] _OrderedSetType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -8722,7 +8652,6 @@
 		};
 	
 		private static final ExecutorProperty[] _Package = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._NamedElement__isStatic,
 		    PivotTables.Properties._NamedElement__name,
@@ -8741,7 +8670,6 @@
 		};
 	
 		private static final ExecutorProperty[] _PackageableElement = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Element__ownedComment,
 		    PivotTables.Properties._ParameterableElement__owningTemplateParameter,
@@ -8749,7 +8677,6 @@
 		};
 	
 		private static final ExecutorProperty[] _Parameter = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Parameter__Variable,
 		    PivotTables.Properties._VariableDeclaration__VariableExp,
@@ -8767,7 +8694,6 @@
 		};
 	
 		private static final ExecutorProperty[] _ParameterableElement = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Element__ownedComment,
 		    PivotTables.Properties._ParameterableElement__owningTemplateParameter,
@@ -8777,7 +8703,6 @@
 		private static final ExecutorProperty[] _Pivotable = {};
 	
 		private static final ExecutorProperty[] _Precedence = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Precedence__Operation,
 		    PivotTables.Properties._Precedence__Package,
@@ -8793,7 +8718,6 @@
 		private static final ExecutorProperty[] _PrimitiveLiteralExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8813,10 +8737,8 @@
 		private static final ExecutorProperty[] _PrimitiveType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -8843,7 +8765,6 @@
 		};
 	
 		private static final ExecutorProperty[] _Property = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Property__ConstructorPart,
 		    PivotTables.Properties._Property__NavigationCallExp,
@@ -8882,7 +8803,6 @@
 		private static final ExecutorProperty[] _PropertyCallExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8910,7 +8830,6 @@
 		private static final ExecutorProperty[] _RealLiteralExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -8931,10 +8850,8 @@
 		private static final ExecutorProperty[] _SelfType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -8959,7 +8876,6 @@
 		};
 	
 		private static final ExecutorProperty[] _SendSignalAction = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._SendSignalAction__MessageExp,
 		    PivotTables.Properties._NamedElement__isStatic,
@@ -8973,10 +8889,8 @@
 		private static final ExecutorProperty[] _SequenceType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -9006,10 +8920,8 @@
 		private static final ExecutorProperty[] _SetType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -9037,7 +8949,6 @@
 		};
 	
 		private static final ExecutorProperty[] _Signal = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Signal__MessageType,
 		    PivotTables.Properties._Signal__SendSignalAction,
@@ -9049,7 +8960,6 @@
 		};
 	
 		private static final ExecutorProperty[] _State = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._State__StateExp,
 		    PivotTables.Properties._NamedElement__isStatic,
@@ -9062,7 +8972,6 @@
 		private static final ExecutorProperty[] _StateExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -9085,7 +8994,6 @@
 		private static final ExecutorProperty[] _StringLiteralExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -9104,7 +9012,6 @@
 		};
 	
 		private static final ExecutorProperty[] _TemplateBinding = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._TemplateBinding__boundElement,
 		    PivotTables.Properties._Element__ownedComment,
@@ -9113,10 +9020,8 @@
 		};
 	
 		private static final ExecutorProperty[] _TemplateParameter = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._TemplateParameter__TemplateParameterSubstitution,
-		    PivotTables.Properties._TemplateParameter__TemplateSignature,
 		    PivotTables.Properties._TemplateParameter__default,
 		    PivotTables.Properties._Element__ownedComment,
 		    PivotTables.Properties._TemplateParameter__ownedDefault,
@@ -9126,7 +9031,6 @@
 		};
 	
 		private static final ExecutorProperty[] _TemplateParameterSubstitution = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._TemplateParameterSubstitution__actual,
 		    PivotTables.Properties._TemplateParameterSubstitution__formal,
@@ -9138,10 +9042,8 @@
 		private static final ExecutorProperty[] _TemplateParameterType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -9165,7 +9067,6 @@
 		};
 	
 		private static final ExecutorProperty[] _TemplateSignature = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._TemplateSignature__TemplateBinding,
 		    PivotTables.Properties._Element__ownedComment,
@@ -9175,7 +9076,6 @@
 		};
 	
 		private static final ExecutorProperty[] _TemplateableElement = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Element__ownedComment,
 		    PivotTables.Properties._TemplateableElement__ownedTemplateSignature,
@@ -9188,7 +9088,6 @@
 		private static final ExecutorProperty[] _TupleLiteralExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -9207,7 +9106,6 @@
 		};
 	
 		private static final ExecutorProperty[] _TupleLiteralPart = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._TupleLiteralPart__TupleLiteralExp,
 		    PivotTables.Properties._VariableDeclaration__VariableExp,
@@ -9223,10 +9121,8 @@
 		private static final ExecutorProperty[] _TupleType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -9255,10 +9151,8 @@
 		private static final ExecutorProperty[] _Type = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -9283,7 +9177,6 @@
 		private static final ExecutorProperty[] _TypeExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -9302,10 +9195,8 @@
 		};
 	
 		private static final ExecutorProperty[] _TypeTemplateParameter = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._TemplateParameter__TemplateParameterSubstitution,
-		    PivotTables.Properties._TemplateParameter__TemplateSignature,
 		    PivotTables.Properties._TypeTemplateParameter__allowSubstitutable,
 		    PivotTables.Properties._TypeTemplateParameter__constrainingType,
 		    PivotTables.Properties._TemplateParameter__default,
@@ -9317,7 +9208,6 @@
 		};
 	
 		private static final ExecutorProperty[] _TypedElement = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._NamedElement__isStatic,
 		    PivotTables.Properties._NamedElement__name,
@@ -9328,7 +9218,6 @@
 		};
 	
 		private static final ExecutorProperty[] _TypedMultiplicityElement = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._MultiplicityElement__isOrdered,
 		    PivotTables.Properties._NamedElement__isStatic,
@@ -9347,7 +9236,6 @@
 		private static final ExecutorProperty[] _UnlimitedNaturalLiteralExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -9368,10 +9256,8 @@
 		private static final ExecutorProperty[] _UnspecifiedType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
@@ -9400,7 +9286,6 @@
 		private static final ExecutorProperty[] _UnspecifiedValueExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -9418,7 +9303,6 @@
 		};
 	
 		private static final ExecutorProperty[] _ValueSpecification = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._ValueSpecification__Constraint,
 		    PivotTables.Properties._NamedElement__isStatic,
@@ -9432,7 +9316,6 @@
 		};
 	
 		private static final ExecutorProperty[] _Variable = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Variable__IterateExp,
 		    PivotTables.Properties._Variable__LetExp,
@@ -9450,7 +9333,6 @@
 		};
 	
 		private static final ExecutorProperty[] _VariableDeclaration = {
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._VariableDeclaration__VariableExp,
 		    PivotTables.Properties._NamedElement__isStatic,
@@ -9464,7 +9346,6 @@
 		private static final ExecutorProperty[] _VariableExp = {
 		    PivotTables.Properties._OclExpression__CallExp,
 		    PivotTables.Properties._OclExpression__CollectionItem,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._OclExpression__ConstructorPart,
 		    PivotTables.Properties._OclExpression__LetExp,
@@ -9490,10 +9371,8 @@
 		private static final ExecutorProperty[] _VoidType = {
 		    PivotTables.Properties._Type__ClassifierType,
 		    PivotTables.Properties._Type__CollectionType,
-		    PivotTables.Properties._Element__Comment,
 		    PivotTables.Properties._Element__Constraint,
 		    PivotTables.Properties._Type__DataType,
-		    PivotTables.Properties._Type__Operation,
 		    PivotTables.Properties._Type__Type,
 		    PivotTables.Properties._Type__TypeExp,
 		    PivotTables.Properties._Type__TypeTemplateParameter,
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/BooleanLiteralExpBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/BooleanLiteralExpBodies.java
index 0e1fc69..4e752bf 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/BooleanLiteralExpBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/BooleanLiteralExpBodies.java
@@ -63,12 +63,12 @@
 			final Value T_ClassClassifier_Boolean_ = valueFactory.createTypeValue(OCLstdlibTables.Types._Boolean);
 			
 			
-			Value A_symbol_0 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+			Value A_symbol_71 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 			
-			DomainType static_A_symbol_1 = valueFactory.typeOf(A_symbol_0, T_ClassClassifier_Boolean_);
-			LibraryBinaryOperation dynamic_A_symbol_1 = (LibraryBinaryOperation)static_A_symbol_1.lookupImplementation(standardLibrary, O_OclAny__eq_);
-			Value A_symbol_1 = dynamic_A_symbol_1.evaluate(evaluator, T_Boolean, A_symbol_0, T_ClassClassifier_Boolean_);
-			return A_symbol_1;
+			DomainType static_A_symbol_72 = valueFactory.typeOf(A_symbol_71, T_ClassClassifier_Boolean_);
+			LibraryBinaryOperation dynamic_A_symbol_72 = (LibraryBinaryOperation)static_A_symbol_72.lookupImplementation(standardLibrary, O_OclAny__eq_);
+			Value A_symbol_72 = dynamic_A_symbol_72.evaluate(evaluator, T_Boolean, A_symbol_71, T_ClassClassifier_Boolean_);
+			return A_symbol_72;
 		}
 	}
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/CollectionItemBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/CollectionItemBodies.java
index 136e44e..250cee0 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/CollectionItemBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/CollectionItemBodies.java
@@ -65,17 +65,17 @@
 			final LibraryProperty IP_CollectionItem_item = P_CollectionItem_item.getImplementation();
 			
 			
-			Value A_symbol_92 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+			Value A_symbol_67 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 			
 			
-			Value A_symbol_93 = IP_CollectionItem_item.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CollectionItem_item);
+			Value A_symbol_68 = IP_CollectionItem_item.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CollectionItem_item);
 			
-			Value A_symbol_94 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_93, P_TypedElement_type);
+			Value A_symbol_69 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_68, P_TypedElement_type);
 			
-			DomainType static_A_symbol_95 = valueFactory.typeOf(A_symbol_92, A_symbol_94);
-			LibraryBinaryOperation dynamic_A_symbol_95 = (LibraryBinaryOperation)static_A_symbol_95.lookupImplementation(standardLibrary, O_OclAny__eq_);
-			Value A_symbol_95 = dynamic_A_symbol_95.evaluate(evaluator, T_Boolean, A_symbol_92, A_symbol_94);
-			return A_symbol_95;
+			DomainType static_A_symbol_70 = valueFactory.typeOf(A_symbol_67, A_symbol_69);
+			LibraryBinaryOperation dynamic_A_symbol_70 = (LibraryBinaryOperation)static_A_symbol_70.lookupImplementation(standardLibrary, O_OclAny__eq_);
+			Value A_symbol_70 = dynamic_A_symbol_70.evaluate(evaluator, T_Boolean, A_symbol_67, A_symbol_69);
+			return A_symbol_70;
 		}
 	}
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/CollectionLiteralExpBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/CollectionLiteralExpBodies.java
index 65815d5..a7b2a2f 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/CollectionLiteralExpBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/CollectionLiteralExpBodies.java
@@ -61,44 +61,44 @@
 			final ExecutorType T_Pivot_ecore__pivot__CollectionKind = PivotTables.Types._CollectionKind;
 			final ExecutorProperty P_CollectionLiteralExp_kind = PivotTables.Properties._CollectionLiteralExp__kind;
 			final LibraryProperty IP_CollectionLiteralExp_kind = P_CollectionLiteralExp_kind.getImplementation();
-			final Value A_symbol_57 = valueFactory.createEnumerationLiteralValue(PivotTables.EnumerationLiterals._CollectionKind__Bag);
+			final Value A_symbol_38 = valueFactory.createEnumerationLiteralValue(PivotTables.EnumerationLiterals._CollectionKind__Bag);
 			final ExecutorOperation O_OclAny_oclIsKindOf = OCLstdlibTables.Operations._OclAny__oclIsKindOf;
 			final ExecutorType T_Pivot_ecore__pivot__Type = PivotTables.Types._Type;
 			final ExecutorProperty P_TypedElement_type = PivotTables.Properties._TypedElement__type;
 			final LibraryProperty IP_TypedElement_type = P_TypedElement_type.getImplementation();
 			final Value T_ClassClassifier_Pivot_ecore__pivot__BagType_ = valueFactory.createTypeValue(PivotTables.Types._BagType);
 			
-			Value leftA_symbol_58;
+			Value leftA_symbol_39;
 			try {
 				
-				Value A_symbol_59 = IP_CollectionLiteralExp_kind.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionKind, self, P_CollectionLiteralExp_kind);
+				Value A_symbol_40 = IP_CollectionLiteralExp_kind.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionKind, self, P_CollectionLiteralExp_kind);
 				
 				
-				DomainType static_A_symbol_60 = valueFactory.typeOf(A_symbol_59, A_symbol_57);
-				LibraryBinaryOperation dynamic_A_symbol_60 = (LibraryBinaryOperation)static_A_symbol_60.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_60 = dynamic_A_symbol_60.evaluate(evaluator, T_Boolean, A_symbol_59, A_symbol_57);
-				leftA_symbol_58 = A_symbol_60;
+				DomainType static_A_symbol_41 = valueFactory.typeOf(A_symbol_40, A_symbol_38);
+				LibraryBinaryOperation dynamic_A_symbol_41 = (LibraryBinaryOperation)static_A_symbol_41.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_41 = dynamic_A_symbol_41.evaluate(evaluator, T_Boolean, A_symbol_40, A_symbol_38);
+				leftA_symbol_39 = A_symbol_41;
 			} catch (InvalidValueException e) {
-				leftA_symbol_58 = valueFactory.createInvalidValue(e);
+				leftA_symbol_39 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_60 = leftA_symbol_58;
-			Value rightA_symbol_58;
+			Value A_symbol_41 = leftA_symbol_39;
+			Value rightA_symbol_39;
 			try {
 				
-				Value A_symbol_61 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_42 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
-				DomainType static_A_symbol_62 = valueFactory.typeOf(A_symbol_61);
-				LibraryBinaryOperation dynamic_A_symbol_62 = (LibraryBinaryOperation)static_A_symbol_62.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-				Value A_symbol_62 = dynamic_A_symbol_62.evaluate(evaluator, T_Boolean, A_symbol_61, T_ClassClassifier_Pivot_ecore__pivot__BagType_);
-				rightA_symbol_58 = A_symbol_62;
+				DomainType static_A_symbol_43 = valueFactory.typeOf(A_symbol_42);
+				LibraryBinaryOperation dynamic_A_symbol_43 = (LibraryBinaryOperation)static_A_symbol_43.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+				Value A_symbol_43 = dynamic_A_symbol_43.evaluate(evaluator, T_Boolean, A_symbol_42, T_ClassClassifier_Pivot_ecore__pivot__BagType_);
+				rightA_symbol_39 = A_symbol_43;
 			} catch (InvalidValueException e) {
-				rightA_symbol_58 = valueFactory.createInvalidValue(e);
+				rightA_symbol_39 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_62 = rightA_symbol_58;
-			DomainType static_A_symbol_58 = valueFactory.typeOf(A_symbol_60);
-			LibraryBinaryOperation dynamic_A_symbol_58 = (LibraryBinaryOperation)static_A_symbol_58.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_58 = dynamic_A_symbol_58.evaluate(evaluator, T_Boolean, A_symbol_60, A_symbol_62);
-			return A_symbol_58;
+			Value A_symbol_43 = rightA_symbol_39;
+			DomainType static_A_symbol_39 = valueFactory.typeOf(A_symbol_41);
+			LibraryBinaryOperation dynamic_A_symbol_39 = (LibraryBinaryOperation)static_A_symbol_39.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_39 = dynamic_A_symbol_39.evaluate(evaluator, T_Boolean, A_symbol_41, A_symbol_43);
+			return A_symbol_39;
 		}
 	}
 
@@ -120,16 +120,16 @@
 			final ExecutorType T_Pivot_ecore__pivot__CollectionKind = PivotTables.Types._CollectionKind;
 			final ExecutorProperty P_CollectionLiteralExp_kind = PivotTables.Properties._CollectionLiteralExp__kind;
 			final LibraryProperty IP_CollectionLiteralExp_kind = P_CollectionLiteralExp_kind.getImplementation();
-			final Value A_symbol_63 = valueFactory.createEnumerationLiteralValue(PivotTables.EnumerationLiterals._CollectionKind__Collection);
+			final Value A_symbol_44 = valueFactory.createEnumerationLiteralValue(PivotTables.EnumerationLiterals._CollectionKind__Collection);
 			
 			
-			Value A_symbol_64 = IP_CollectionLiteralExp_kind.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionKind, self, P_CollectionLiteralExp_kind);
+			Value A_symbol_45 = IP_CollectionLiteralExp_kind.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionKind, self, P_CollectionLiteralExp_kind);
 			
 			
-			DomainType static_A_symbol_65 = valueFactory.typeOf(A_symbol_64, A_symbol_63);
-			LibraryBinaryOperation dynamic_A_symbol_65 = (LibraryBinaryOperation)static_A_symbol_65.lookupImplementation(standardLibrary, O_OclAny__lt__gt_);
-			Value A_symbol_65 = dynamic_A_symbol_65.evaluate(evaluator, T_Boolean, A_symbol_64, A_symbol_63);
-			return A_symbol_65;
+			DomainType static_A_symbol_46 = valueFactory.typeOf(A_symbol_45, A_symbol_44);
+			LibraryBinaryOperation dynamic_A_symbol_46 = (LibraryBinaryOperation)static_A_symbol_46.lookupImplementation(standardLibrary, O_OclAny__lt__gt_);
+			Value A_symbol_46 = dynamic_A_symbol_46.evaluate(evaluator, T_Boolean, A_symbol_45, A_symbol_44);
+			return A_symbol_46;
 		}
 	}
 
@@ -153,44 +153,44 @@
 			final ExecutorType T_Pivot_ecore__pivot__CollectionKind = PivotTables.Types._CollectionKind;
 			final ExecutorProperty P_CollectionLiteralExp_kind = PivotTables.Properties._CollectionLiteralExp__kind;
 			final LibraryProperty IP_CollectionLiteralExp_kind = P_CollectionLiteralExp_kind.getImplementation();
-			final Value A_symbol_66 = valueFactory.createEnumerationLiteralValue(PivotTables.EnumerationLiterals._CollectionKind__OrderedSet);
+			final Value A_symbol_47 = valueFactory.createEnumerationLiteralValue(PivotTables.EnumerationLiterals._CollectionKind__OrderedSet);
 			final ExecutorOperation O_OclAny_oclIsKindOf = OCLstdlibTables.Operations._OclAny__oclIsKindOf;
 			final ExecutorType T_Pivot_ecore__pivot__Type = PivotTables.Types._Type;
 			final ExecutorProperty P_TypedElement_type = PivotTables.Properties._TypedElement__type;
 			final LibraryProperty IP_TypedElement_type = P_TypedElement_type.getImplementation();
 			final Value T_ClassClassifier_Pivot_ecore__pivot__OrderedSetType_ = valueFactory.createTypeValue(PivotTables.Types._OrderedSetType);
 			
-			Value leftA_symbol_67;
+			Value leftA_symbol_48;
 			try {
 				
-				Value A_symbol_68 = IP_CollectionLiteralExp_kind.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionKind, self, P_CollectionLiteralExp_kind);
+				Value A_symbol_49 = IP_CollectionLiteralExp_kind.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionKind, self, P_CollectionLiteralExp_kind);
 				
 				
-				DomainType static_A_symbol_69 = valueFactory.typeOf(A_symbol_68, A_symbol_66);
-				LibraryBinaryOperation dynamic_A_symbol_69 = (LibraryBinaryOperation)static_A_symbol_69.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_69 = dynamic_A_symbol_69.evaluate(evaluator, T_Boolean, A_symbol_68, A_symbol_66);
-				leftA_symbol_67 = A_symbol_69;
+				DomainType static_A_symbol_50 = valueFactory.typeOf(A_symbol_49, A_symbol_47);
+				LibraryBinaryOperation dynamic_A_symbol_50 = (LibraryBinaryOperation)static_A_symbol_50.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_50 = dynamic_A_symbol_50.evaluate(evaluator, T_Boolean, A_symbol_49, A_symbol_47);
+				leftA_symbol_48 = A_symbol_50;
 			} catch (InvalidValueException e) {
-				leftA_symbol_67 = valueFactory.createInvalidValue(e);
+				leftA_symbol_48 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_69 = leftA_symbol_67;
-			Value rightA_symbol_67;
+			Value A_symbol_50 = leftA_symbol_48;
+			Value rightA_symbol_48;
 			try {
 				
-				Value A_symbol_70 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_51 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
-				DomainType static_A_symbol_71 = valueFactory.typeOf(A_symbol_70);
-				LibraryBinaryOperation dynamic_A_symbol_71 = (LibraryBinaryOperation)static_A_symbol_71.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-				Value A_symbol_71 = dynamic_A_symbol_71.evaluate(evaluator, T_Boolean, A_symbol_70, T_ClassClassifier_Pivot_ecore__pivot__OrderedSetType_);
-				rightA_symbol_67 = A_symbol_71;
+				DomainType static_A_symbol_52 = valueFactory.typeOf(A_symbol_51);
+				LibraryBinaryOperation dynamic_A_symbol_52 = (LibraryBinaryOperation)static_A_symbol_52.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+				Value A_symbol_52 = dynamic_A_symbol_52.evaluate(evaluator, T_Boolean, A_symbol_51, T_ClassClassifier_Pivot_ecore__pivot__OrderedSetType_);
+				rightA_symbol_48 = A_symbol_52;
 			} catch (InvalidValueException e) {
-				rightA_symbol_67 = valueFactory.createInvalidValue(e);
+				rightA_symbol_48 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_71 = rightA_symbol_67;
-			DomainType static_A_symbol_67 = valueFactory.typeOf(A_symbol_69);
-			LibraryBinaryOperation dynamic_A_symbol_67 = (LibraryBinaryOperation)static_A_symbol_67.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_67 = dynamic_A_symbol_67.evaluate(evaluator, T_Boolean, A_symbol_69, A_symbol_71);
-			return A_symbol_67;
+			Value A_symbol_52 = rightA_symbol_48;
+			DomainType static_A_symbol_48 = valueFactory.typeOf(A_symbol_50);
+			LibraryBinaryOperation dynamic_A_symbol_48 = (LibraryBinaryOperation)static_A_symbol_48.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_48 = dynamic_A_symbol_48.evaluate(evaluator, T_Boolean, A_symbol_50, A_symbol_52);
+			return A_symbol_48;
 		}
 	}
 
@@ -214,44 +214,44 @@
 			final ExecutorType T_Pivot_ecore__pivot__CollectionKind = PivotTables.Types._CollectionKind;
 			final ExecutorProperty P_CollectionLiteralExp_kind = PivotTables.Properties._CollectionLiteralExp__kind;
 			final LibraryProperty IP_CollectionLiteralExp_kind = P_CollectionLiteralExp_kind.getImplementation();
-			final Value A_symbol_72 = valueFactory.createEnumerationLiteralValue(PivotTables.EnumerationLiterals._CollectionKind__Sequence);
+			final Value A_symbol_53 = valueFactory.createEnumerationLiteralValue(PivotTables.EnumerationLiterals._CollectionKind__Sequence);
 			final ExecutorOperation O_OclAny_oclIsKindOf = OCLstdlibTables.Operations._OclAny__oclIsKindOf;
 			final ExecutorType T_Pivot_ecore__pivot__Type = PivotTables.Types._Type;
 			final ExecutorProperty P_TypedElement_type = PivotTables.Properties._TypedElement__type;
 			final LibraryProperty IP_TypedElement_type = P_TypedElement_type.getImplementation();
 			final Value T_ClassClassifier_Pivot_ecore__pivot__SequenceType_ = valueFactory.createTypeValue(PivotTables.Types._SequenceType);
 			
-			Value leftA_symbol_73;
+			Value leftA_symbol_54;
 			try {
 				
-				Value A_symbol_74 = IP_CollectionLiteralExp_kind.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionKind, self, P_CollectionLiteralExp_kind);
+				Value A_symbol_55 = IP_CollectionLiteralExp_kind.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionKind, self, P_CollectionLiteralExp_kind);
 				
 				
-				DomainType static_A_symbol_75 = valueFactory.typeOf(A_symbol_74, A_symbol_72);
-				LibraryBinaryOperation dynamic_A_symbol_75 = (LibraryBinaryOperation)static_A_symbol_75.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_75 = dynamic_A_symbol_75.evaluate(evaluator, T_Boolean, A_symbol_74, A_symbol_72);
-				leftA_symbol_73 = A_symbol_75;
+				DomainType static_A_symbol_56 = valueFactory.typeOf(A_symbol_55, A_symbol_53);
+				LibraryBinaryOperation dynamic_A_symbol_56 = (LibraryBinaryOperation)static_A_symbol_56.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_56 = dynamic_A_symbol_56.evaluate(evaluator, T_Boolean, A_symbol_55, A_symbol_53);
+				leftA_symbol_54 = A_symbol_56;
 			} catch (InvalidValueException e) {
-				leftA_symbol_73 = valueFactory.createInvalidValue(e);
+				leftA_symbol_54 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_75 = leftA_symbol_73;
-			Value rightA_symbol_73;
+			Value A_symbol_56 = leftA_symbol_54;
+			Value rightA_symbol_54;
 			try {
 				
-				Value A_symbol_76 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_57 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
-				DomainType static_A_symbol_77 = valueFactory.typeOf(A_symbol_76);
-				LibraryBinaryOperation dynamic_A_symbol_77 = (LibraryBinaryOperation)static_A_symbol_77.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-				Value A_symbol_77 = dynamic_A_symbol_77.evaluate(evaluator, T_Boolean, A_symbol_76, T_ClassClassifier_Pivot_ecore__pivot__SequenceType_);
-				rightA_symbol_73 = A_symbol_77;
+				DomainType static_A_symbol_58 = valueFactory.typeOf(A_symbol_57);
+				LibraryBinaryOperation dynamic_A_symbol_58 = (LibraryBinaryOperation)static_A_symbol_58.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+				Value A_symbol_58 = dynamic_A_symbol_58.evaluate(evaluator, T_Boolean, A_symbol_57, T_ClassClassifier_Pivot_ecore__pivot__SequenceType_);
+				rightA_symbol_54 = A_symbol_58;
 			} catch (InvalidValueException e) {
-				rightA_symbol_73 = valueFactory.createInvalidValue(e);
+				rightA_symbol_54 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_77 = rightA_symbol_73;
-			DomainType static_A_symbol_73 = valueFactory.typeOf(A_symbol_75);
-			LibraryBinaryOperation dynamic_A_symbol_73 = (LibraryBinaryOperation)static_A_symbol_73.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_73 = dynamic_A_symbol_73.evaluate(evaluator, T_Boolean, A_symbol_75, A_symbol_77);
-			return A_symbol_73;
+			Value A_symbol_58 = rightA_symbol_54;
+			DomainType static_A_symbol_54 = valueFactory.typeOf(A_symbol_56);
+			LibraryBinaryOperation dynamic_A_symbol_54 = (LibraryBinaryOperation)static_A_symbol_54.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_54 = dynamic_A_symbol_54.evaluate(evaluator, T_Boolean, A_symbol_56, A_symbol_58);
+			return A_symbol_54;
 		}
 	}
 
@@ -274,44 +274,44 @@
 			final ExecutorType T_Pivot_ecore__pivot__CollectionKind = PivotTables.Types._CollectionKind;
 			final ExecutorProperty P_CollectionLiteralExp_kind = PivotTables.Properties._CollectionLiteralExp__kind;
 			final LibraryProperty IP_CollectionLiteralExp_kind = P_CollectionLiteralExp_kind.getImplementation();
-			final Value A_symbol_78 = valueFactory.createEnumerationLiteralValue(PivotTables.EnumerationLiterals._CollectionKind__Set);
+			final Value A_symbol_59 = valueFactory.createEnumerationLiteralValue(PivotTables.EnumerationLiterals._CollectionKind__Set);
 			final ExecutorOperation O_OclAny_oclIsKindOf = OCLstdlibTables.Operations._OclAny__oclIsKindOf;
 			final ExecutorType T_Pivot_ecore__pivot__Type = PivotTables.Types._Type;
 			final ExecutorProperty P_TypedElement_type = PivotTables.Properties._TypedElement__type;
 			final LibraryProperty IP_TypedElement_type = P_TypedElement_type.getImplementation();
 			final Value T_ClassClassifier_Pivot_ecore__pivot__SetType_ = valueFactory.createTypeValue(PivotTables.Types._SetType);
 			
-			Value leftA_symbol_79;
+			Value leftA_symbol_60;
 			try {
 				
-				Value A_symbol_80 = IP_CollectionLiteralExp_kind.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionKind, self, P_CollectionLiteralExp_kind);
+				Value A_symbol_61 = IP_CollectionLiteralExp_kind.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionKind, self, P_CollectionLiteralExp_kind);
 				
 				
-				DomainType static_A_symbol_81 = valueFactory.typeOf(A_symbol_80, A_symbol_78);
-				LibraryBinaryOperation dynamic_A_symbol_81 = (LibraryBinaryOperation)static_A_symbol_81.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_81 = dynamic_A_symbol_81.evaluate(evaluator, T_Boolean, A_symbol_80, A_symbol_78);
-				leftA_symbol_79 = A_symbol_81;
+				DomainType static_A_symbol_62 = valueFactory.typeOf(A_symbol_61, A_symbol_59);
+				LibraryBinaryOperation dynamic_A_symbol_62 = (LibraryBinaryOperation)static_A_symbol_62.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_62 = dynamic_A_symbol_62.evaluate(evaluator, T_Boolean, A_symbol_61, A_symbol_59);
+				leftA_symbol_60 = A_symbol_62;
 			} catch (InvalidValueException e) {
-				leftA_symbol_79 = valueFactory.createInvalidValue(e);
+				leftA_symbol_60 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_81 = leftA_symbol_79;
-			Value rightA_symbol_79;
+			Value A_symbol_62 = leftA_symbol_60;
+			Value rightA_symbol_60;
 			try {
 				
-				Value A_symbol_82 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_63 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
-				DomainType static_A_symbol_83 = valueFactory.typeOf(A_symbol_82);
-				LibraryBinaryOperation dynamic_A_symbol_83 = (LibraryBinaryOperation)static_A_symbol_83.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-				Value A_symbol_83 = dynamic_A_symbol_83.evaluate(evaluator, T_Boolean, A_symbol_82, T_ClassClassifier_Pivot_ecore__pivot__SetType_);
-				rightA_symbol_79 = A_symbol_83;
+				DomainType static_A_symbol_64 = valueFactory.typeOf(A_symbol_63);
+				LibraryBinaryOperation dynamic_A_symbol_64 = (LibraryBinaryOperation)static_A_symbol_64.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+				Value A_symbol_64 = dynamic_A_symbol_64.evaluate(evaluator, T_Boolean, A_symbol_63, T_ClassClassifier_Pivot_ecore__pivot__SetType_);
+				rightA_symbol_60 = A_symbol_64;
 			} catch (InvalidValueException e) {
-				rightA_symbol_79 = valueFactory.createInvalidValue(e);
+				rightA_symbol_60 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_83 = rightA_symbol_79;
-			DomainType static_A_symbol_79 = valueFactory.typeOf(A_symbol_81);
-			LibraryBinaryOperation dynamic_A_symbol_79 = (LibraryBinaryOperation)static_A_symbol_79.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_79 = dynamic_A_symbol_79.evaluate(evaluator, T_Boolean, A_symbol_81, A_symbol_83);
-			return A_symbol_79;
+			Value A_symbol_64 = rightA_symbol_60;
+			DomainType static_A_symbol_60 = valueFactory.typeOf(A_symbol_62);
+			LibraryBinaryOperation dynamic_A_symbol_60 = (LibraryBinaryOperation)static_A_symbol_60.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_60 = dynamic_A_symbol_60.evaluate(evaluator, T_Boolean, A_symbol_62, A_symbol_64);
+			return A_symbol_60;
 		}
 	}
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/ConstraintBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/ConstraintBodies.java
index 7fd9e83..dfd7628 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/ConstraintBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/ConstraintBodies.java
@@ -62,7 +62,7 @@
 			final ValueFactory valueFactory = evaluator.getValueFactory();
 			final DomainStandardLibrary standardLibrary = valueFactory.getStandardLibrary();
 			final ExecutorType T_Boolean = OCLstdlibTables.Types._Boolean;
-			final ExecutorOperation O_Collection_forAll = OCLstdlibTables.Operations._Collection__0_forAll;
+			final ExecutorOperation O_Collection_forAll = OCLstdlibTables.Operations._Collection__1_forAll;
 			final ExecutorType T_Pivot_ecore__pivot__Constraint = PivotTables.Types._Constraint;
 			final DomainCollectionType T_OrderedSet_Pivot_ecore__pivot__Constraint_ = standardLibrary.getOrderedSetType(T_Pivot_ecore__pivot__Constraint);
 			final ExecutorOperation O_OrderedSet_excluding = OCLstdlibTables.Operations._OrderedSet__excluding;
@@ -80,69 +80,69 @@
 			final LibraryProperty IP_Constraint_stereotype = P_Constraint_stereotype.getImplementation();
 			
 			
-			Value A_symbol_400 = IP_Constraint_context.evaluate(evaluator, T_Pivot_ecore__pivot__NamedElement, self, P_Constraint_context);
+			Value A_symbol_359 = IP_Constraint_context.evaluate(evaluator, T_Pivot_ecore__pivot__NamedElement, self, P_Constraint_context);
 			
-			Value A_symbol_401 = IP_NamedElement_ownedRule.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Constraint_, A_symbol_400, P_NamedElement_ownedRule);
+			Value A_symbol_360 = IP_NamedElement_ownedRule.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Constraint_, A_symbol_359, P_NamedElement_ownedRule);
 			
 			
-			DomainType static_A_symbol_398 = valueFactory.typeOf(A_symbol_401);
-			LibraryBinaryOperation dynamic_A_symbol_398 = (LibraryBinaryOperation)static_A_symbol_398.lookupImplementation(standardLibrary, O_OrderedSet_excluding);
-			Value A_symbol_398 = dynamic_A_symbol_398.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Constraint_, A_symbol_401, self);
+			DomainType static_A_symbol_357 = valueFactory.typeOf(A_symbol_360);
+			LibraryBinaryOperation dynamic_A_symbol_357 = (LibraryBinaryOperation)static_A_symbol_357.lookupImplementation(standardLibrary, O_OrderedSet_excluding);
+			Value A_symbol_357 = dynamic_A_symbol_357.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Constraint_, A_symbol_360, self);
 			
 			/** 
 			 * Implementation of the iterator body.
 			 */
-			AbstractBinaryOperation body_A_symbol_399 = new AbstractBinaryOperation()
+			AbstractBinaryOperation body_A_symbol_358 = new AbstractBinaryOperation()
 			{
 			/*
 			name <> self.name or stereotype <> self.stereotype
 			*/
 				public Value evaluate(DomainEvaluator evaluator, DomainType returnType, Value sourceValue, Value iterator1) throws InvalidValueException {
 					final Value V_1_ = iterator1;	// iterator: 1_
-					Value leftA_symbol_402;
+					Value leftA_symbol_361;
 					try {
 						
-						Value A_symbol_403 = IP_NamedElement_name.evaluate(evaluator, T_String, V_1_, P_NamedElement_name);
+						Value A_symbol_362 = IP_NamedElement_name.evaluate(evaluator, T_String, V_1_, P_NamedElement_name);
 						
 						
-						Value A_symbol_404 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+						Value A_symbol_363 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 						
-						DomainType static_A_symbol_405 = valueFactory.typeOf(A_symbol_403, A_symbol_404);
-						LibraryBinaryOperation dynamic_A_symbol_405 = (LibraryBinaryOperation)static_A_symbol_405.lookupImplementation(standardLibrary, O_String__lt__gt_);
-						Value A_symbol_405 = dynamic_A_symbol_405.evaluate(evaluator, T_Boolean, A_symbol_403, A_symbol_404);
-						leftA_symbol_402 = A_symbol_405;
+						DomainType static_A_symbol_364 = valueFactory.typeOf(A_symbol_362, A_symbol_363);
+						LibraryBinaryOperation dynamic_A_symbol_364 = (LibraryBinaryOperation)static_A_symbol_364.lookupImplementation(standardLibrary, O_String__lt__gt_);
+						Value A_symbol_364 = dynamic_A_symbol_364.evaluate(evaluator, T_Boolean, A_symbol_362, A_symbol_363);
+						leftA_symbol_361 = A_symbol_364;
 					} catch (InvalidValueException e) {
-						leftA_symbol_402 = valueFactory.createInvalidValue(e);
+						leftA_symbol_361 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_405 = leftA_symbol_402;
-					Value rightA_symbol_402;
+					Value A_symbol_364 = leftA_symbol_361;
+					Value rightA_symbol_361;
 					try {
 						
-						Value A_symbol_406 = IP_Constraint_stereotype.evaluate(evaluator, T_String, V_1_, P_Constraint_stereotype);
+						Value A_symbol_365 = IP_Constraint_stereotype.evaluate(evaluator, T_String, V_1_, P_Constraint_stereotype);
 						
 						
-						Value A_symbol_407 = IP_Constraint_stereotype.evaluate(evaluator, T_String, self, P_Constraint_stereotype);
+						Value A_symbol_366 = IP_Constraint_stereotype.evaluate(evaluator, T_String, self, P_Constraint_stereotype);
 						
-						DomainType static_A_symbol_408 = valueFactory.typeOf(A_symbol_406, A_symbol_407);
-						LibraryBinaryOperation dynamic_A_symbol_408 = (LibraryBinaryOperation)static_A_symbol_408.lookupImplementation(standardLibrary, O_String__lt__gt_);
-						Value A_symbol_408 = dynamic_A_symbol_408.evaluate(evaluator, T_Boolean, A_symbol_406, A_symbol_407);
-						rightA_symbol_402 = A_symbol_408;
+						DomainType static_A_symbol_367 = valueFactory.typeOf(A_symbol_365, A_symbol_366);
+						LibraryBinaryOperation dynamic_A_symbol_367 = (LibraryBinaryOperation)static_A_symbol_367.lookupImplementation(standardLibrary, O_String__lt__gt_);
+						Value A_symbol_367 = dynamic_A_symbol_367.evaluate(evaluator, T_Boolean, A_symbol_365, A_symbol_366);
+						rightA_symbol_361 = A_symbol_367;
 					} catch (InvalidValueException e) {
-						rightA_symbol_402 = valueFactory.createInvalidValue(e);
+						rightA_symbol_361 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_408 = rightA_symbol_402;
-					DomainType static_A_symbol_402 = valueFactory.typeOf(A_symbol_405);
-					LibraryBinaryOperation dynamic_A_symbol_402 = (LibraryBinaryOperation)static_A_symbol_402.lookupImplementation(standardLibrary, O_Boolean_or);
-					Value A_symbol_402 = dynamic_A_symbol_402.evaluate(evaluator, T_Boolean, A_symbol_405, A_symbol_408);
-					return A_symbol_402;
+					Value A_symbol_367 = rightA_symbol_361;
+					DomainType static_A_symbol_361 = valueFactory.typeOf(A_symbol_364);
+					LibraryBinaryOperation dynamic_A_symbol_361 = (LibraryBinaryOperation)static_A_symbol_361.lookupImplementation(standardLibrary, O_Boolean_or);
+					Value A_symbol_361 = dynamic_A_symbol_361.evaluate(evaluator, T_Boolean, A_symbol_364, A_symbol_367);
+					return A_symbol_361;
 				}
 			};
-			DomainType static_A_symbol_399 = A_symbol_398.getType();
-			LibraryIteration dynamic_A_symbol_399 = (LibraryIteration)static_A_symbol_399.lookupImplementation(standardLibrary, O_Collection_forAll);
-			Value acc_A_symbol_399 = dynamic_A_symbol_399.createAccumulatorValue(evaluator, T_Boolean, T_Boolean);
-			ExecutorSingleIterationManager manager_A_symbol_399 = new ExecutorSingleIterationManager(evaluator, T_Boolean, body_A_symbol_399, (CollectionValue)A_symbol_398, acc_A_symbol_399);
-			Value A_symbol_399 = dynamic_A_symbol_399.evaluateIteration(manager_A_symbol_399);
-			return A_symbol_399;
+			DomainType static_A_symbol_358 = A_symbol_357.getType();
+			LibraryIteration dynamic_A_symbol_358 = (LibraryIteration)static_A_symbol_358.lookupImplementation(standardLibrary, O_Collection_forAll);
+			Value acc_A_symbol_358 = dynamic_A_symbol_358.createAccumulatorValue(evaluator, T_Boolean, T_Boolean);
+			ExecutorSingleIterationManager manager_A_symbol_358 = new ExecutorSingleIterationManager(evaluator, T_Boolean, body_A_symbol_358, (CollectionValue)A_symbol_357, acc_A_symbol_358);
+			Value A_symbol_358 = dynamic_A_symbol_358.evaluateIteration(manager_A_symbol_358);
+			return A_symbol_358;
 		}
 	}
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/ElementBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/ElementBodies.java
index b6c8144..e141613 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/ElementBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/ElementBodies.java
@@ -63,17 +63,17 @@
 			final ExecutorOperation O_Element_allOwnedElements = PivotTables.Operations._Element__allOwnedElements;
 			
 			
-			DomainType static_A_symbol_53 = valueFactory.typeOf(self);
-			LibraryUnaryOperation dynamic_A_symbol_53 = (LibraryUnaryOperation)static_A_symbol_53.lookupImplementation(standardLibrary, O_Element_allOwnedElements);
-			Value A_symbol_53 = dynamic_A_symbol_53.evaluate(evaluator, T_Set_Pivot_ecore__pivot__Element_, self);
+			DomainType static_A_symbol_327 = valueFactory.typeOf(self);
+			LibraryUnaryOperation dynamic_A_symbol_327 = (LibraryUnaryOperation)static_A_symbol_327.lookupImplementation(standardLibrary, O_Element_allOwnedElements);
+			Value A_symbol_327 = dynamic_A_symbol_327.evaluate(evaluator, T_Set_Pivot_ecore__pivot__Element_, self);
 			
-			DomainType static_A_symbol_54 = valueFactory.typeOf(A_symbol_53);
-			LibraryBinaryOperation dynamic_A_symbol_54 = (LibraryBinaryOperation)static_A_symbol_54.lookupImplementation(standardLibrary, O_Collection_includes);
-			Value A_symbol_54 = dynamic_A_symbol_54.evaluate(evaluator, T_Boolean, A_symbol_53, self);
-			DomainType static_A_symbol_55 = valueFactory.typeOf(A_symbol_54);
-			LibraryUnaryOperation dynamic_A_symbol_55 = (LibraryUnaryOperation)static_A_symbol_55.lookupImplementation(standardLibrary, O_Boolean_not);
-			Value A_symbol_55 = dynamic_A_symbol_55.evaluate(evaluator, T_Boolean, A_symbol_54);
-			return A_symbol_55;
+			DomainType static_A_symbol_328 = valueFactory.typeOf(A_symbol_327);
+			LibraryBinaryOperation dynamic_A_symbol_328 = (LibraryBinaryOperation)static_A_symbol_328.lookupImplementation(standardLibrary, O_Collection_includes);
+			Value A_symbol_328 = dynamic_A_symbol_328.evaluate(evaluator, T_Boolean, A_symbol_327, self);
+			DomainType static_A_symbol_329 = valueFactory.typeOf(A_symbol_328);
+			LibraryUnaryOperation dynamic_A_symbol_329 = (LibraryUnaryOperation)static_A_symbol_329.lookupImplementation(standardLibrary, O_Boolean_not);
+			Value A_symbol_329 = dynamic_A_symbol_329.evaluate(evaluator, T_Boolean, A_symbol_328);
+			return A_symbol_329;
 		}
 	}
 
@@ -95,15 +95,13 @@
 			final ExecutorOperation O_OclElement_oclContents = OCLstdlibTables.Operations._OclElement__oclContents;
 			
 			
-			DomainType static_A_symbol_56 = valueFactory.typeOf(self);
-			LibraryUnaryOperation dynamic_A_symbol_56 = (LibraryUnaryOperation)static_A_symbol_56.lookupImplementation(standardLibrary, O_OclElement_oclContents);
-			Value A_symbol_56 = dynamic_A_symbol_56.evaluate(evaluator, T_Set_OclElement_, self);
-			return A_symbol_56;
+			DomainType static_A_symbol_330 = valueFactory.typeOf(self);
+			LibraryUnaryOperation dynamic_A_symbol_330 = (LibraryUnaryOperation)static_A_symbol_330.lookupImplementation(standardLibrary, O_OclElement_oclContents);
+			Value A_symbol_330 = dynamic_A_symbol_330.evaluate(evaluator, T_Set_OclElement_, self);
+			return A_symbol_330;
 		}
 	}
 
 
-
-
 }
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/EnumLiteralExpBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/EnumLiteralExpBodies.java
index c48731a..f30d01a 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/EnumLiteralExpBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/EnumLiteralExpBodies.java
@@ -68,17 +68,17 @@
 			final LibraryProperty IP_EnumLiteralExp_referredEnumLiteral = P_EnumLiteralExp_referredEnumLiteral.getImplementation();
 			
 			
-			Value A_symbol_110 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+			Value A_symbol_339 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 			
 			
-			Value A_symbol_111 = IP_EnumLiteralExp_referredEnumLiteral.evaluate(evaluator, T_Pivot_ecore__pivot__EnumerationLiteral, self, P_EnumLiteralExp_referredEnumLiteral);
+			Value A_symbol_340 = IP_EnumLiteralExp_referredEnumLiteral.evaluate(evaluator, T_Pivot_ecore__pivot__EnumerationLiteral, self, P_EnumLiteralExp_referredEnumLiteral);
 			
-			Value A_symbol_112 = IP_EnumerationLiteral_enumeration.evaluate(evaluator, T_Pivot_ecore__pivot__Enumeration, A_symbol_111, P_EnumerationLiteral_enumeration);
+			Value A_symbol_341 = IP_EnumerationLiteral_enumeration.evaluate(evaluator, T_Pivot_ecore__pivot__Enumeration, A_symbol_340, P_EnumerationLiteral_enumeration);
 			
-			DomainType static_A_symbol_113 = valueFactory.typeOf(A_symbol_110, A_symbol_112);
-			LibraryBinaryOperation dynamic_A_symbol_113 = (LibraryBinaryOperation)static_A_symbol_113.lookupImplementation(standardLibrary, O_OclAny__eq_);
-			Value A_symbol_113 = dynamic_A_symbol_113.evaluate(evaluator, T_Boolean, A_symbol_110, A_symbol_112);
-			return A_symbol_113;
+			DomainType static_A_symbol_342 = valueFactory.typeOf(A_symbol_339, A_symbol_341);
+			LibraryBinaryOperation dynamic_A_symbol_342 = (LibraryBinaryOperation)static_A_symbol_342.lookupImplementation(standardLibrary, O_OclAny__eq_);
+			Value A_symbol_342 = dynamic_A_symbol_342.evaluate(evaluator, T_Boolean, A_symbol_339, A_symbol_341);
+			return A_symbol_342;
 		}
 	}
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IfExpBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IfExpBodies.java
index 0c845ae..35ef22b 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IfExpBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IfExpBodies.java
@@ -66,14 +66,14 @@
 			final Value T_ClassClassifier_Boolean_ = valueFactory.createTypeValue(OCLstdlibTables.Types._Boolean);
 			
 			
-			Value A_symbol_381 = IP_IfExp_condition.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_IfExp_condition);
+			Value A_symbol_0 = IP_IfExp_condition.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_IfExp_condition);
 			
-			Value A_symbol_382 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_381, P_TypedElement_type);
+			Value A_symbol_1 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_0, P_TypedElement_type);
 			
-			DomainType static_A_symbol_383 = valueFactory.typeOf(A_symbol_382, T_ClassClassifier_Boolean_);
-			LibraryBinaryOperation dynamic_A_symbol_383 = (LibraryBinaryOperation)static_A_symbol_383.lookupImplementation(standardLibrary, O_OclAny__eq_);
-			Value A_symbol_383 = dynamic_A_symbol_383.evaluate(evaluator, T_Boolean, A_symbol_382, T_ClassClassifier_Boolean_);
-			return A_symbol_383;
+			DomainType static_A_symbol_2 = valueFactory.typeOf(A_symbol_1, T_ClassClassifier_Boolean_);
+			LibraryBinaryOperation dynamic_A_symbol_2 = (LibraryBinaryOperation)static_A_symbol_2.lookupImplementation(standardLibrary, O_OclAny__eq_);
+			Value A_symbol_2 = dynamic_A_symbol_2.evaluate(evaluator, T_Boolean, A_symbol_1, T_ClassClassifier_Boolean_);
+			return A_symbol_2;
 		}
 	}
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IntegerLiteralExpBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IntegerLiteralExpBodies.java
index f1b2a00..6c4d62c 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IntegerLiteralExpBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IntegerLiteralExpBodies.java
@@ -63,12 +63,12 @@
 			final Value T_ClassClassifier_Integer_ = valueFactory.createTypeValue(OCLstdlibTables.Types._Integer);
 			
 			
-			Value A_symbol_141 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+			Value A_symbol_65 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 			
-			DomainType static_A_symbol_142 = valueFactory.typeOf(A_symbol_141, T_ClassClassifier_Integer_);
-			LibraryBinaryOperation dynamic_A_symbol_142 = (LibraryBinaryOperation)static_A_symbol_142.lookupImplementation(standardLibrary, O_OclAny__eq_);
-			Value A_symbol_142 = dynamic_A_symbol_142.evaluate(evaluator, T_Boolean, A_symbol_141, T_ClassClassifier_Integer_);
-			return A_symbol_142;
+			DomainType static_A_symbol_66 = valueFactory.typeOf(A_symbol_65, T_ClassClassifier_Integer_);
+			LibraryBinaryOperation dynamic_A_symbol_66 = (LibraryBinaryOperation)static_A_symbol_66.lookupImplementation(standardLibrary, O_OclAny__eq_);
+			Value A_symbol_66 = dynamic_A_symbol_66.evaluate(evaluator, T_Boolean, A_symbol_65, T_ClassClassifier_Integer_);
+			return A_symbol_66;
 		}
 	}
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IterateExpBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IterateExpBodies.java
index 8378b25..a1cbea8 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IterateExpBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IterateExpBodies.java
@@ -71,19 +71,19 @@
 			final LibraryProperty IP_IterateExp_result = P_IterateExp_result.getImplementation();
 			
 			
-			Value A_symbol_384 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
+			Value A_symbol_343 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
 			
-			Value A_symbol_385 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_384, P_TypedElement_type);
+			Value A_symbol_344 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_343, P_TypedElement_type);
 			
 			
-			Value A_symbol_386 = IP_IterateExp_result.evaluate(evaluator, T_Pivot_ecore__pivot__Variable, self, P_IterateExp_result);
+			Value A_symbol_345 = IP_IterateExp_result.evaluate(evaluator, T_Pivot_ecore__pivot__Variable, self, P_IterateExp_result);
 			
-			Value A_symbol_387 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_386, P_TypedElement_type);
+			Value A_symbol_346 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_345, P_TypedElement_type);
 			
-			DomainType static_A_symbol_388 = valueFactory.typeOf(A_symbol_385);
-			LibraryBinaryOperation dynamic_A_symbol_388 = (LibraryBinaryOperation)static_A_symbol_388.lookupImplementation(standardLibrary, O_OclType_conformsTo);
-			Value A_symbol_388 = dynamic_A_symbol_388.evaluate(evaluator, T_Boolean, A_symbol_385, A_symbol_387);
-			return A_symbol_388;
+			DomainType static_A_symbol_347 = valueFactory.typeOf(A_symbol_344);
+			LibraryBinaryOperation dynamic_A_symbol_347 = (LibraryBinaryOperation)static_A_symbol_347.lookupImplementation(standardLibrary, O_OclType_conformsTo);
+			Value A_symbol_347 = dynamic_A_symbol_347.evaluate(evaluator, T_Boolean, A_symbol_344, A_symbol_346);
+			return A_symbol_347;
 		}
 	}
 
@@ -115,20 +115,20 @@
 			final IntegerValue I_1 = valueFactory.integerValueOf(1);
 			
 			
-			Value A_symbol_389 = IP_IterateExp_result.evaluate(evaluator, T_Pivot_ecore__pivot__Variable, self, P_IterateExp_result);
+			Value A_symbol_348 = IP_IterateExp_result.evaluate(evaluator, T_Pivot_ecore__pivot__Variable, self, P_IterateExp_result);
 			
-			Value A_symbol_390 = IP_Variable_initExpression.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, A_symbol_389, P_Variable_initExpression);
+			Value A_symbol_349 = IP_Variable_initExpression.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, A_symbol_348, P_Variable_initExpression);
 			
-			DomainType static_A_symbol_391 = valueFactory.typeOf(A_symbol_390);
-			LibraryUnaryOperation dynamic_A_symbol_391 = (LibraryUnaryOperation)static_A_symbol_391.lookupImplementation(standardLibrary, O_OclAny_oclAsSet);
-			Value A_symbol_391 = dynamic_A_symbol_391.evaluate(evaluator, T_Set_Pivot_ecore__pivot__OclExpression_, A_symbol_390);
-			DomainType static_A_symbol_392 = valueFactory.typeOf(A_symbol_391);
-			LibraryUnaryOperation dynamic_A_symbol_392 = (LibraryUnaryOperation)static_A_symbol_392.lookupImplementation(standardLibrary, O_Collection_size);
-			Value A_symbol_392 = dynamic_A_symbol_392.evaluate(evaluator, T_Integer, A_symbol_391);
-			DomainType static_A_symbol_393 = valueFactory.typeOf(A_symbol_392, I_1);
-			LibraryBinaryOperation dynamic_A_symbol_393 = (LibraryBinaryOperation)static_A_symbol_393.lookupImplementation(standardLibrary, O_Real__eq_);
-			Value A_symbol_393 = dynamic_A_symbol_393.evaluate(evaluator, T_Boolean, A_symbol_392, I_1);
-			return A_symbol_393;
+			DomainType static_A_symbol_350 = valueFactory.typeOf(A_symbol_349);
+			LibraryUnaryOperation dynamic_A_symbol_350 = (LibraryUnaryOperation)static_A_symbol_350.lookupImplementation(standardLibrary, O_OclAny_oclAsSet);
+			Value A_symbol_350 = dynamic_A_symbol_350.evaluate(evaluator, T_Set_Pivot_ecore__pivot__OclExpression_, A_symbol_349);
+			DomainType static_A_symbol_351 = valueFactory.typeOf(A_symbol_350);
+			LibraryUnaryOperation dynamic_A_symbol_351 = (LibraryUnaryOperation)static_A_symbol_351.lookupImplementation(standardLibrary, O_Collection_size);
+			Value A_symbol_351 = dynamic_A_symbol_351.evaluate(evaluator, T_Integer, A_symbol_350);
+			DomainType static_A_symbol_352 = valueFactory.typeOf(A_symbol_351, I_1);
+			LibraryBinaryOperation dynamic_A_symbol_352 = (LibraryBinaryOperation)static_A_symbol_352.lookupImplementation(standardLibrary, O_Real__eq_);
+			Value A_symbol_352 = dynamic_A_symbol_352.evaluate(evaluator, T_Boolean, A_symbol_351, I_1);
+			return A_symbol_352;
 		}
 	}
 
@@ -155,17 +155,17 @@
 			final LibraryProperty IP_IterateExp_result = P_IterateExp_result.getImplementation();
 			
 			
-			Value A_symbol_394 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+			Value A_symbol_353 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 			
 			
-			Value A_symbol_395 = IP_IterateExp_result.evaluate(evaluator, T_Pivot_ecore__pivot__Variable, self, P_IterateExp_result);
+			Value A_symbol_354 = IP_IterateExp_result.evaluate(evaluator, T_Pivot_ecore__pivot__Variable, self, P_IterateExp_result);
 			
-			Value A_symbol_396 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_395, P_TypedElement_type);
+			Value A_symbol_355 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_354, P_TypedElement_type);
 			
-			DomainType static_A_symbol_397 = valueFactory.typeOf(A_symbol_394, A_symbol_396);
-			LibraryBinaryOperation dynamic_A_symbol_397 = (LibraryBinaryOperation)static_A_symbol_397.lookupImplementation(standardLibrary, O_OclAny__eq_);
-			Value A_symbol_397 = dynamic_A_symbol_397.evaluate(evaluator, T_Boolean, A_symbol_394, A_symbol_396);
-			return A_symbol_397;
+			DomainType static_A_symbol_356 = valueFactory.typeOf(A_symbol_353, A_symbol_355);
+			LibraryBinaryOperation dynamic_A_symbol_356 = (LibraryBinaryOperation)static_A_symbol_356.lookupImplementation(standardLibrary, O_OclAny__eq_);
+			Value A_symbol_356 = dynamic_A_symbol_356.evaluate(evaluator, T_Boolean, A_symbol_353, A_symbol_355);
+			return A_symbol_356;
 		}
 	}
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IteratorExpBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IteratorExpBodies.java
index 9617e19..f8759d3 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IteratorExpBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/IteratorExpBodies.java
@@ -79,38 +79,38 @@
 			final LibraryProperty IP_LoopExp_body = P_LoopExp_body.getImplementation();
 			final StringValue S_Boolean = valueFactory.stringValueOf("Boolean");
 			
-			Value leftA_symbol_143;
+			Value leftA_symbol_73;
 			try {
 				
-				Value A_symbol_144 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_74 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_145 = valueFactory.typeOf(A_symbol_144, S_any);
-				LibraryBinaryOperation dynamic_A_symbol_145 = (LibraryBinaryOperation)static_A_symbol_145.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_145 = dynamic_A_symbol_145.evaluate(evaluator, T_Boolean, A_symbol_144, S_any);
-				leftA_symbol_143 = A_symbol_145;
+				DomainType static_A_symbol_75 = valueFactory.typeOf(A_symbol_74, S_any);
+				LibraryBinaryOperation dynamic_A_symbol_75 = (LibraryBinaryOperation)static_A_symbol_75.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_75 = dynamic_A_symbol_75.evaluate(evaluator, T_Boolean, A_symbol_74, S_any);
+				leftA_symbol_73 = A_symbol_75;
 			} catch (InvalidValueException e) {
-				leftA_symbol_143 = valueFactory.createInvalidValue(e);
+				leftA_symbol_73 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_145 = leftA_symbol_143;
-			Value rightA_symbol_143;
+			Value A_symbol_75 = leftA_symbol_73;
+			Value rightA_symbol_73;
 			try {
 				
-				Value A_symbol_146 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
+				Value A_symbol_76 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
 				
-				Value A_symbol_147 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_146, P_TypedElement_type);
+				Value A_symbol_77 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_76, P_TypedElement_type);
 				
-				DomainType static_A_symbol_148 = valueFactory.typeOf(A_symbol_147, S_Boolean);
-				LibraryBinaryOperation dynamic_A_symbol_148 = (LibraryBinaryOperation)static_A_symbol_148.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_148 = dynamic_A_symbol_148.evaluate(evaluator, T_Boolean, A_symbol_147, S_Boolean);
-				rightA_symbol_143 = A_symbol_148;
+				DomainType static_A_symbol_78 = valueFactory.typeOf(A_symbol_77, S_Boolean);
+				LibraryBinaryOperation dynamic_A_symbol_78 = (LibraryBinaryOperation)static_A_symbol_78.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_78 = dynamic_A_symbol_78.evaluate(evaluator, T_Boolean, A_symbol_77, S_Boolean);
+				rightA_symbol_73 = A_symbol_78;
 			} catch (InvalidValueException e) {
-				rightA_symbol_143 = valueFactory.createInvalidValue(e);
+				rightA_symbol_73 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_148 = rightA_symbol_143;
-			DomainType static_A_symbol_143 = valueFactory.typeOf(A_symbol_145);
-			LibraryBinaryOperation dynamic_A_symbol_143 = (LibraryBinaryOperation)static_A_symbol_143.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_143 = dynamic_A_symbol_143.evaluate(evaluator, T_Boolean, A_symbol_145, A_symbol_148);
-			return A_symbol_143;
+			Value A_symbol_78 = rightA_symbol_73;
+			DomainType static_A_symbol_73 = valueFactory.typeOf(A_symbol_75);
+			LibraryBinaryOperation dynamic_A_symbol_73 = (LibraryBinaryOperation)static_A_symbol_73.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_73 = dynamic_A_symbol_73.evaluate(evaluator, T_Boolean, A_symbol_75, A_symbol_78);
+			return A_symbol_73;
 		}
 	}
 
@@ -143,39 +143,39 @@
 			final LibraryProperty IP_LoopExp_iterator = P_LoopExp_iterator.getImplementation();
 			final IntegerValue I_1 = valueFactory.integerValueOf(1);
 			
-			Value leftA_symbol_149;
+			Value leftA_symbol_79;
 			try {
 				
-				Value A_symbol_150 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_80 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_151 = valueFactory.typeOf(A_symbol_150, S_any);
-				LibraryBinaryOperation dynamic_A_symbol_151 = (LibraryBinaryOperation)static_A_symbol_151.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_151 = dynamic_A_symbol_151.evaluate(evaluator, T_Boolean, A_symbol_150, S_any);
-				leftA_symbol_149 = A_symbol_151;
+				DomainType static_A_symbol_81 = valueFactory.typeOf(A_symbol_80, S_any);
+				LibraryBinaryOperation dynamic_A_symbol_81 = (LibraryBinaryOperation)static_A_symbol_81.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_81 = dynamic_A_symbol_81.evaluate(evaluator, T_Boolean, A_symbol_80, S_any);
+				leftA_symbol_79 = A_symbol_81;
 			} catch (InvalidValueException e) {
-				leftA_symbol_149 = valueFactory.createInvalidValue(e);
+				leftA_symbol_79 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_151 = leftA_symbol_149;
-			Value rightA_symbol_149;
+			Value A_symbol_81 = leftA_symbol_79;
+			Value rightA_symbol_79;
 			try {
 				
-				Value A_symbol_152 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
+				Value A_symbol_82 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
 				
-				DomainType static_A_symbol_153 = valueFactory.typeOf(A_symbol_152);
-				LibraryUnaryOperation dynamic_A_symbol_153 = (LibraryUnaryOperation)static_A_symbol_153.lookupImplementation(standardLibrary, O_Collection_size);
-				Value A_symbol_153 = dynamic_A_symbol_153.evaluate(evaluator, T_Integer, A_symbol_152);
-				DomainType static_A_symbol_154 = valueFactory.typeOf(A_symbol_153, I_1);
-				LibraryBinaryOperation dynamic_A_symbol_154 = (LibraryBinaryOperation)static_A_symbol_154.lookupImplementation(standardLibrary, O_Real__eq_);
-				Value A_symbol_154 = dynamic_A_symbol_154.evaluate(evaluator, T_Boolean, A_symbol_153, I_1);
-				rightA_symbol_149 = A_symbol_154;
+				DomainType static_A_symbol_83 = valueFactory.typeOf(A_symbol_82);
+				LibraryUnaryOperation dynamic_A_symbol_83 = (LibraryUnaryOperation)static_A_symbol_83.lookupImplementation(standardLibrary, O_Collection_size);
+				Value A_symbol_83 = dynamic_A_symbol_83.evaluate(evaluator, T_Integer, A_symbol_82);
+				DomainType static_A_symbol_84 = valueFactory.typeOf(A_symbol_83, I_1);
+				LibraryBinaryOperation dynamic_A_symbol_84 = (LibraryBinaryOperation)static_A_symbol_84.lookupImplementation(standardLibrary, O_Real__eq_);
+				Value A_symbol_84 = dynamic_A_symbol_84.evaluate(evaluator, T_Boolean, A_symbol_83, I_1);
+				rightA_symbol_79 = A_symbol_84;
 			} catch (InvalidValueException e) {
-				rightA_symbol_149 = valueFactory.createInvalidValue(e);
+				rightA_symbol_79 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_154 = rightA_symbol_149;
-			DomainType static_A_symbol_149 = valueFactory.typeOf(A_symbol_151);
-			LibraryBinaryOperation dynamic_A_symbol_149 = (LibraryBinaryOperation)static_A_symbol_149.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_149 = dynamic_A_symbol_149.evaluate(evaluator, T_Boolean, A_symbol_151, A_symbol_154);
-			return A_symbol_149;
+			Value A_symbol_84 = rightA_symbol_79;
+			DomainType static_A_symbol_79 = valueFactory.typeOf(A_symbol_81);
+			LibraryBinaryOperation dynamic_A_symbol_79 = (LibraryBinaryOperation)static_A_symbol_79.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_79 = dynamic_A_symbol_79.evaluate(evaluator, T_Boolean, A_symbol_81, A_symbol_84);
+			return A_symbol_79;
 		}
 	}
 
@@ -212,46 +212,46 @@
 			final LibraryProperty IP_CallExp_source = P_CallExp_source.getImplementation();
 			final Value T_ClassClassifier_Pivot_ecore__pivot__CollectionType_ = valueFactory.createTypeValue(PivotTables.Types._CollectionType);
 			
-			Value leftA_symbol_155;
+			Value leftA_symbol_85;
 			try {
 				
-				Value A_symbol_156 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_86 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_157 = valueFactory.typeOf(A_symbol_156, S_any);
-				LibraryBinaryOperation dynamic_A_symbol_157 = (LibraryBinaryOperation)static_A_symbol_157.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_157 = dynamic_A_symbol_157.evaluate(evaluator, T_Boolean, A_symbol_156, S_any);
-				leftA_symbol_155 = A_symbol_157;
+				DomainType static_A_symbol_87 = valueFactory.typeOf(A_symbol_86, S_any);
+				LibraryBinaryOperation dynamic_A_symbol_87 = (LibraryBinaryOperation)static_A_symbol_87.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_87 = dynamic_A_symbol_87.evaluate(evaluator, T_Boolean, A_symbol_86, S_any);
+				leftA_symbol_85 = A_symbol_87;
 			} catch (InvalidValueException e) {
-				leftA_symbol_155 = valueFactory.createInvalidValue(e);
+				leftA_symbol_85 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_157 = leftA_symbol_155;
-			Value rightA_symbol_155;
+			Value A_symbol_87 = leftA_symbol_85;
+			Value rightA_symbol_85;
 			try {
 				
-				Value A_symbol_158 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_88 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
 				
-				Value A_symbol_159 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
+				Value A_symbol_89 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
 				
-				Value A_symbol_160 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_159, P_TypedElement_type);
+				Value A_symbol_90 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_89, P_TypedElement_type);
 				
-				DomainType static_A_symbol_161 = valueFactory.typeOf(A_symbol_160);
-				LibraryBinaryOperation dynamic_A_symbol_161 = (LibraryBinaryOperation)static_A_symbol_161.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
-				Value A_symbol_161 = dynamic_A_symbol_161.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_160, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-				Value A_symbol_162 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_161, P_CollectionType_elementType);
+				DomainType static_A_symbol_91 = valueFactory.typeOf(A_symbol_90);
+				LibraryBinaryOperation dynamic_A_symbol_91 = (LibraryBinaryOperation)static_A_symbol_91.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
+				Value A_symbol_91 = dynamic_A_symbol_91.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_90, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+				Value A_symbol_92 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_91, P_CollectionType_elementType);
 				
-				DomainType static_A_symbol_163 = valueFactory.typeOf(A_symbol_158, A_symbol_162);
-				LibraryBinaryOperation dynamic_A_symbol_163 = (LibraryBinaryOperation)static_A_symbol_163.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_163 = dynamic_A_symbol_163.evaluate(evaluator, T_Boolean, A_symbol_158, A_symbol_162);
-				rightA_symbol_155 = A_symbol_163;
+				DomainType static_A_symbol_93 = valueFactory.typeOf(A_symbol_88, A_symbol_92);
+				LibraryBinaryOperation dynamic_A_symbol_93 = (LibraryBinaryOperation)static_A_symbol_93.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_93 = dynamic_A_symbol_93.evaluate(evaluator, T_Boolean, A_symbol_88, A_symbol_92);
+				rightA_symbol_85 = A_symbol_93;
 			} catch (InvalidValueException e) {
-				rightA_symbol_155 = valueFactory.createInvalidValue(e);
+				rightA_symbol_85 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_163 = rightA_symbol_155;
-			DomainType static_A_symbol_155 = valueFactory.typeOf(A_symbol_157);
-			LibraryBinaryOperation dynamic_A_symbol_155 = (LibraryBinaryOperation)static_A_symbol_155.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_155 = dynamic_A_symbol_155.evaluate(evaluator, T_Boolean, A_symbol_157, A_symbol_163);
-			return A_symbol_155;
+			Value A_symbol_93 = rightA_symbol_85;
+			DomainType static_A_symbol_85 = valueFactory.typeOf(A_symbol_87);
+			LibraryBinaryOperation dynamic_A_symbol_85 = (LibraryBinaryOperation)static_A_symbol_85.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_85 = dynamic_A_symbol_85.evaluate(evaluator, T_Boolean, A_symbol_87, A_symbol_93);
+			return A_symbol_85;
 		}
 	}
 
@@ -290,51 +290,51 @@
 			final ExecutorProperty P_CallExp_source = PivotTables.Properties._CallExp__source;
 			final LibraryProperty IP_CallExp_source = P_CallExp_source.getImplementation();
 			
-			Value leftA_symbol_164;
+			Value leftA_symbol_94;
 			try {
 				
-				Value A_symbol_165 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_95 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_166 = valueFactory.typeOf(A_symbol_165, S_closure);
-				LibraryBinaryOperation dynamic_A_symbol_166 = (LibraryBinaryOperation)static_A_symbol_166.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_166 = dynamic_A_symbol_166.evaluate(evaluator, T_Boolean, A_symbol_165, S_closure);
-				leftA_symbol_164 = A_symbol_166;
+				DomainType static_A_symbol_96 = valueFactory.typeOf(A_symbol_95, S_closure);
+				LibraryBinaryOperation dynamic_A_symbol_96 = (LibraryBinaryOperation)static_A_symbol_96.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_96 = dynamic_A_symbol_96.evaluate(evaluator, T_Boolean, A_symbol_95, S_closure);
+				leftA_symbol_94 = A_symbol_96;
 			} catch (InvalidValueException e) {
-				leftA_symbol_164 = valueFactory.createInvalidValue(e);
+				leftA_symbol_94 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_166 = leftA_symbol_164;
-			Value rightA_symbol_164;
+			Value A_symbol_96 = leftA_symbol_94;
+			Value rightA_symbol_94;
 			try {
 				
-				Value A_symbol_167 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_97 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
-				DomainType static_A_symbol_168 = valueFactory.typeOf(A_symbol_167);
-				LibraryBinaryOperation dynamic_A_symbol_168 = (LibraryBinaryOperation)static_A_symbol_168.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
-				Value A_symbol_168 = dynamic_A_symbol_168.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_167, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-				Value A_symbol_169 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_168, P_CollectionType_elementType);
+				DomainType static_A_symbol_98 = valueFactory.typeOf(A_symbol_97);
+				LibraryBinaryOperation dynamic_A_symbol_98 = (LibraryBinaryOperation)static_A_symbol_98.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
+				Value A_symbol_98 = dynamic_A_symbol_98.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_97, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+				Value A_symbol_99 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_98, P_CollectionType_elementType);
 				
 				
-				Value A_symbol_170 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
+				Value A_symbol_100 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
 				
-				Value A_symbol_171 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_170, P_TypedElement_type);
+				Value A_symbol_101 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_100, P_TypedElement_type);
 				
-				DomainType static_A_symbol_172 = valueFactory.typeOf(A_symbol_171);
-				LibraryBinaryOperation dynamic_A_symbol_172 = (LibraryBinaryOperation)static_A_symbol_172.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
-				Value A_symbol_172 = dynamic_A_symbol_172.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_171, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-				Value A_symbol_173 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_172, P_CollectionType_elementType);
+				DomainType static_A_symbol_102 = valueFactory.typeOf(A_symbol_101);
+				LibraryBinaryOperation dynamic_A_symbol_102 = (LibraryBinaryOperation)static_A_symbol_102.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
+				Value A_symbol_102 = dynamic_A_symbol_102.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_101, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+				Value A_symbol_103 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_102, P_CollectionType_elementType);
 				
-				DomainType static_A_symbol_174 = valueFactory.typeOf(A_symbol_169, A_symbol_173);
-				LibraryBinaryOperation dynamic_A_symbol_174 = (LibraryBinaryOperation)static_A_symbol_174.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_174 = dynamic_A_symbol_174.evaluate(evaluator, T_Boolean, A_symbol_169, A_symbol_173);
-				rightA_symbol_164 = A_symbol_174;
+				DomainType static_A_symbol_104 = valueFactory.typeOf(A_symbol_99, A_symbol_103);
+				LibraryBinaryOperation dynamic_A_symbol_104 = (LibraryBinaryOperation)static_A_symbol_104.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_104 = dynamic_A_symbol_104.evaluate(evaluator, T_Boolean, A_symbol_99, A_symbol_103);
+				rightA_symbol_94 = A_symbol_104;
 			} catch (InvalidValueException e) {
-				rightA_symbol_164 = valueFactory.createInvalidValue(e);
+				rightA_symbol_94 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_174 = rightA_symbol_164;
-			DomainType static_A_symbol_164 = valueFactory.typeOf(A_symbol_166);
-			LibraryBinaryOperation dynamic_A_symbol_164 = (LibraryBinaryOperation)static_A_symbol_164.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_164 = dynamic_A_symbol_164.evaluate(evaluator, T_Boolean, A_symbol_166, A_symbol_174);
-			return A_symbol_164;
+			Value A_symbol_104 = rightA_symbol_94;
+			DomainType static_A_symbol_94 = valueFactory.typeOf(A_symbol_96);
+			LibraryBinaryOperation dynamic_A_symbol_94 = (LibraryBinaryOperation)static_A_symbol_94.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_94 = dynamic_A_symbol_94.evaluate(evaluator, T_Boolean, A_symbol_96, A_symbol_104);
+			return A_symbol_94;
 		}
 	}
 
@@ -367,39 +367,39 @@
 			final LibraryProperty IP_LoopExp_iterator = P_LoopExp_iterator.getImplementation();
 			final IntegerValue I_1 = valueFactory.integerValueOf(1);
 			
-			Value leftA_symbol_175;
+			Value leftA_symbol_105;
 			try {
 				
-				Value A_symbol_176 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_106 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_177 = valueFactory.typeOf(A_symbol_176, S_closure);
-				LibraryBinaryOperation dynamic_A_symbol_177 = (LibraryBinaryOperation)static_A_symbol_177.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_177 = dynamic_A_symbol_177.evaluate(evaluator, T_Boolean, A_symbol_176, S_closure);
-				leftA_symbol_175 = A_symbol_177;
+				DomainType static_A_symbol_107 = valueFactory.typeOf(A_symbol_106, S_closure);
+				LibraryBinaryOperation dynamic_A_symbol_107 = (LibraryBinaryOperation)static_A_symbol_107.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_107 = dynamic_A_symbol_107.evaluate(evaluator, T_Boolean, A_symbol_106, S_closure);
+				leftA_symbol_105 = A_symbol_107;
 			} catch (InvalidValueException e) {
-				leftA_symbol_175 = valueFactory.createInvalidValue(e);
+				leftA_symbol_105 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_177 = leftA_symbol_175;
-			Value rightA_symbol_175;
+			Value A_symbol_107 = leftA_symbol_105;
+			Value rightA_symbol_105;
 			try {
 				
-				Value A_symbol_178 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
+				Value A_symbol_108 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
 				
-				DomainType static_A_symbol_179 = valueFactory.typeOf(A_symbol_178);
-				LibraryUnaryOperation dynamic_A_symbol_179 = (LibraryUnaryOperation)static_A_symbol_179.lookupImplementation(standardLibrary, O_Collection_size);
-				Value A_symbol_179 = dynamic_A_symbol_179.evaluate(evaluator, T_Integer, A_symbol_178);
-				DomainType static_A_symbol_180 = valueFactory.typeOf(A_symbol_179, I_1);
-				LibraryBinaryOperation dynamic_A_symbol_180 = (LibraryBinaryOperation)static_A_symbol_180.lookupImplementation(standardLibrary, O_Real__eq_);
-				Value A_symbol_180 = dynamic_A_symbol_180.evaluate(evaluator, T_Boolean, A_symbol_179, I_1);
-				rightA_symbol_175 = A_symbol_180;
+				DomainType static_A_symbol_109 = valueFactory.typeOf(A_symbol_108);
+				LibraryUnaryOperation dynamic_A_symbol_109 = (LibraryUnaryOperation)static_A_symbol_109.lookupImplementation(standardLibrary, O_Collection_size);
+				Value A_symbol_109 = dynamic_A_symbol_109.evaluate(evaluator, T_Integer, A_symbol_108);
+				DomainType static_A_symbol_110 = valueFactory.typeOf(A_symbol_109, I_1);
+				LibraryBinaryOperation dynamic_A_symbol_110 = (LibraryBinaryOperation)static_A_symbol_110.lookupImplementation(standardLibrary, O_Real__eq_);
+				Value A_symbol_110 = dynamic_A_symbol_110.evaluate(evaluator, T_Boolean, A_symbol_109, I_1);
+				rightA_symbol_105 = A_symbol_110;
 			} catch (InvalidValueException e) {
-				rightA_symbol_175 = valueFactory.createInvalidValue(e);
+				rightA_symbol_105 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_180 = rightA_symbol_175;
-			DomainType static_A_symbol_175 = valueFactory.typeOf(A_symbol_177);
-			LibraryBinaryOperation dynamic_A_symbol_175 = (LibraryBinaryOperation)static_A_symbol_175.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_175 = dynamic_A_symbol_175.evaluate(evaluator, T_Boolean, A_symbol_177, A_symbol_180);
-			return A_symbol_175;
+			Value A_symbol_110 = rightA_symbol_105;
+			DomainType static_A_symbol_105 = valueFactory.typeOf(A_symbol_107);
+			LibraryBinaryOperation dynamic_A_symbol_105 = (LibraryBinaryOperation)static_A_symbol_105.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_105 = dynamic_A_symbol_105.evaluate(evaluator, T_Boolean, A_symbol_107, A_symbol_110);
+			return A_symbol_105;
 		}
 	}
 
@@ -444,79 +444,79 @@
 			final ExecutorProperty P_LoopExp_body = PivotTables.Properties._LoopExp__body;
 			final LibraryProperty IP_LoopExp_body = P_LoopExp_body.getImplementation();
 			
-			Value leftA_symbol_181;
+			Value leftA_symbol_111;
 			try {
 				
-				Value A_symbol_182 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_112 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_183 = valueFactory.typeOf(A_symbol_182, S_closure);
-				LibraryBinaryOperation dynamic_A_symbol_183 = (LibraryBinaryOperation)static_A_symbol_183.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_183 = dynamic_A_symbol_183.evaluate(evaluator, T_Boolean, A_symbol_182, S_closure);
-				leftA_symbol_181 = A_symbol_183;
+				DomainType static_A_symbol_113 = valueFactory.typeOf(A_symbol_112, S_closure);
+				LibraryBinaryOperation dynamic_A_symbol_113 = (LibraryBinaryOperation)static_A_symbol_113.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_113 = dynamic_A_symbol_113.evaluate(evaluator, T_Boolean, A_symbol_112, S_closure);
+				leftA_symbol_111 = A_symbol_113;
 			} catch (InvalidValueException e) {
-				leftA_symbol_181 = valueFactory.createInvalidValue(e);
+				leftA_symbol_111 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_183 = leftA_symbol_181;
-			Value rightA_symbol_181;
+			Value A_symbol_113 = leftA_symbol_111;
+			Value rightA_symbol_111;
 			try {
 				
-				Value A_symbol_184 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
+				Value A_symbol_114 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
 				
-				Value A_symbol_185 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_184, P_TypedElement_type);
+				Value A_symbol_115 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_114, P_TypedElement_type);
 				
-				DomainType static_A_symbol_186 = valueFactory.typeOf(A_symbol_185);
-				LibraryBinaryOperation dynamic_A_symbol_186 = (LibraryBinaryOperation)static_A_symbol_186.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
-				Value A_symbol_186 = dynamic_A_symbol_186.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_185, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-				Value A_symbol_187 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_186, P_CollectionType_elementType);
+				DomainType static_A_symbol_116 = valueFactory.typeOf(A_symbol_115);
+				LibraryBinaryOperation dynamic_A_symbol_116 = (LibraryBinaryOperation)static_A_symbol_116.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
+				Value A_symbol_116 = dynamic_A_symbol_116.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_115, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+				Value A_symbol_117 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_116, P_CollectionType_elementType);
 				
 					
-					Value A_symbol_188 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
+					Value A_symbol_118 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
 					
-					Value A_symbol_189 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_188, P_TypedElement_type);
+					Value A_symbol_119 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_118, P_TypedElement_type);
 					
-					DomainType static_A_symbol_190 = valueFactory.typeOf(A_symbol_189);
-					LibraryBinaryOperation dynamic_A_symbol_190 = (LibraryBinaryOperation)static_A_symbol_190.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-					Value A_symbol_190 = dynamic_A_symbol_190.evaluate(evaluator, T_Boolean, A_symbol_189, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-				Value A_symbol_191;
-				if (A_symbol_190.isTrue()) {
+					DomainType static_A_symbol_120 = valueFactory.typeOf(A_symbol_119);
+					LibraryBinaryOperation dynamic_A_symbol_120 = (LibraryBinaryOperation)static_A_symbol_120.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+					Value A_symbol_120 = dynamic_A_symbol_120.evaluate(evaluator, T_Boolean, A_symbol_119, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+				Value A_symbol_121;
+				if (A_symbol_120.isTrue()) {
 					
-					Value A_symbol_192 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
+					Value A_symbol_122 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
 					
-					Value A_symbol_193 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_192, P_TypedElement_type);
+					Value A_symbol_123 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_122, P_TypedElement_type);
 					
-					DomainType static_A_symbol_194 = valueFactory.typeOf(A_symbol_193);
-					LibraryBinaryOperation dynamic_A_symbol_194 = (LibraryBinaryOperation)static_A_symbol_194.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
-					Value A_symbol_194 = dynamic_A_symbol_194.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_193, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-					Value A_symbol_195 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_194, P_CollectionType_elementType);
+					DomainType static_A_symbol_124 = valueFactory.typeOf(A_symbol_123);
+					LibraryBinaryOperation dynamic_A_symbol_124 = (LibraryBinaryOperation)static_A_symbol_124.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
+					Value A_symbol_124 = dynamic_A_symbol_124.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_123, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+					Value A_symbol_125 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_124, P_CollectionType_elementType);
 					
-					A_symbol_191 = A_symbol_195;
+					A_symbol_121 = A_symbol_125;
 				}
-				else if (A_symbol_190.isFalse()) {
+				else if (A_symbol_120.isFalse()) {
 					
-					Value A_symbol_196 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
+					Value A_symbol_126 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
 					
-					Value A_symbol_197 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_196, P_TypedElement_type);
+					Value A_symbol_127 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_126, P_TypedElement_type);
 					
-					A_symbol_191 = A_symbol_197;
+					A_symbol_121 = A_symbol_127;
 				}
-				else if (A_symbol_190.isNull()) {
-					A_symbol_191 = valueFactory.throwInvalidValueException("null if condition");
+				else if (A_symbol_120.isNull()) {
+					A_symbol_121 = valueFactory.throwInvalidValueException("null if condition");
 				}
 				else {
-					A_symbol_191 = valueFactory.throwInvalidValueException("invalid if condition");
+					A_symbol_121 = valueFactory.throwInvalidValueException("invalid if condition");
 				}
-				DomainType static_A_symbol_198 = valueFactory.typeOf(A_symbol_187, A_symbol_191);
-				LibraryBinaryOperation dynamic_A_symbol_198 = (LibraryBinaryOperation)static_A_symbol_198.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_198 = dynamic_A_symbol_198.evaluate(evaluator, T_Boolean, A_symbol_187, A_symbol_191);
-				rightA_symbol_181 = A_symbol_198;
+				DomainType static_A_symbol_128 = valueFactory.typeOf(A_symbol_117, A_symbol_121);
+				LibraryBinaryOperation dynamic_A_symbol_128 = (LibraryBinaryOperation)static_A_symbol_128.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_128 = dynamic_A_symbol_128.evaluate(evaluator, T_Boolean, A_symbol_117, A_symbol_121);
+				rightA_symbol_111 = A_symbol_128;
 			} catch (InvalidValueException e) {
-				rightA_symbol_181 = valueFactory.createInvalidValue(e);
+				rightA_symbol_111 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_198 = rightA_symbol_181;
-			DomainType static_A_symbol_181 = valueFactory.typeOf(A_symbol_183);
-			LibraryBinaryOperation dynamic_A_symbol_181 = (LibraryBinaryOperation)static_A_symbol_181.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_181 = dynamic_A_symbol_181.evaluate(evaluator, T_Boolean, A_symbol_183, A_symbol_198);
-			return A_symbol_181;
+			Value A_symbol_128 = rightA_symbol_111;
+			DomainType static_A_symbol_111 = valueFactory.typeOf(A_symbol_113);
+			LibraryBinaryOperation dynamic_A_symbol_111 = (LibraryBinaryOperation)static_A_symbol_111.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_111 = dynamic_A_symbol_111.evaluate(evaluator, T_Boolean, A_symbol_113, A_symbol_128);
+			return A_symbol_111;
 		}
 	}
 
@@ -558,88 +558,88 @@
 			final Value T_ClassClassifier_Pivot_ecore__pivot__OrderedSetType_ = valueFactory.createTypeValue(PivotTables.Types._OrderedSetType);
 			final Value T_ClassClassifier_Pivot_ecore__pivot__SetType_ = valueFactory.createTypeValue(PivotTables.Types._SetType);
 			
-			Value leftA_symbol_199;
+			Value leftA_symbol_129;
 			try {
 				
-				Value A_symbol_200 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_130 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_201 = valueFactory.typeOf(A_symbol_200, S_closure);
-				LibraryBinaryOperation dynamic_A_symbol_201 = (LibraryBinaryOperation)static_A_symbol_201.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_201 = dynamic_A_symbol_201.evaluate(evaluator, T_Boolean, A_symbol_200, S_closure);
-				leftA_symbol_199 = A_symbol_201;
+				DomainType static_A_symbol_131 = valueFactory.typeOf(A_symbol_130, S_closure);
+				LibraryBinaryOperation dynamic_A_symbol_131 = (LibraryBinaryOperation)static_A_symbol_131.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_131 = dynamic_A_symbol_131.evaluate(evaluator, T_Boolean, A_symbol_130, S_closure);
+				leftA_symbol_129 = A_symbol_131;
 			} catch (InvalidValueException e) {
-				leftA_symbol_199 = valueFactory.createInvalidValue(e);
+				leftA_symbol_129 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_201 = leftA_symbol_199;
-			Value rightA_symbol_199;
+			Value A_symbol_131 = leftA_symbol_129;
+			Value rightA_symbol_129;
 			try {
-					Value leftA_symbol_202;
+					Value leftA_symbol_132;
 					try {
 						
-						Value A_symbol_203 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
+						Value A_symbol_133 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
 						
-						Value A_symbol_204 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_203, P_TypedElement_type);
+						Value A_symbol_134 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_133, P_TypedElement_type);
 						
-						DomainType static_A_symbol_205 = valueFactory.typeOf(A_symbol_204);
-						LibraryBinaryOperation dynamic_A_symbol_205 = (LibraryBinaryOperation)static_A_symbol_205.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-						Value A_symbol_205 = dynamic_A_symbol_205.evaluate(evaluator, T_Boolean, A_symbol_204, T_ClassClassifier_Pivot_ecore__pivot__SequenceType_);
-						leftA_symbol_202 = A_symbol_205;
+						DomainType static_A_symbol_135 = valueFactory.typeOf(A_symbol_134);
+						LibraryBinaryOperation dynamic_A_symbol_135 = (LibraryBinaryOperation)static_A_symbol_135.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+						Value A_symbol_135 = dynamic_A_symbol_135.evaluate(evaluator, T_Boolean, A_symbol_134, T_ClassClassifier_Pivot_ecore__pivot__SequenceType_);
+						leftA_symbol_132 = A_symbol_135;
 					} catch (InvalidValueException e) {
-						leftA_symbol_202 = valueFactory.createInvalidValue(e);
+						leftA_symbol_132 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_205 = leftA_symbol_202;
-					Value rightA_symbol_202;
+					Value A_symbol_135 = leftA_symbol_132;
+					Value rightA_symbol_132;
 					try {
 						
-						Value A_symbol_206 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
+						Value A_symbol_136 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
 						
-						Value A_symbol_207 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_206, P_TypedElement_type);
+						Value A_symbol_137 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_136, P_TypedElement_type);
 						
-						DomainType static_A_symbol_208 = valueFactory.typeOf(A_symbol_207);
-						LibraryBinaryOperation dynamic_A_symbol_208 = (LibraryBinaryOperation)static_A_symbol_208.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-						Value A_symbol_208 = dynamic_A_symbol_208.evaluate(evaluator, T_Boolean, A_symbol_207, T_ClassClassifier_Pivot_ecore__pivot__OrderedSetType_);
-						rightA_symbol_202 = A_symbol_208;
+						DomainType static_A_symbol_138 = valueFactory.typeOf(A_symbol_137);
+						LibraryBinaryOperation dynamic_A_symbol_138 = (LibraryBinaryOperation)static_A_symbol_138.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+						Value A_symbol_138 = dynamic_A_symbol_138.evaluate(evaluator, T_Boolean, A_symbol_137, T_ClassClassifier_Pivot_ecore__pivot__OrderedSetType_);
+						rightA_symbol_132 = A_symbol_138;
 					} catch (InvalidValueException e) {
-						rightA_symbol_202 = valueFactory.createInvalidValue(e);
+						rightA_symbol_132 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_208 = rightA_symbol_202;
-					DomainType static_A_symbol_202 = valueFactory.typeOf(A_symbol_205);
-					LibraryBinaryOperation dynamic_A_symbol_202 = (LibraryBinaryOperation)static_A_symbol_202.lookupImplementation(standardLibrary, O_Boolean_or);
-					Value A_symbol_202 = dynamic_A_symbol_202.evaluate(evaluator, T_Boolean, A_symbol_205, A_symbol_208);
-				Value A_symbol_209;
-				if (A_symbol_202.isTrue()) {
+					Value A_symbol_138 = rightA_symbol_132;
+					DomainType static_A_symbol_132 = valueFactory.typeOf(A_symbol_135);
+					LibraryBinaryOperation dynamic_A_symbol_132 = (LibraryBinaryOperation)static_A_symbol_132.lookupImplementation(standardLibrary, O_Boolean_or);
+					Value A_symbol_132 = dynamic_A_symbol_132.evaluate(evaluator, T_Boolean, A_symbol_135, A_symbol_138);
+				Value A_symbol_139;
+				if (A_symbol_132.isTrue()) {
 					
-					Value A_symbol_210 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+					Value A_symbol_140 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 					
-					DomainType static_A_symbol_211 = valueFactory.typeOf(A_symbol_210);
-					LibraryBinaryOperation dynamic_A_symbol_211 = (LibraryBinaryOperation)static_A_symbol_211.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-					Value A_symbol_211 = dynamic_A_symbol_211.evaluate(evaluator, T_Boolean, A_symbol_210, T_ClassClassifier_Pivot_ecore__pivot__OrderedSetType_);
-					A_symbol_209 = A_symbol_211;
+					DomainType static_A_symbol_141 = valueFactory.typeOf(A_symbol_140);
+					LibraryBinaryOperation dynamic_A_symbol_141 = (LibraryBinaryOperation)static_A_symbol_141.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+					Value A_symbol_141 = dynamic_A_symbol_141.evaluate(evaluator, T_Boolean, A_symbol_140, T_ClassClassifier_Pivot_ecore__pivot__OrderedSetType_);
+					A_symbol_139 = A_symbol_141;
 				}
-				else if (A_symbol_202.isFalse()) {
+				else if (A_symbol_132.isFalse()) {
 					
-					Value A_symbol_212 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+					Value A_symbol_142 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 					
-					DomainType static_A_symbol_213 = valueFactory.typeOf(A_symbol_212);
-					LibraryBinaryOperation dynamic_A_symbol_213 = (LibraryBinaryOperation)static_A_symbol_213.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-					Value A_symbol_213 = dynamic_A_symbol_213.evaluate(evaluator, T_Boolean, A_symbol_212, T_ClassClassifier_Pivot_ecore__pivot__SetType_);
-					A_symbol_209 = A_symbol_213;
+					DomainType static_A_symbol_143 = valueFactory.typeOf(A_symbol_142);
+					LibraryBinaryOperation dynamic_A_symbol_143 = (LibraryBinaryOperation)static_A_symbol_143.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+					Value A_symbol_143 = dynamic_A_symbol_143.evaluate(evaluator, T_Boolean, A_symbol_142, T_ClassClassifier_Pivot_ecore__pivot__SetType_);
+					A_symbol_139 = A_symbol_143;
 				}
-				else if (A_symbol_202.isNull()) {
-					A_symbol_209 = valueFactory.throwInvalidValueException("null if condition");
+				else if (A_symbol_132.isNull()) {
+					A_symbol_139 = valueFactory.throwInvalidValueException("null if condition");
 				}
 				else {
-					A_symbol_209 = valueFactory.throwInvalidValueException("invalid if condition");
+					A_symbol_139 = valueFactory.throwInvalidValueException("invalid if condition");
 				}
-				rightA_symbol_199 = A_symbol_209;
+				rightA_symbol_129 = A_symbol_139;
 			} catch (InvalidValueException e) {
-				rightA_symbol_199 = valueFactory.createInvalidValue(e);
+				rightA_symbol_129 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_209 = rightA_symbol_199;
-			DomainType static_A_symbol_199 = valueFactory.typeOf(A_symbol_201);
-			LibraryBinaryOperation dynamic_A_symbol_199 = (LibraryBinaryOperation)static_A_symbol_199.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_199 = dynamic_A_symbol_199.evaluate(evaluator, T_Boolean, A_symbol_201, A_symbol_209);
-			return A_symbol_199;
+			Value A_symbol_139 = rightA_symbol_129;
+			DomainType static_A_symbol_129 = valueFactory.typeOf(A_symbol_131);
+			LibraryBinaryOperation dynamic_A_symbol_129 = (LibraryBinaryOperation)static_A_symbol_129.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_129 = dynamic_A_symbol_129.evaluate(evaluator, T_Boolean, A_symbol_131, A_symbol_139);
+			return A_symbol_129;
 		}
 	}
 
@@ -678,51 +678,51 @@
 			final ExecutorProperty P_LoopExp_body = PivotTables.Properties._LoopExp__body;
 			final LibraryProperty IP_LoopExp_body = P_LoopExp_body.getImplementation();
 			
-			Value leftA_symbol_214;
+			Value leftA_symbol_144;
 			try {
 				
-				Value A_symbol_215 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_145 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_216 = valueFactory.typeOf(A_symbol_215, S_collect);
-				LibraryBinaryOperation dynamic_A_symbol_216 = (LibraryBinaryOperation)static_A_symbol_216.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_216 = dynamic_A_symbol_216.evaluate(evaluator, T_Boolean, A_symbol_215, S_collect);
-				leftA_symbol_214 = A_symbol_216;
+				DomainType static_A_symbol_146 = valueFactory.typeOf(A_symbol_145, S_collect);
+				LibraryBinaryOperation dynamic_A_symbol_146 = (LibraryBinaryOperation)static_A_symbol_146.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_146 = dynamic_A_symbol_146.evaluate(evaluator, T_Boolean, A_symbol_145, S_collect);
+				leftA_symbol_144 = A_symbol_146;
 			} catch (InvalidValueException e) {
-				leftA_symbol_214 = valueFactory.createInvalidValue(e);
+				leftA_symbol_144 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_216 = leftA_symbol_214;
-			Value rightA_symbol_214;
+			Value A_symbol_146 = leftA_symbol_144;
+			Value rightA_symbol_144;
 			try {
 				
-				Value A_symbol_217 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_147 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
-				DomainType static_A_symbol_218 = valueFactory.typeOf(A_symbol_217);
-				LibraryBinaryOperation dynamic_A_symbol_218 = (LibraryBinaryOperation)static_A_symbol_218.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
-				Value A_symbol_218 = dynamic_A_symbol_218.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_217, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-				Value A_symbol_219 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_218, P_CollectionType_elementType);
+				DomainType static_A_symbol_148 = valueFactory.typeOf(A_symbol_147);
+				LibraryBinaryOperation dynamic_A_symbol_148 = (LibraryBinaryOperation)static_A_symbol_148.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
+				Value A_symbol_148 = dynamic_A_symbol_148.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_147, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+				Value A_symbol_149 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_148, P_CollectionType_elementType);
 				
 				
-				Value A_symbol_220 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
+				Value A_symbol_150 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
 				
-				Value A_symbol_221 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_220, P_TypedElement_type);
+				Value A_symbol_151 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_150, P_TypedElement_type);
 				
-				DomainType static_A_symbol_222 = valueFactory.typeOf(A_symbol_221);
-				LibraryBinaryOperation dynamic_A_symbol_222 = (LibraryBinaryOperation)static_A_symbol_222.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
-				Value A_symbol_222 = dynamic_A_symbol_222.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_221, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-				Value A_symbol_223 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_222, P_CollectionType_elementType);
+				DomainType static_A_symbol_152 = valueFactory.typeOf(A_symbol_151);
+				LibraryBinaryOperation dynamic_A_symbol_152 = (LibraryBinaryOperation)static_A_symbol_152.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
+				Value A_symbol_152 = dynamic_A_symbol_152.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_151, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+				Value A_symbol_153 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_152, P_CollectionType_elementType);
 				
-				DomainType static_A_symbol_224 = valueFactory.typeOf(A_symbol_219, A_symbol_223);
-				LibraryBinaryOperation dynamic_A_symbol_224 = (LibraryBinaryOperation)static_A_symbol_224.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_224 = dynamic_A_symbol_224.evaluate(evaluator, T_Boolean, A_symbol_219, A_symbol_223);
-				rightA_symbol_214 = A_symbol_224;
+				DomainType static_A_symbol_154 = valueFactory.typeOf(A_symbol_149, A_symbol_153);
+				LibraryBinaryOperation dynamic_A_symbol_154 = (LibraryBinaryOperation)static_A_symbol_154.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_154 = dynamic_A_symbol_154.evaluate(evaluator, T_Boolean, A_symbol_149, A_symbol_153);
+				rightA_symbol_144 = A_symbol_154;
 			} catch (InvalidValueException e) {
-				rightA_symbol_214 = valueFactory.createInvalidValue(e);
+				rightA_symbol_144 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_224 = rightA_symbol_214;
-			DomainType static_A_symbol_214 = valueFactory.typeOf(A_symbol_216);
-			LibraryBinaryOperation dynamic_A_symbol_214 = (LibraryBinaryOperation)static_A_symbol_214.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_214 = dynamic_A_symbol_214.evaluate(evaluator, T_Boolean, A_symbol_216, A_symbol_224);
-			return A_symbol_214;
+			Value A_symbol_154 = rightA_symbol_144;
+			DomainType static_A_symbol_144 = valueFactory.typeOf(A_symbol_146);
+			LibraryBinaryOperation dynamic_A_symbol_144 = (LibraryBinaryOperation)static_A_symbol_144.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_144 = dynamic_A_symbol_144.evaluate(evaluator, T_Boolean, A_symbol_146, A_symbol_154);
+			return A_symbol_144;
 		}
 	}
 
@@ -755,39 +755,39 @@
 			final LibraryProperty IP_LoopExp_iterator = P_LoopExp_iterator.getImplementation();
 			final IntegerValue I_1 = valueFactory.integerValueOf(1);
 			
-			Value leftA_symbol_225;
+			Value leftA_symbol_155;
 			try {
 				
-				Value A_symbol_226 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_156 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_227 = valueFactory.typeOf(A_symbol_226, S_collect);
-				LibraryBinaryOperation dynamic_A_symbol_227 = (LibraryBinaryOperation)static_A_symbol_227.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_227 = dynamic_A_symbol_227.evaluate(evaluator, T_Boolean, A_symbol_226, S_collect);
-				leftA_symbol_225 = A_symbol_227;
+				DomainType static_A_symbol_157 = valueFactory.typeOf(A_symbol_156, S_collect);
+				LibraryBinaryOperation dynamic_A_symbol_157 = (LibraryBinaryOperation)static_A_symbol_157.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_157 = dynamic_A_symbol_157.evaluate(evaluator, T_Boolean, A_symbol_156, S_collect);
+				leftA_symbol_155 = A_symbol_157;
 			} catch (InvalidValueException e) {
-				leftA_symbol_225 = valueFactory.createInvalidValue(e);
+				leftA_symbol_155 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_227 = leftA_symbol_225;
-			Value rightA_symbol_225;
+			Value A_symbol_157 = leftA_symbol_155;
+			Value rightA_symbol_155;
 			try {
 				
-				Value A_symbol_228 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
+				Value A_symbol_158 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
 				
-				DomainType static_A_symbol_229 = valueFactory.typeOf(A_symbol_228);
-				LibraryUnaryOperation dynamic_A_symbol_229 = (LibraryUnaryOperation)static_A_symbol_229.lookupImplementation(standardLibrary, O_Collection_size);
-				Value A_symbol_229 = dynamic_A_symbol_229.evaluate(evaluator, T_Integer, A_symbol_228);
-				DomainType static_A_symbol_230 = valueFactory.typeOf(A_symbol_229, I_1);
-				LibraryBinaryOperation dynamic_A_symbol_230 = (LibraryBinaryOperation)static_A_symbol_230.lookupImplementation(standardLibrary, O_Real__eq_);
-				Value A_symbol_230 = dynamic_A_symbol_230.evaluate(evaluator, T_Boolean, A_symbol_229, I_1);
-				rightA_symbol_225 = A_symbol_230;
+				DomainType static_A_symbol_159 = valueFactory.typeOf(A_symbol_158);
+				LibraryUnaryOperation dynamic_A_symbol_159 = (LibraryUnaryOperation)static_A_symbol_159.lookupImplementation(standardLibrary, O_Collection_size);
+				Value A_symbol_159 = dynamic_A_symbol_159.evaluate(evaluator, T_Integer, A_symbol_158);
+				DomainType static_A_symbol_160 = valueFactory.typeOf(A_symbol_159, I_1);
+				LibraryBinaryOperation dynamic_A_symbol_160 = (LibraryBinaryOperation)static_A_symbol_160.lookupImplementation(standardLibrary, O_Real__eq_);
+				Value A_symbol_160 = dynamic_A_symbol_160.evaluate(evaluator, T_Boolean, A_symbol_159, I_1);
+				rightA_symbol_155 = A_symbol_160;
 			} catch (InvalidValueException e) {
-				rightA_symbol_225 = valueFactory.createInvalidValue(e);
+				rightA_symbol_155 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_230 = rightA_symbol_225;
-			DomainType static_A_symbol_225 = valueFactory.typeOf(A_symbol_227);
-			LibraryBinaryOperation dynamic_A_symbol_225 = (LibraryBinaryOperation)static_A_symbol_225.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_225 = dynamic_A_symbol_225.evaluate(evaluator, T_Boolean, A_symbol_227, A_symbol_230);
-			return A_symbol_225;
+			Value A_symbol_160 = rightA_symbol_155;
+			DomainType static_A_symbol_155 = valueFactory.typeOf(A_symbol_157);
+			LibraryBinaryOperation dynamic_A_symbol_155 = (LibraryBinaryOperation)static_A_symbol_155.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_155 = dynamic_A_symbol_155.evaluate(evaluator, T_Boolean, A_symbol_157, A_symbol_160);
+			return A_symbol_155;
 		}
 	}
 
@@ -820,39 +820,39 @@
 			final LibraryProperty IP_LoopExp_iterator = P_LoopExp_iterator.getImplementation();
 			final IntegerValue I_1 = valueFactory.integerValueOf(1);
 			
-			Value leftA_symbol_231;
+			Value leftA_symbol_161;
 			try {
 				
-				Value A_symbol_232 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_162 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_233 = valueFactory.typeOf(A_symbol_232, S_collectN___);
-				LibraryBinaryOperation dynamic_A_symbol_233 = (LibraryBinaryOperation)static_A_symbol_233.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_233 = dynamic_A_symbol_233.evaluate(evaluator, T_Boolean, A_symbol_232, S_collectN___);
-				leftA_symbol_231 = A_symbol_233;
+				DomainType static_A_symbol_163 = valueFactory.typeOf(A_symbol_162, S_collectN___);
+				LibraryBinaryOperation dynamic_A_symbol_163 = (LibraryBinaryOperation)static_A_symbol_163.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_163 = dynamic_A_symbol_163.evaluate(evaluator, T_Boolean, A_symbol_162, S_collectN___);
+				leftA_symbol_161 = A_symbol_163;
 			} catch (InvalidValueException e) {
-				leftA_symbol_231 = valueFactory.createInvalidValue(e);
+				leftA_symbol_161 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_233 = leftA_symbol_231;
-			Value rightA_symbol_231;
+			Value A_symbol_163 = leftA_symbol_161;
+			Value rightA_symbol_161;
 			try {
 				
-				Value A_symbol_234 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
+				Value A_symbol_164 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
 				
-				DomainType static_A_symbol_235 = valueFactory.typeOf(A_symbol_234);
-				LibraryUnaryOperation dynamic_A_symbol_235 = (LibraryUnaryOperation)static_A_symbol_235.lookupImplementation(standardLibrary, O_Collection_size);
-				Value A_symbol_235 = dynamic_A_symbol_235.evaluate(evaluator, T_Integer, A_symbol_234);
-				DomainType static_A_symbol_236 = valueFactory.typeOf(A_symbol_235, I_1);
-				LibraryBinaryOperation dynamic_A_symbol_236 = (LibraryBinaryOperation)static_A_symbol_236.lookupImplementation(standardLibrary, O_Real__eq_);
-				Value A_symbol_236 = dynamic_A_symbol_236.evaluate(evaluator, T_Boolean, A_symbol_235, I_1);
-				rightA_symbol_231 = A_symbol_236;
+				DomainType static_A_symbol_165 = valueFactory.typeOf(A_symbol_164);
+				LibraryUnaryOperation dynamic_A_symbol_165 = (LibraryUnaryOperation)static_A_symbol_165.lookupImplementation(standardLibrary, O_Collection_size);
+				Value A_symbol_165 = dynamic_A_symbol_165.evaluate(evaluator, T_Integer, A_symbol_164);
+				DomainType static_A_symbol_166 = valueFactory.typeOf(A_symbol_165, I_1);
+				LibraryBinaryOperation dynamic_A_symbol_166 = (LibraryBinaryOperation)static_A_symbol_166.lookupImplementation(standardLibrary, O_Real__eq_);
+				Value A_symbol_166 = dynamic_A_symbol_166.evaluate(evaluator, T_Boolean, A_symbol_165, I_1);
+				rightA_symbol_161 = A_symbol_166;
 			} catch (InvalidValueException e) {
-				rightA_symbol_231 = valueFactory.createInvalidValue(e);
+				rightA_symbol_161 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_236 = rightA_symbol_231;
-			DomainType static_A_symbol_231 = valueFactory.typeOf(A_symbol_233);
-			LibraryBinaryOperation dynamic_A_symbol_231 = (LibraryBinaryOperation)static_A_symbol_231.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_231 = dynamic_A_symbol_231.evaluate(evaluator, T_Boolean, A_symbol_233, A_symbol_236);
-			return A_symbol_231;
+			Value A_symbol_166 = rightA_symbol_161;
+			DomainType static_A_symbol_161 = valueFactory.typeOf(A_symbol_163);
+			LibraryBinaryOperation dynamic_A_symbol_161 = (LibraryBinaryOperation)static_A_symbol_161.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_161 = dynamic_A_symbol_161.evaluate(evaluator, T_Boolean, A_symbol_163, A_symbol_166);
+			return A_symbol_161;
 		}
 	}
 
@@ -882,36 +882,36 @@
 			final LibraryProperty IP_TypedElement_type = P_TypedElement_type.getImplementation();
 			final Value T_ClassClassifier_Pivot_ecore__pivot__BagType_ = valueFactory.createTypeValue(PivotTables.Types._BagType);
 			
-			Value leftA_symbol_237;
+			Value leftA_symbol_167;
 			try {
 				
-				Value A_symbol_238 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_168 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_239 = valueFactory.typeOf(A_symbol_238, S_collectN___);
-				LibraryBinaryOperation dynamic_A_symbol_239 = (LibraryBinaryOperation)static_A_symbol_239.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_239 = dynamic_A_symbol_239.evaluate(evaluator, T_Boolean, A_symbol_238, S_collectN___);
-				leftA_symbol_237 = A_symbol_239;
+				DomainType static_A_symbol_169 = valueFactory.typeOf(A_symbol_168, S_collectN___);
+				LibraryBinaryOperation dynamic_A_symbol_169 = (LibraryBinaryOperation)static_A_symbol_169.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_169 = dynamic_A_symbol_169.evaluate(evaluator, T_Boolean, A_symbol_168, S_collectN___);
+				leftA_symbol_167 = A_symbol_169;
 			} catch (InvalidValueException e) {
-				leftA_symbol_237 = valueFactory.createInvalidValue(e);
+				leftA_symbol_167 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_239 = leftA_symbol_237;
-			Value rightA_symbol_237;
+			Value A_symbol_169 = leftA_symbol_167;
+			Value rightA_symbol_167;
 			try {
 				
-				Value A_symbol_240 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_170 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
-				DomainType static_A_symbol_241 = valueFactory.typeOf(A_symbol_240);
-				LibraryBinaryOperation dynamic_A_symbol_241 = (LibraryBinaryOperation)static_A_symbol_241.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-				Value A_symbol_241 = dynamic_A_symbol_241.evaluate(evaluator, T_Boolean, A_symbol_240, T_ClassClassifier_Pivot_ecore__pivot__BagType_);
-				rightA_symbol_237 = A_symbol_241;
+				DomainType static_A_symbol_171 = valueFactory.typeOf(A_symbol_170);
+				LibraryBinaryOperation dynamic_A_symbol_171 = (LibraryBinaryOperation)static_A_symbol_171.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+				Value A_symbol_171 = dynamic_A_symbol_171.evaluate(evaluator, T_Boolean, A_symbol_170, T_ClassClassifier_Pivot_ecore__pivot__BagType_);
+				rightA_symbol_167 = A_symbol_171;
 			} catch (InvalidValueException e) {
-				rightA_symbol_237 = valueFactory.createInvalidValue(e);
+				rightA_symbol_167 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_241 = rightA_symbol_237;
-			DomainType static_A_symbol_237 = valueFactory.typeOf(A_symbol_239);
-			LibraryBinaryOperation dynamic_A_symbol_237 = (LibraryBinaryOperation)static_A_symbol_237.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_237 = dynamic_A_symbol_237.evaluate(evaluator, T_Boolean, A_symbol_239, A_symbol_241);
-			return A_symbol_237;
+			Value A_symbol_171 = rightA_symbol_167;
+			DomainType static_A_symbol_167 = valueFactory.typeOf(A_symbol_169);
+			LibraryBinaryOperation dynamic_A_symbol_167 = (LibraryBinaryOperation)static_A_symbol_167.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_167 = dynamic_A_symbol_167.evaluate(evaluator, T_Boolean, A_symbol_169, A_symbol_171);
+			return A_symbol_167;
 		}
 	}
 
@@ -943,41 +943,41 @@
 			final ExecutorProperty P_LoopExp_body = PivotTables.Properties._LoopExp__body;
 			final LibraryProperty IP_LoopExp_body = P_LoopExp_body.getImplementation();
 			
-			Value leftA_symbol_242;
+			Value leftA_symbol_172;
 			try {
 				
-				Value A_symbol_243 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_173 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_244 = valueFactory.typeOf(A_symbol_243, S_collectN___);
-				LibraryBinaryOperation dynamic_A_symbol_244 = (LibraryBinaryOperation)static_A_symbol_244.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_244 = dynamic_A_symbol_244.evaluate(evaluator, T_Boolean, A_symbol_243, S_collectN___);
-				leftA_symbol_242 = A_symbol_244;
+				DomainType static_A_symbol_174 = valueFactory.typeOf(A_symbol_173, S_collectN___);
+				LibraryBinaryOperation dynamic_A_symbol_174 = (LibraryBinaryOperation)static_A_symbol_174.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_174 = dynamic_A_symbol_174.evaluate(evaluator, T_Boolean, A_symbol_173, S_collectN___);
+				leftA_symbol_172 = A_symbol_174;
 			} catch (InvalidValueException e) {
-				leftA_symbol_242 = valueFactory.createInvalidValue(e);
+				leftA_symbol_172 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_244 = leftA_symbol_242;
-			Value rightA_symbol_242;
+			Value A_symbol_174 = leftA_symbol_172;
+			Value rightA_symbol_172;
 			try {
 				
-				Value A_symbol_245 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_175 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
 				
-				Value A_symbol_246 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
+				Value A_symbol_176 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
 				
-				Value A_symbol_247 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_246, P_TypedElement_type);
+				Value A_symbol_177 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_176, P_TypedElement_type);
 				
-				DomainType static_A_symbol_248 = valueFactory.typeOf(A_symbol_245, A_symbol_247);
-				LibraryBinaryOperation dynamic_A_symbol_248 = (LibraryBinaryOperation)static_A_symbol_248.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_248 = dynamic_A_symbol_248.evaluate(evaluator, T_Boolean, A_symbol_245, A_symbol_247);
-				rightA_symbol_242 = A_symbol_248;
+				DomainType static_A_symbol_178 = valueFactory.typeOf(A_symbol_175, A_symbol_177);
+				LibraryBinaryOperation dynamic_A_symbol_178 = (LibraryBinaryOperation)static_A_symbol_178.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_178 = dynamic_A_symbol_178.evaluate(evaluator, T_Boolean, A_symbol_175, A_symbol_177);
+				rightA_symbol_172 = A_symbol_178;
 			} catch (InvalidValueException e) {
-				rightA_symbol_242 = valueFactory.createInvalidValue(e);
+				rightA_symbol_172 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_248 = rightA_symbol_242;
-			DomainType static_A_symbol_242 = valueFactory.typeOf(A_symbol_244);
-			LibraryBinaryOperation dynamic_A_symbol_242 = (LibraryBinaryOperation)static_A_symbol_242.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_242 = dynamic_A_symbol_242.evaluate(evaluator, T_Boolean, A_symbol_244, A_symbol_248);
-			return A_symbol_242;
+			Value A_symbol_178 = rightA_symbol_172;
+			DomainType static_A_symbol_172 = valueFactory.typeOf(A_symbol_174);
+			LibraryBinaryOperation dynamic_A_symbol_172 = (LibraryBinaryOperation)static_A_symbol_172.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_172 = dynamic_A_symbol_172.evaluate(evaluator, T_Boolean, A_symbol_174, A_symbol_178);
+			return A_symbol_172;
 		}
 	}
 
@@ -1019,88 +1019,88 @@
 			final Value T_ClassClassifier_Pivot_ecore__pivot__OrderedSetType_ = valueFactory.createTypeValue(PivotTables.Types._OrderedSetType);
 			final Value T_ClassClassifier_Pivot_ecore__pivot__BagType_ = valueFactory.createTypeValue(PivotTables.Types._BagType);
 			
-			Value leftA_symbol_249;
+			Value leftA_symbol_179;
 			try {
 				
-				Value A_symbol_250 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_180 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_251 = valueFactory.typeOf(A_symbol_250, S_collect);
-				LibraryBinaryOperation dynamic_A_symbol_251 = (LibraryBinaryOperation)static_A_symbol_251.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_251 = dynamic_A_symbol_251.evaluate(evaluator, T_Boolean, A_symbol_250, S_collect);
-				leftA_symbol_249 = A_symbol_251;
+				DomainType static_A_symbol_181 = valueFactory.typeOf(A_symbol_180, S_collect);
+				LibraryBinaryOperation dynamic_A_symbol_181 = (LibraryBinaryOperation)static_A_symbol_181.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_181 = dynamic_A_symbol_181.evaluate(evaluator, T_Boolean, A_symbol_180, S_collect);
+				leftA_symbol_179 = A_symbol_181;
 			} catch (InvalidValueException e) {
-				leftA_symbol_249 = valueFactory.createInvalidValue(e);
+				leftA_symbol_179 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_251 = leftA_symbol_249;
-			Value rightA_symbol_249;
+			Value A_symbol_181 = leftA_symbol_179;
+			Value rightA_symbol_179;
 			try {
-					Value leftA_symbol_252;
+					Value leftA_symbol_182;
 					try {
 						
-						Value A_symbol_253 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
+						Value A_symbol_183 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
 						
-						Value A_symbol_254 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_253, P_TypedElement_type);
+						Value A_symbol_184 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_183, P_TypedElement_type);
 						
-						DomainType static_A_symbol_255 = valueFactory.typeOf(A_symbol_254);
-						LibraryBinaryOperation dynamic_A_symbol_255 = (LibraryBinaryOperation)static_A_symbol_255.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-						Value A_symbol_255 = dynamic_A_symbol_255.evaluate(evaluator, T_Boolean, A_symbol_254, T_ClassClassifier_Pivot_ecore__pivot__SequenceType_);
-						leftA_symbol_252 = A_symbol_255;
+						DomainType static_A_symbol_185 = valueFactory.typeOf(A_symbol_184);
+						LibraryBinaryOperation dynamic_A_symbol_185 = (LibraryBinaryOperation)static_A_symbol_185.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+						Value A_symbol_185 = dynamic_A_symbol_185.evaluate(evaluator, T_Boolean, A_symbol_184, T_ClassClassifier_Pivot_ecore__pivot__SequenceType_);
+						leftA_symbol_182 = A_symbol_185;
 					} catch (InvalidValueException e) {
-						leftA_symbol_252 = valueFactory.createInvalidValue(e);
+						leftA_symbol_182 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_255 = leftA_symbol_252;
-					Value rightA_symbol_252;
+					Value A_symbol_185 = leftA_symbol_182;
+					Value rightA_symbol_182;
 					try {
 						
-						Value A_symbol_256 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
+						Value A_symbol_186 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
 						
-						Value A_symbol_257 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_256, P_TypedElement_type);
+						Value A_symbol_187 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_186, P_TypedElement_type);
 						
-						DomainType static_A_symbol_258 = valueFactory.typeOf(A_symbol_257);
-						LibraryBinaryOperation dynamic_A_symbol_258 = (LibraryBinaryOperation)static_A_symbol_258.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-						Value A_symbol_258 = dynamic_A_symbol_258.evaluate(evaluator, T_Boolean, A_symbol_257, T_ClassClassifier_Pivot_ecore__pivot__OrderedSetType_);
-						rightA_symbol_252 = A_symbol_258;
+						DomainType static_A_symbol_188 = valueFactory.typeOf(A_symbol_187);
+						LibraryBinaryOperation dynamic_A_symbol_188 = (LibraryBinaryOperation)static_A_symbol_188.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+						Value A_symbol_188 = dynamic_A_symbol_188.evaluate(evaluator, T_Boolean, A_symbol_187, T_ClassClassifier_Pivot_ecore__pivot__OrderedSetType_);
+						rightA_symbol_182 = A_symbol_188;
 					} catch (InvalidValueException e) {
-						rightA_symbol_252 = valueFactory.createInvalidValue(e);
+						rightA_symbol_182 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_258 = rightA_symbol_252;
-					DomainType static_A_symbol_252 = valueFactory.typeOf(A_symbol_255);
-					LibraryBinaryOperation dynamic_A_symbol_252 = (LibraryBinaryOperation)static_A_symbol_252.lookupImplementation(standardLibrary, O_Boolean_or);
-					Value A_symbol_252 = dynamic_A_symbol_252.evaluate(evaluator, T_Boolean, A_symbol_255, A_symbol_258);
-				Value A_symbol_259;
-				if (A_symbol_252.isTrue()) {
+					Value A_symbol_188 = rightA_symbol_182;
+					DomainType static_A_symbol_182 = valueFactory.typeOf(A_symbol_185);
+					LibraryBinaryOperation dynamic_A_symbol_182 = (LibraryBinaryOperation)static_A_symbol_182.lookupImplementation(standardLibrary, O_Boolean_or);
+					Value A_symbol_182 = dynamic_A_symbol_182.evaluate(evaluator, T_Boolean, A_symbol_185, A_symbol_188);
+				Value A_symbol_189;
+				if (A_symbol_182.isTrue()) {
 					
-					Value A_symbol_260 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+					Value A_symbol_190 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 					
-					DomainType static_A_symbol_261 = valueFactory.typeOf(A_symbol_260);
-					LibraryBinaryOperation dynamic_A_symbol_261 = (LibraryBinaryOperation)static_A_symbol_261.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-					Value A_symbol_261 = dynamic_A_symbol_261.evaluate(evaluator, T_Boolean, A_symbol_260, T_ClassClassifier_Pivot_ecore__pivot__SequenceType_);
-					A_symbol_259 = A_symbol_261;
+					DomainType static_A_symbol_191 = valueFactory.typeOf(A_symbol_190);
+					LibraryBinaryOperation dynamic_A_symbol_191 = (LibraryBinaryOperation)static_A_symbol_191.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+					Value A_symbol_191 = dynamic_A_symbol_191.evaluate(evaluator, T_Boolean, A_symbol_190, T_ClassClassifier_Pivot_ecore__pivot__SequenceType_);
+					A_symbol_189 = A_symbol_191;
 				}
-				else if (A_symbol_252.isFalse()) {
+				else if (A_symbol_182.isFalse()) {
 					
-					Value A_symbol_262 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+					Value A_symbol_192 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 					
-					DomainType static_A_symbol_263 = valueFactory.typeOf(A_symbol_262);
-					LibraryBinaryOperation dynamic_A_symbol_263 = (LibraryBinaryOperation)static_A_symbol_263.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-					Value A_symbol_263 = dynamic_A_symbol_263.evaluate(evaluator, T_Boolean, A_symbol_262, T_ClassClassifier_Pivot_ecore__pivot__BagType_);
-					A_symbol_259 = A_symbol_263;
+					DomainType static_A_symbol_193 = valueFactory.typeOf(A_symbol_192);
+					LibraryBinaryOperation dynamic_A_symbol_193 = (LibraryBinaryOperation)static_A_symbol_193.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+					Value A_symbol_193 = dynamic_A_symbol_193.evaluate(evaluator, T_Boolean, A_symbol_192, T_ClassClassifier_Pivot_ecore__pivot__BagType_);
+					A_symbol_189 = A_symbol_193;
 				}
-				else if (A_symbol_252.isNull()) {
-					A_symbol_259 = valueFactory.throwInvalidValueException("null if condition");
+				else if (A_symbol_182.isNull()) {
+					A_symbol_189 = valueFactory.throwInvalidValueException("null if condition");
 				}
 				else {
-					A_symbol_259 = valueFactory.throwInvalidValueException("invalid if condition");
+					A_symbol_189 = valueFactory.throwInvalidValueException("invalid if condition");
 				}
-				rightA_symbol_249 = A_symbol_259;
+				rightA_symbol_179 = A_symbol_189;
 			} catch (InvalidValueException e) {
-				rightA_symbol_249 = valueFactory.createInvalidValue(e);
+				rightA_symbol_179 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_259 = rightA_symbol_249;
-			DomainType static_A_symbol_249 = valueFactory.typeOf(A_symbol_251);
-			LibraryBinaryOperation dynamic_A_symbol_249 = (LibraryBinaryOperation)static_A_symbol_249.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_249 = dynamic_A_symbol_249.evaluate(evaluator, T_Boolean, A_symbol_251, A_symbol_259);
-			return A_symbol_249;
+			Value A_symbol_189 = rightA_symbol_179;
+			DomainType static_A_symbol_179 = valueFactory.typeOf(A_symbol_181);
+			LibraryBinaryOperation dynamic_A_symbol_179 = (LibraryBinaryOperation)static_A_symbol_179.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_179 = dynamic_A_symbol_179.evaluate(evaluator, T_Boolean, A_symbol_181, A_symbol_189);
+			return A_symbol_179;
 		}
 	}
 
@@ -1133,38 +1133,38 @@
 			final LibraryProperty IP_LoopExp_body = P_LoopExp_body.getImplementation();
 			final Value T_ClassClassifier_Boolean_ = valueFactory.createTypeValue(OCLstdlibTables.Types._Boolean);
 			
-			Value leftA_symbol_264;
+			Value leftA_symbol_194;
 			try {
 				
-				Value A_symbol_265 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_195 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_266 = valueFactory.typeOf(A_symbol_265, S_exists);
-				LibraryBinaryOperation dynamic_A_symbol_266 = (LibraryBinaryOperation)static_A_symbol_266.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_266 = dynamic_A_symbol_266.evaluate(evaluator, T_Boolean, A_symbol_265, S_exists);
-				leftA_symbol_264 = A_symbol_266;
+				DomainType static_A_symbol_196 = valueFactory.typeOf(A_symbol_195, S_exists);
+				LibraryBinaryOperation dynamic_A_symbol_196 = (LibraryBinaryOperation)static_A_symbol_196.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_196 = dynamic_A_symbol_196.evaluate(evaluator, T_Boolean, A_symbol_195, S_exists);
+				leftA_symbol_194 = A_symbol_196;
 			} catch (InvalidValueException e) {
-				leftA_symbol_264 = valueFactory.createInvalidValue(e);
+				leftA_symbol_194 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_266 = leftA_symbol_264;
-			Value rightA_symbol_264;
+			Value A_symbol_196 = leftA_symbol_194;
+			Value rightA_symbol_194;
 			try {
 				
-				Value A_symbol_267 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
+				Value A_symbol_197 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
 				
-				Value A_symbol_268 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_267, P_TypedElement_type);
+				Value A_symbol_198 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_197, P_TypedElement_type);
 				
-				DomainType static_A_symbol_269 = valueFactory.typeOf(A_symbol_268, T_ClassClassifier_Boolean_);
-				LibraryBinaryOperation dynamic_A_symbol_269 = (LibraryBinaryOperation)static_A_symbol_269.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_269 = dynamic_A_symbol_269.evaluate(evaluator, T_Boolean, A_symbol_268, T_ClassClassifier_Boolean_);
-				rightA_symbol_264 = A_symbol_269;
+				DomainType static_A_symbol_199 = valueFactory.typeOf(A_symbol_198, T_ClassClassifier_Boolean_);
+				LibraryBinaryOperation dynamic_A_symbol_199 = (LibraryBinaryOperation)static_A_symbol_199.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_199 = dynamic_A_symbol_199.evaluate(evaluator, T_Boolean, A_symbol_198, T_ClassClassifier_Boolean_);
+				rightA_symbol_194 = A_symbol_199;
 			} catch (InvalidValueException e) {
-				rightA_symbol_264 = valueFactory.createInvalidValue(e);
+				rightA_symbol_194 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_269 = rightA_symbol_264;
-			DomainType static_A_symbol_264 = valueFactory.typeOf(A_symbol_266);
-			LibraryBinaryOperation dynamic_A_symbol_264 = (LibraryBinaryOperation)static_A_symbol_264.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_264 = dynamic_A_symbol_264.evaluate(evaluator, T_Boolean, A_symbol_266, A_symbol_269);
-			return A_symbol_264;
+			Value A_symbol_199 = rightA_symbol_194;
+			DomainType static_A_symbol_194 = valueFactory.typeOf(A_symbol_196);
+			LibraryBinaryOperation dynamic_A_symbol_194 = (LibraryBinaryOperation)static_A_symbol_194.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_194 = dynamic_A_symbol_194.evaluate(evaluator, T_Boolean, A_symbol_196, A_symbol_199);
+			return A_symbol_194;
 		}
 	}
 
@@ -1194,36 +1194,36 @@
 			final LibraryProperty IP_TypedElement_type = P_TypedElement_type.getImplementation();
 			final Value T_ClassClassifier_Boolean_ = valueFactory.createTypeValue(OCLstdlibTables.Types._Boolean);
 			
-			Value leftA_symbol_270;
+			Value leftA_symbol_200;
 			try {
 				
-				Value A_symbol_271 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_201 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_272 = valueFactory.typeOf(A_symbol_271, S_exists);
-				LibraryBinaryOperation dynamic_A_symbol_272 = (LibraryBinaryOperation)static_A_symbol_272.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_272 = dynamic_A_symbol_272.evaluate(evaluator, T_Boolean, A_symbol_271, S_exists);
-				leftA_symbol_270 = A_symbol_272;
+				DomainType static_A_symbol_202 = valueFactory.typeOf(A_symbol_201, S_exists);
+				LibraryBinaryOperation dynamic_A_symbol_202 = (LibraryBinaryOperation)static_A_symbol_202.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_202 = dynamic_A_symbol_202.evaluate(evaluator, T_Boolean, A_symbol_201, S_exists);
+				leftA_symbol_200 = A_symbol_202;
 			} catch (InvalidValueException e) {
-				leftA_symbol_270 = valueFactory.createInvalidValue(e);
+				leftA_symbol_200 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_272 = leftA_symbol_270;
-			Value rightA_symbol_270;
+			Value A_symbol_202 = leftA_symbol_200;
+			Value rightA_symbol_200;
 			try {
 				
-				Value A_symbol_273 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_203 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
-				DomainType static_A_symbol_274 = valueFactory.typeOf(A_symbol_273, T_ClassClassifier_Boolean_);
-				LibraryBinaryOperation dynamic_A_symbol_274 = (LibraryBinaryOperation)static_A_symbol_274.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_274 = dynamic_A_symbol_274.evaluate(evaluator, T_Boolean, A_symbol_273, T_ClassClassifier_Boolean_);
-				rightA_symbol_270 = A_symbol_274;
+				DomainType static_A_symbol_204 = valueFactory.typeOf(A_symbol_203, T_ClassClassifier_Boolean_);
+				LibraryBinaryOperation dynamic_A_symbol_204 = (LibraryBinaryOperation)static_A_symbol_204.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_204 = dynamic_A_symbol_204.evaluate(evaluator, T_Boolean, A_symbol_203, T_ClassClassifier_Boolean_);
+				rightA_symbol_200 = A_symbol_204;
 			} catch (InvalidValueException e) {
-				rightA_symbol_270 = valueFactory.createInvalidValue(e);
+				rightA_symbol_200 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_274 = rightA_symbol_270;
-			DomainType static_A_symbol_270 = valueFactory.typeOf(A_symbol_272);
-			LibraryBinaryOperation dynamic_A_symbol_270 = (LibraryBinaryOperation)static_A_symbol_270.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_270 = dynamic_A_symbol_270.evaluate(evaluator, T_Boolean, A_symbol_272, A_symbol_274);
-			return A_symbol_270;
+			Value A_symbol_204 = rightA_symbol_200;
+			DomainType static_A_symbol_200 = valueFactory.typeOf(A_symbol_202);
+			LibraryBinaryOperation dynamic_A_symbol_200 = (LibraryBinaryOperation)static_A_symbol_200.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_200 = dynamic_A_symbol_200.evaluate(evaluator, T_Boolean, A_symbol_202, A_symbol_204);
+			return A_symbol_200;
 		}
 	}
 
@@ -1256,38 +1256,38 @@
 			final LibraryProperty IP_LoopExp_body = P_LoopExp_body.getImplementation();
 			final Value T_ClassClassifier_Boolean_ = valueFactory.createTypeValue(OCLstdlibTables.Types._Boolean);
 			
-			Value leftA_symbol_275;
+			Value leftA_symbol_205;
 			try {
 				
-				Value A_symbol_276 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_206 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_277 = valueFactory.typeOf(A_symbol_276, S_forAll);
-				LibraryBinaryOperation dynamic_A_symbol_277 = (LibraryBinaryOperation)static_A_symbol_277.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_277 = dynamic_A_symbol_277.evaluate(evaluator, T_Boolean, A_symbol_276, S_forAll);
-				leftA_symbol_275 = A_symbol_277;
+				DomainType static_A_symbol_207 = valueFactory.typeOf(A_symbol_206, S_forAll);
+				LibraryBinaryOperation dynamic_A_symbol_207 = (LibraryBinaryOperation)static_A_symbol_207.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_207 = dynamic_A_symbol_207.evaluate(evaluator, T_Boolean, A_symbol_206, S_forAll);
+				leftA_symbol_205 = A_symbol_207;
 			} catch (InvalidValueException e) {
-				leftA_symbol_275 = valueFactory.createInvalidValue(e);
+				leftA_symbol_205 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_277 = leftA_symbol_275;
-			Value rightA_symbol_275;
+			Value A_symbol_207 = leftA_symbol_205;
+			Value rightA_symbol_205;
 			try {
 				
-				Value A_symbol_278 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
+				Value A_symbol_208 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
 				
-				Value A_symbol_279 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_278, P_TypedElement_type);
+				Value A_symbol_209 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_208, P_TypedElement_type);
 				
-				DomainType static_A_symbol_280 = valueFactory.typeOf(A_symbol_279, T_ClassClassifier_Boolean_);
-				LibraryBinaryOperation dynamic_A_symbol_280 = (LibraryBinaryOperation)static_A_symbol_280.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_280 = dynamic_A_symbol_280.evaluate(evaluator, T_Boolean, A_symbol_279, T_ClassClassifier_Boolean_);
-				rightA_symbol_275 = A_symbol_280;
+				DomainType static_A_symbol_210 = valueFactory.typeOf(A_symbol_209, T_ClassClassifier_Boolean_);
+				LibraryBinaryOperation dynamic_A_symbol_210 = (LibraryBinaryOperation)static_A_symbol_210.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_210 = dynamic_A_symbol_210.evaluate(evaluator, T_Boolean, A_symbol_209, T_ClassClassifier_Boolean_);
+				rightA_symbol_205 = A_symbol_210;
 			} catch (InvalidValueException e) {
-				rightA_symbol_275 = valueFactory.createInvalidValue(e);
+				rightA_symbol_205 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_280 = rightA_symbol_275;
-			DomainType static_A_symbol_275 = valueFactory.typeOf(A_symbol_277);
-			LibraryBinaryOperation dynamic_A_symbol_275 = (LibraryBinaryOperation)static_A_symbol_275.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_275 = dynamic_A_symbol_275.evaluate(evaluator, T_Boolean, A_symbol_277, A_symbol_280);
-			return A_symbol_275;
+			Value A_symbol_210 = rightA_symbol_205;
+			DomainType static_A_symbol_205 = valueFactory.typeOf(A_symbol_207);
+			LibraryBinaryOperation dynamic_A_symbol_205 = (LibraryBinaryOperation)static_A_symbol_205.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_205 = dynamic_A_symbol_205.evaluate(evaluator, T_Boolean, A_symbol_207, A_symbol_210);
+			return A_symbol_205;
 		}
 	}
 
@@ -1317,36 +1317,36 @@
 			final LibraryProperty IP_TypedElement_type = P_TypedElement_type.getImplementation();
 			final Value T_ClassClassifier_Boolean_ = valueFactory.createTypeValue(OCLstdlibTables.Types._Boolean);
 			
-			Value leftA_symbol_281;
+			Value leftA_symbol_211;
 			try {
 				
-				Value A_symbol_282 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_212 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_283 = valueFactory.typeOf(A_symbol_282, S_forAll);
-				LibraryBinaryOperation dynamic_A_symbol_283 = (LibraryBinaryOperation)static_A_symbol_283.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_283 = dynamic_A_symbol_283.evaluate(evaluator, T_Boolean, A_symbol_282, S_forAll);
-				leftA_symbol_281 = A_symbol_283;
+				DomainType static_A_symbol_213 = valueFactory.typeOf(A_symbol_212, S_forAll);
+				LibraryBinaryOperation dynamic_A_symbol_213 = (LibraryBinaryOperation)static_A_symbol_213.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_213 = dynamic_A_symbol_213.evaluate(evaluator, T_Boolean, A_symbol_212, S_forAll);
+				leftA_symbol_211 = A_symbol_213;
 			} catch (InvalidValueException e) {
-				leftA_symbol_281 = valueFactory.createInvalidValue(e);
+				leftA_symbol_211 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_283 = leftA_symbol_281;
-			Value rightA_symbol_281;
+			Value A_symbol_213 = leftA_symbol_211;
+			Value rightA_symbol_211;
 			try {
 				
-				Value A_symbol_284 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_214 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
-				DomainType static_A_symbol_285 = valueFactory.typeOf(A_symbol_284, T_ClassClassifier_Boolean_);
-				LibraryBinaryOperation dynamic_A_symbol_285 = (LibraryBinaryOperation)static_A_symbol_285.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_285 = dynamic_A_symbol_285.evaluate(evaluator, T_Boolean, A_symbol_284, T_ClassClassifier_Boolean_);
-				rightA_symbol_281 = A_symbol_285;
+				DomainType static_A_symbol_215 = valueFactory.typeOf(A_symbol_214, T_ClassClassifier_Boolean_);
+				LibraryBinaryOperation dynamic_A_symbol_215 = (LibraryBinaryOperation)static_A_symbol_215.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_215 = dynamic_A_symbol_215.evaluate(evaluator, T_Boolean, A_symbol_214, T_ClassClassifier_Boolean_);
+				rightA_symbol_211 = A_symbol_215;
 			} catch (InvalidValueException e) {
-				rightA_symbol_281 = valueFactory.createInvalidValue(e);
+				rightA_symbol_211 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_285 = rightA_symbol_281;
-			DomainType static_A_symbol_281 = valueFactory.typeOf(A_symbol_283);
-			LibraryBinaryOperation dynamic_A_symbol_281 = (LibraryBinaryOperation)static_A_symbol_281.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_281 = dynamic_A_symbol_281.evaluate(evaluator, T_Boolean, A_symbol_283, A_symbol_285);
-			return A_symbol_281;
+			Value A_symbol_215 = rightA_symbol_211;
+			DomainType static_A_symbol_211 = valueFactory.typeOf(A_symbol_213);
+			LibraryBinaryOperation dynamic_A_symbol_211 = (LibraryBinaryOperation)static_A_symbol_211.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_211 = dynamic_A_symbol_211.evaluate(evaluator, T_Boolean, A_symbol_213, A_symbol_215);
+			return A_symbol_211;
 		}
 	}
 
@@ -1379,39 +1379,39 @@
 			final LibraryProperty IP_LoopExp_iterator = P_LoopExp_iterator.getImplementation();
 			final IntegerValue I_1 = valueFactory.integerValueOf(1);
 			
-			Value leftA_symbol_286;
+			Value leftA_symbol_216;
 			try {
 				
-				Value A_symbol_287 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_217 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_288 = valueFactory.typeOf(A_symbol_287, S_isUnique);
-				LibraryBinaryOperation dynamic_A_symbol_288 = (LibraryBinaryOperation)static_A_symbol_288.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_288 = dynamic_A_symbol_288.evaluate(evaluator, T_Boolean, A_symbol_287, S_isUnique);
-				leftA_symbol_286 = A_symbol_288;
+				DomainType static_A_symbol_218 = valueFactory.typeOf(A_symbol_217, S_isUnique);
+				LibraryBinaryOperation dynamic_A_symbol_218 = (LibraryBinaryOperation)static_A_symbol_218.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_218 = dynamic_A_symbol_218.evaluate(evaluator, T_Boolean, A_symbol_217, S_isUnique);
+				leftA_symbol_216 = A_symbol_218;
 			} catch (InvalidValueException e) {
-				leftA_symbol_286 = valueFactory.createInvalidValue(e);
+				leftA_symbol_216 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_288 = leftA_symbol_286;
-			Value rightA_symbol_286;
+			Value A_symbol_218 = leftA_symbol_216;
+			Value rightA_symbol_216;
 			try {
 				
-				Value A_symbol_289 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
+				Value A_symbol_219 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
 				
-				DomainType static_A_symbol_290 = valueFactory.typeOf(A_symbol_289);
-				LibraryUnaryOperation dynamic_A_symbol_290 = (LibraryUnaryOperation)static_A_symbol_290.lookupImplementation(standardLibrary, O_Collection_size);
-				Value A_symbol_290 = dynamic_A_symbol_290.evaluate(evaluator, T_Integer, A_symbol_289);
-				DomainType static_A_symbol_291 = valueFactory.typeOf(A_symbol_290, I_1);
-				LibraryBinaryOperation dynamic_A_symbol_291 = (LibraryBinaryOperation)static_A_symbol_291.lookupImplementation(standardLibrary, O_Real__eq_);
-				Value A_symbol_291 = dynamic_A_symbol_291.evaluate(evaluator, T_Boolean, A_symbol_290, I_1);
-				rightA_symbol_286 = A_symbol_291;
+				DomainType static_A_symbol_220 = valueFactory.typeOf(A_symbol_219);
+				LibraryUnaryOperation dynamic_A_symbol_220 = (LibraryUnaryOperation)static_A_symbol_220.lookupImplementation(standardLibrary, O_Collection_size);
+				Value A_symbol_220 = dynamic_A_symbol_220.evaluate(evaluator, T_Integer, A_symbol_219);
+				DomainType static_A_symbol_221 = valueFactory.typeOf(A_symbol_220, I_1);
+				LibraryBinaryOperation dynamic_A_symbol_221 = (LibraryBinaryOperation)static_A_symbol_221.lookupImplementation(standardLibrary, O_Real__eq_);
+				Value A_symbol_221 = dynamic_A_symbol_221.evaluate(evaluator, T_Boolean, A_symbol_220, I_1);
+				rightA_symbol_216 = A_symbol_221;
 			} catch (InvalidValueException e) {
-				rightA_symbol_286 = valueFactory.createInvalidValue(e);
+				rightA_symbol_216 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_291 = rightA_symbol_286;
-			DomainType static_A_symbol_286 = valueFactory.typeOf(A_symbol_288);
-			LibraryBinaryOperation dynamic_A_symbol_286 = (LibraryBinaryOperation)static_A_symbol_286.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_286 = dynamic_A_symbol_286.evaluate(evaluator, T_Boolean, A_symbol_288, A_symbol_291);
-			return A_symbol_286;
+			Value A_symbol_221 = rightA_symbol_216;
+			DomainType static_A_symbol_216 = valueFactory.typeOf(A_symbol_218);
+			LibraryBinaryOperation dynamic_A_symbol_216 = (LibraryBinaryOperation)static_A_symbol_216.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_216 = dynamic_A_symbol_216.evaluate(evaluator, T_Boolean, A_symbol_218, A_symbol_221);
+			return A_symbol_216;
 		}
 	}
 
@@ -1441,36 +1441,36 @@
 			final LibraryProperty IP_TypedElement_type = P_TypedElement_type.getImplementation();
 			final Value T_ClassClassifier_Boolean_ = valueFactory.createTypeValue(OCLstdlibTables.Types._Boolean);
 			
-			Value leftA_symbol_292;
+			Value leftA_symbol_222;
 			try {
 				
-				Value A_symbol_293 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_223 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_294 = valueFactory.typeOf(A_symbol_293, S_isUnique);
-				LibraryBinaryOperation dynamic_A_symbol_294 = (LibraryBinaryOperation)static_A_symbol_294.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_294 = dynamic_A_symbol_294.evaluate(evaluator, T_Boolean, A_symbol_293, S_isUnique);
-				leftA_symbol_292 = A_symbol_294;
+				DomainType static_A_symbol_224 = valueFactory.typeOf(A_symbol_223, S_isUnique);
+				LibraryBinaryOperation dynamic_A_symbol_224 = (LibraryBinaryOperation)static_A_symbol_224.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_224 = dynamic_A_symbol_224.evaluate(evaluator, T_Boolean, A_symbol_223, S_isUnique);
+				leftA_symbol_222 = A_symbol_224;
 			} catch (InvalidValueException e) {
-				leftA_symbol_292 = valueFactory.createInvalidValue(e);
+				leftA_symbol_222 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_294 = leftA_symbol_292;
-			Value rightA_symbol_292;
+			Value A_symbol_224 = leftA_symbol_222;
+			Value rightA_symbol_222;
 			try {
 				
-				Value A_symbol_295 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_225 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
-				DomainType static_A_symbol_296 = valueFactory.typeOf(A_symbol_295, T_ClassClassifier_Boolean_);
-				LibraryBinaryOperation dynamic_A_symbol_296 = (LibraryBinaryOperation)static_A_symbol_296.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_296 = dynamic_A_symbol_296.evaluate(evaluator, T_Boolean, A_symbol_295, T_ClassClassifier_Boolean_);
-				rightA_symbol_292 = A_symbol_296;
+				DomainType static_A_symbol_226 = valueFactory.typeOf(A_symbol_225, T_ClassClassifier_Boolean_);
+				LibraryBinaryOperation dynamic_A_symbol_226 = (LibraryBinaryOperation)static_A_symbol_226.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_226 = dynamic_A_symbol_226.evaluate(evaluator, T_Boolean, A_symbol_225, T_ClassClassifier_Boolean_);
+				rightA_symbol_222 = A_symbol_226;
 			} catch (InvalidValueException e) {
-				rightA_symbol_292 = valueFactory.createInvalidValue(e);
+				rightA_symbol_222 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_296 = rightA_symbol_292;
-			DomainType static_A_symbol_292 = valueFactory.typeOf(A_symbol_294);
-			LibraryBinaryOperation dynamic_A_symbol_292 = (LibraryBinaryOperation)static_A_symbol_292.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_292 = dynamic_A_symbol_292.evaluate(evaluator, T_Boolean, A_symbol_294, A_symbol_296);
-			return A_symbol_292;
+			Value A_symbol_226 = rightA_symbol_222;
+			DomainType static_A_symbol_222 = valueFactory.typeOf(A_symbol_224);
+			LibraryBinaryOperation dynamic_A_symbol_222 = (LibraryBinaryOperation)static_A_symbol_222.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_222 = dynamic_A_symbol_222.evaluate(evaluator, T_Boolean, A_symbol_224, A_symbol_226);
+			return A_symbol_222;
 		}
 	}
 
@@ -1489,7 +1489,7 @@
 			final ValueFactory valueFactory = evaluator.getValueFactory();
 			final DomainStandardLibrary standardLibrary = valueFactory.getStandardLibrary();
 			final ExecutorType T_Boolean = OCLstdlibTables.Types._Boolean;
-			final ExecutorOperation O_Collection_forAll = OCLstdlibTables.Operations._Collection__0_forAll;
+			final ExecutorOperation O_Collection_forAll = OCLstdlibTables.Operations._Collection__1_forAll;
 			final ExecutorType T_Pivot_ecore__pivot__Variable = PivotTables.Types._Variable;
 			final DomainCollectionType T_OrderedSet_Pivot_ecore__pivot__Variable_ = standardLibrary.getOrderedSetType(T_Pivot_ecore__pivot__Variable);
 			final ExecutorProperty P_LoopExp_iterator = PivotTables.Properties._LoopExp__iterator;
@@ -1508,13 +1508,13 @@
 			final Value T_ClassClassifier_Pivot_ecore__pivot__CollectionType_ = valueFactory.createTypeValue(PivotTables.Types._CollectionType);
 			
 			
-			Value A_symbol_297 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
+			Value A_symbol_227 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
 			
 			
 			/** 
 			 * Implementation of the iterator body.
 			 */
-			AbstractBinaryOperation body_A_symbol_298 = new AbstractBinaryOperation()
+			AbstractBinaryOperation body_A_symbol_228 = new AbstractBinaryOperation()
 			{
 			/*
 			type =
@@ -1523,30 +1523,30 @@
 				public Value evaluate(DomainEvaluator evaluator, DomainType returnType, Value sourceValue, Value iterator1) throws InvalidValueException {
 					final Value V_1_ = iterator1;	// iterator: 1_
 					
-					Value A_symbol_299 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, V_1_, P_TypedElement_type);
+					Value A_symbol_229 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, V_1_, P_TypedElement_type);
 					
 					
-					Value A_symbol_300 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
+					Value A_symbol_230 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
 					
-					Value A_symbol_301 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_300, P_TypedElement_type);
+					Value A_symbol_231 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_230, P_TypedElement_type);
 					
-					DomainType static_A_symbol_302 = valueFactory.typeOf(A_symbol_301);
-					LibraryBinaryOperation dynamic_A_symbol_302 = (LibraryBinaryOperation)static_A_symbol_302.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
-					Value A_symbol_302 = dynamic_A_symbol_302.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_301, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-					Value A_symbol_303 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_302, P_CollectionType_elementType);
+					DomainType static_A_symbol_232 = valueFactory.typeOf(A_symbol_231);
+					LibraryBinaryOperation dynamic_A_symbol_232 = (LibraryBinaryOperation)static_A_symbol_232.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
+					Value A_symbol_232 = dynamic_A_symbol_232.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_231, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+					Value A_symbol_233 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_232, P_CollectionType_elementType);
 					
-					DomainType static_A_symbol_304 = valueFactory.typeOf(A_symbol_299, A_symbol_303);
-					LibraryBinaryOperation dynamic_A_symbol_304 = (LibraryBinaryOperation)static_A_symbol_304.lookupImplementation(standardLibrary, O_OclAny__eq_);
-					Value A_symbol_304 = dynamic_A_symbol_304.evaluate(evaluator, T_Boolean, A_symbol_299, A_symbol_303);
-					return A_symbol_304;
+					DomainType static_A_symbol_234 = valueFactory.typeOf(A_symbol_229, A_symbol_233);
+					LibraryBinaryOperation dynamic_A_symbol_234 = (LibraryBinaryOperation)static_A_symbol_234.lookupImplementation(standardLibrary, O_OclAny__eq_);
+					Value A_symbol_234 = dynamic_A_symbol_234.evaluate(evaluator, T_Boolean, A_symbol_229, A_symbol_233);
+					return A_symbol_234;
 				}
 			};
-			DomainType static_A_symbol_298 = A_symbol_297.getType();
-			LibraryIteration dynamic_A_symbol_298 = (LibraryIteration)static_A_symbol_298.lookupImplementation(standardLibrary, O_Collection_forAll);
-			Value acc_A_symbol_298 = dynamic_A_symbol_298.createAccumulatorValue(evaluator, T_Boolean, T_Boolean);
-			ExecutorSingleIterationManager manager_A_symbol_298 = new ExecutorSingleIterationManager(evaluator, T_Boolean, body_A_symbol_298, (CollectionValue)A_symbol_297, acc_A_symbol_298);
-			Value A_symbol_298 = dynamic_A_symbol_298.evaluateIteration(manager_A_symbol_298);
-			return A_symbol_298;
+			DomainType static_A_symbol_228 = A_symbol_227.getType();
+			LibraryIteration dynamic_A_symbol_228 = (LibraryIteration)static_A_symbol_228.lookupImplementation(standardLibrary, O_Collection_forAll);
+			Value acc_A_symbol_228 = dynamic_A_symbol_228.createAccumulatorValue(evaluator, T_Boolean, T_Boolean);
+			ExecutorSingleIterationManager manager_A_symbol_228 = new ExecutorSingleIterationManager(evaluator, T_Boolean, body_A_symbol_228, (CollectionValue)A_symbol_227, acc_A_symbol_228);
+			Value A_symbol_228 = dynamic_A_symbol_228.evaluateIteration(manager_A_symbol_228);
+			return A_symbol_228;
 		}
 	}
 
@@ -1579,38 +1579,38 @@
 			final LibraryProperty IP_LoopExp_body = P_LoopExp_body.getImplementation();
 			final Value T_ClassClassifier_Boolean_ = valueFactory.createTypeValue(OCLstdlibTables.Types._Boolean);
 			
-			Value leftA_symbol_305;
+			Value leftA_symbol_235;
 			try {
 				
-				Value A_symbol_306 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_236 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_307 = valueFactory.typeOf(A_symbol_306, S_one);
-				LibraryBinaryOperation dynamic_A_symbol_307 = (LibraryBinaryOperation)static_A_symbol_307.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_307 = dynamic_A_symbol_307.evaluate(evaluator, T_Boolean, A_symbol_306, S_one);
-				leftA_symbol_305 = A_symbol_307;
+				DomainType static_A_symbol_237 = valueFactory.typeOf(A_symbol_236, S_one);
+				LibraryBinaryOperation dynamic_A_symbol_237 = (LibraryBinaryOperation)static_A_symbol_237.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_237 = dynamic_A_symbol_237.evaluate(evaluator, T_Boolean, A_symbol_236, S_one);
+				leftA_symbol_235 = A_symbol_237;
 			} catch (InvalidValueException e) {
-				leftA_symbol_305 = valueFactory.createInvalidValue(e);
+				leftA_symbol_235 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_307 = leftA_symbol_305;
-			Value rightA_symbol_305;
+			Value A_symbol_237 = leftA_symbol_235;
+			Value rightA_symbol_235;
 			try {
 				
-				Value A_symbol_308 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
+				Value A_symbol_238 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
 				
-				Value A_symbol_309 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_308, P_TypedElement_type);
+				Value A_symbol_239 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_238, P_TypedElement_type);
 				
-				DomainType static_A_symbol_310 = valueFactory.typeOf(A_symbol_309, T_ClassClassifier_Boolean_);
-				LibraryBinaryOperation dynamic_A_symbol_310 = (LibraryBinaryOperation)static_A_symbol_310.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_310 = dynamic_A_symbol_310.evaluate(evaluator, T_Boolean, A_symbol_309, T_ClassClassifier_Boolean_);
-				rightA_symbol_305 = A_symbol_310;
+				DomainType static_A_symbol_240 = valueFactory.typeOf(A_symbol_239, T_ClassClassifier_Boolean_);
+				LibraryBinaryOperation dynamic_A_symbol_240 = (LibraryBinaryOperation)static_A_symbol_240.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_240 = dynamic_A_symbol_240.evaluate(evaluator, T_Boolean, A_symbol_239, T_ClassClassifier_Boolean_);
+				rightA_symbol_235 = A_symbol_240;
 			} catch (InvalidValueException e) {
-				rightA_symbol_305 = valueFactory.createInvalidValue(e);
+				rightA_symbol_235 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_310 = rightA_symbol_305;
-			DomainType static_A_symbol_305 = valueFactory.typeOf(A_symbol_307);
-			LibraryBinaryOperation dynamic_A_symbol_305 = (LibraryBinaryOperation)static_A_symbol_305.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_305 = dynamic_A_symbol_305.evaluate(evaluator, T_Boolean, A_symbol_307, A_symbol_310);
-			return A_symbol_305;
+			Value A_symbol_240 = rightA_symbol_235;
+			DomainType static_A_symbol_235 = valueFactory.typeOf(A_symbol_237);
+			LibraryBinaryOperation dynamic_A_symbol_235 = (LibraryBinaryOperation)static_A_symbol_235.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_235 = dynamic_A_symbol_235.evaluate(evaluator, T_Boolean, A_symbol_237, A_symbol_240);
+			return A_symbol_235;
 		}
 	}
 
@@ -1643,39 +1643,39 @@
 			final LibraryProperty IP_LoopExp_iterator = P_LoopExp_iterator.getImplementation();
 			final IntegerValue I_1 = valueFactory.integerValueOf(1);
 			
-			Value leftA_symbol_311;
+			Value leftA_symbol_241;
 			try {
 				
-				Value A_symbol_312 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_242 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_313 = valueFactory.typeOf(A_symbol_312, S_one);
-				LibraryBinaryOperation dynamic_A_symbol_313 = (LibraryBinaryOperation)static_A_symbol_313.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_313 = dynamic_A_symbol_313.evaluate(evaluator, T_Boolean, A_symbol_312, S_one);
-				leftA_symbol_311 = A_symbol_313;
+				DomainType static_A_symbol_243 = valueFactory.typeOf(A_symbol_242, S_one);
+				LibraryBinaryOperation dynamic_A_symbol_243 = (LibraryBinaryOperation)static_A_symbol_243.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_243 = dynamic_A_symbol_243.evaluate(evaluator, T_Boolean, A_symbol_242, S_one);
+				leftA_symbol_241 = A_symbol_243;
 			} catch (InvalidValueException e) {
-				leftA_symbol_311 = valueFactory.createInvalidValue(e);
+				leftA_symbol_241 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_313 = leftA_symbol_311;
-			Value rightA_symbol_311;
+			Value A_symbol_243 = leftA_symbol_241;
+			Value rightA_symbol_241;
 			try {
 				
-				Value A_symbol_314 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
+				Value A_symbol_244 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
 				
-				DomainType static_A_symbol_315 = valueFactory.typeOf(A_symbol_314);
-				LibraryUnaryOperation dynamic_A_symbol_315 = (LibraryUnaryOperation)static_A_symbol_315.lookupImplementation(standardLibrary, O_Collection_size);
-				Value A_symbol_315 = dynamic_A_symbol_315.evaluate(evaluator, T_Integer, A_symbol_314);
-				DomainType static_A_symbol_316 = valueFactory.typeOf(A_symbol_315, I_1);
-				LibraryBinaryOperation dynamic_A_symbol_316 = (LibraryBinaryOperation)static_A_symbol_316.lookupImplementation(standardLibrary, O_Real__eq_);
-				Value A_symbol_316 = dynamic_A_symbol_316.evaluate(evaluator, T_Boolean, A_symbol_315, I_1);
-				rightA_symbol_311 = A_symbol_316;
+				DomainType static_A_symbol_245 = valueFactory.typeOf(A_symbol_244);
+				LibraryUnaryOperation dynamic_A_symbol_245 = (LibraryUnaryOperation)static_A_symbol_245.lookupImplementation(standardLibrary, O_Collection_size);
+				Value A_symbol_245 = dynamic_A_symbol_245.evaluate(evaluator, T_Integer, A_symbol_244);
+				DomainType static_A_symbol_246 = valueFactory.typeOf(A_symbol_245, I_1);
+				LibraryBinaryOperation dynamic_A_symbol_246 = (LibraryBinaryOperation)static_A_symbol_246.lookupImplementation(standardLibrary, O_Real__eq_);
+				Value A_symbol_246 = dynamic_A_symbol_246.evaluate(evaluator, T_Boolean, A_symbol_245, I_1);
+				rightA_symbol_241 = A_symbol_246;
 			} catch (InvalidValueException e) {
-				rightA_symbol_311 = valueFactory.createInvalidValue(e);
+				rightA_symbol_241 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_316 = rightA_symbol_311;
-			DomainType static_A_symbol_311 = valueFactory.typeOf(A_symbol_313);
-			LibraryBinaryOperation dynamic_A_symbol_311 = (LibraryBinaryOperation)static_A_symbol_311.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_311 = dynamic_A_symbol_311.evaluate(evaluator, T_Boolean, A_symbol_313, A_symbol_316);
-			return A_symbol_311;
+			Value A_symbol_246 = rightA_symbol_241;
+			DomainType static_A_symbol_241 = valueFactory.typeOf(A_symbol_243);
+			LibraryBinaryOperation dynamic_A_symbol_241 = (LibraryBinaryOperation)static_A_symbol_241.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_241 = dynamic_A_symbol_241.evaluate(evaluator, T_Boolean, A_symbol_243, A_symbol_246);
+			return A_symbol_241;
 		}
 	}
 
@@ -1705,36 +1705,36 @@
 			final LibraryProperty IP_TypedElement_type = P_TypedElement_type.getImplementation();
 			final Value T_ClassClassifier_Boolean_ = valueFactory.createTypeValue(OCLstdlibTables.Types._Boolean);
 			
-			Value leftA_symbol_317;
+			Value leftA_symbol_247;
 			try {
 				
-				Value A_symbol_318 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_248 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_319 = valueFactory.typeOf(A_symbol_318, S_one);
-				LibraryBinaryOperation dynamic_A_symbol_319 = (LibraryBinaryOperation)static_A_symbol_319.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_319 = dynamic_A_symbol_319.evaluate(evaluator, T_Boolean, A_symbol_318, S_one);
-				leftA_symbol_317 = A_symbol_319;
+				DomainType static_A_symbol_249 = valueFactory.typeOf(A_symbol_248, S_one);
+				LibraryBinaryOperation dynamic_A_symbol_249 = (LibraryBinaryOperation)static_A_symbol_249.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_249 = dynamic_A_symbol_249.evaluate(evaluator, T_Boolean, A_symbol_248, S_one);
+				leftA_symbol_247 = A_symbol_249;
 			} catch (InvalidValueException e) {
-				leftA_symbol_317 = valueFactory.createInvalidValue(e);
+				leftA_symbol_247 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_319 = leftA_symbol_317;
-			Value rightA_symbol_317;
+			Value A_symbol_249 = leftA_symbol_247;
+			Value rightA_symbol_247;
 			try {
 				
-				Value A_symbol_320 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_250 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
-				DomainType static_A_symbol_321 = valueFactory.typeOf(A_symbol_320, T_ClassClassifier_Boolean_);
-				LibraryBinaryOperation dynamic_A_symbol_321 = (LibraryBinaryOperation)static_A_symbol_321.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_321 = dynamic_A_symbol_321.evaluate(evaluator, T_Boolean, A_symbol_320, T_ClassClassifier_Boolean_);
-				rightA_symbol_317 = A_symbol_321;
+				DomainType static_A_symbol_251 = valueFactory.typeOf(A_symbol_250, T_ClassClassifier_Boolean_);
+				LibraryBinaryOperation dynamic_A_symbol_251 = (LibraryBinaryOperation)static_A_symbol_251.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_251 = dynamic_A_symbol_251.evaluate(evaluator, T_Boolean, A_symbol_250, T_ClassClassifier_Boolean_);
+				rightA_symbol_247 = A_symbol_251;
 			} catch (InvalidValueException e) {
-				rightA_symbol_317 = valueFactory.createInvalidValue(e);
+				rightA_symbol_247 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_321 = rightA_symbol_317;
-			DomainType static_A_symbol_317 = valueFactory.typeOf(A_symbol_319);
-			LibraryBinaryOperation dynamic_A_symbol_317 = (LibraryBinaryOperation)static_A_symbol_317.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_317 = dynamic_A_symbol_317.evaluate(evaluator, T_Boolean, A_symbol_319, A_symbol_321);
-			return A_symbol_317;
+			Value A_symbol_251 = rightA_symbol_247;
+			DomainType static_A_symbol_247 = valueFactory.typeOf(A_symbol_249);
+			LibraryBinaryOperation dynamic_A_symbol_247 = (LibraryBinaryOperation)static_A_symbol_247.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_247 = dynamic_A_symbol_247.evaluate(evaluator, T_Boolean, A_symbol_249, A_symbol_251);
+			return A_symbol_247;
 		}
 	}
 
@@ -1769,62 +1769,62 @@
 			final LibraryProperty IP_LoopExp_iterator = P_LoopExp_iterator.getImplementation();
 			final IntegerValue I_1 = valueFactory.integerValueOf(1);
 			
-			Value leftA_symbol_322;
+			Value leftA_symbol_252;
 			try {
-				Value leftA_symbol_323;
+				Value leftA_symbol_253;
 				try {
 					
-					Value A_symbol_324 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+					Value A_symbol_254 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 					
-					DomainType static_A_symbol_325 = valueFactory.typeOf(A_symbol_324, S_reject);
-					LibraryBinaryOperation dynamic_A_symbol_325 = (LibraryBinaryOperation)static_A_symbol_325.lookupImplementation(standardLibrary, O_String__eq_);
-					Value A_symbol_325 = dynamic_A_symbol_325.evaluate(evaluator, T_Boolean, A_symbol_324, S_reject);
-					leftA_symbol_323 = A_symbol_325;
+					DomainType static_A_symbol_255 = valueFactory.typeOf(A_symbol_254, S_reject);
+					LibraryBinaryOperation dynamic_A_symbol_255 = (LibraryBinaryOperation)static_A_symbol_255.lookupImplementation(standardLibrary, O_String__eq_);
+					Value A_symbol_255 = dynamic_A_symbol_255.evaluate(evaluator, T_Boolean, A_symbol_254, S_reject);
+					leftA_symbol_253 = A_symbol_255;
 				} catch (InvalidValueException e) {
-					leftA_symbol_323 = valueFactory.createInvalidValue(e);
+					leftA_symbol_253 = valueFactory.createInvalidValue(e);
 				}
-				Value A_symbol_325 = leftA_symbol_323;
-				Value rightA_symbol_323;
+				Value A_symbol_255 = leftA_symbol_253;
+				Value rightA_symbol_253;
 				try {
 					
-					Value A_symbol_326 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+					Value A_symbol_256 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 					
-					DomainType static_A_symbol_327 = valueFactory.typeOf(A_symbol_326, S_select);
-					LibraryBinaryOperation dynamic_A_symbol_327 = (LibraryBinaryOperation)static_A_symbol_327.lookupImplementation(standardLibrary, O_String__eq_);
-					Value A_symbol_327 = dynamic_A_symbol_327.evaluate(evaluator, T_Boolean, A_symbol_326, S_select);
-					rightA_symbol_323 = A_symbol_327;
+					DomainType static_A_symbol_257 = valueFactory.typeOf(A_symbol_256, S_select);
+					LibraryBinaryOperation dynamic_A_symbol_257 = (LibraryBinaryOperation)static_A_symbol_257.lookupImplementation(standardLibrary, O_String__eq_);
+					Value A_symbol_257 = dynamic_A_symbol_257.evaluate(evaluator, T_Boolean, A_symbol_256, S_select);
+					rightA_symbol_253 = A_symbol_257;
 				} catch (InvalidValueException e) {
-					rightA_symbol_323 = valueFactory.createInvalidValue(e);
+					rightA_symbol_253 = valueFactory.createInvalidValue(e);
 				}
-				Value A_symbol_327 = rightA_symbol_323;
-				DomainType static_A_symbol_323 = valueFactory.typeOf(A_symbol_325);
-				LibraryBinaryOperation dynamic_A_symbol_323 = (LibraryBinaryOperation)static_A_symbol_323.lookupImplementation(standardLibrary, O_Boolean_or);
-				Value A_symbol_323 = dynamic_A_symbol_323.evaluate(evaluator, T_Boolean, A_symbol_325, A_symbol_327);
-				leftA_symbol_322 = A_symbol_323;
+				Value A_symbol_257 = rightA_symbol_253;
+				DomainType static_A_symbol_253 = valueFactory.typeOf(A_symbol_255);
+				LibraryBinaryOperation dynamic_A_symbol_253 = (LibraryBinaryOperation)static_A_symbol_253.lookupImplementation(standardLibrary, O_Boolean_or);
+				Value A_symbol_253 = dynamic_A_symbol_253.evaluate(evaluator, T_Boolean, A_symbol_255, A_symbol_257);
+				leftA_symbol_252 = A_symbol_253;
 			} catch (InvalidValueException e) {
-				leftA_symbol_322 = valueFactory.createInvalidValue(e);
+				leftA_symbol_252 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_323 = leftA_symbol_322;
-			Value rightA_symbol_322;
+			Value A_symbol_253 = leftA_symbol_252;
+			Value rightA_symbol_252;
 			try {
 				
-				Value A_symbol_328 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
+				Value A_symbol_258 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
 				
-				DomainType static_A_symbol_329 = valueFactory.typeOf(A_symbol_328);
-				LibraryUnaryOperation dynamic_A_symbol_329 = (LibraryUnaryOperation)static_A_symbol_329.lookupImplementation(standardLibrary, O_Collection_size);
-				Value A_symbol_329 = dynamic_A_symbol_329.evaluate(evaluator, T_Integer, A_symbol_328);
-				DomainType static_A_symbol_330 = valueFactory.typeOf(A_symbol_329, I_1);
-				LibraryBinaryOperation dynamic_A_symbol_330 = (LibraryBinaryOperation)static_A_symbol_330.lookupImplementation(standardLibrary, O_Real__eq_);
-				Value A_symbol_330 = dynamic_A_symbol_330.evaluate(evaluator, T_Boolean, A_symbol_329, I_1);
-				rightA_symbol_322 = A_symbol_330;
+				DomainType static_A_symbol_259 = valueFactory.typeOf(A_symbol_258);
+				LibraryUnaryOperation dynamic_A_symbol_259 = (LibraryUnaryOperation)static_A_symbol_259.lookupImplementation(standardLibrary, O_Collection_size);
+				Value A_symbol_259 = dynamic_A_symbol_259.evaluate(evaluator, T_Integer, A_symbol_258);
+				DomainType static_A_symbol_260 = valueFactory.typeOf(A_symbol_259, I_1);
+				LibraryBinaryOperation dynamic_A_symbol_260 = (LibraryBinaryOperation)static_A_symbol_260.lookupImplementation(standardLibrary, O_Real__eq_);
+				Value A_symbol_260 = dynamic_A_symbol_260.evaluate(evaluator, T_Boolean, A_symbol_259, I_1);
+				rightA_symbol_252 = A_symbol_260;
 			} catch (InvalidValueException e) {
-				rightA_symbol_322 = valueFactory.createInvalidValue(e);
+				rightA_symbol_252 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_330 = rightA_symbol_322;
-			DomainType static_A_symbol_322 = valueFactory.typeOf(A_symbol_323);
-			LibraryBinaryOperation dynamic_A_symbol_322 = (LibraryBinaryOperation)static_A_symbol_322.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_322 = dynamic_A_symbol_322.evaluate(evaluator, T_Boolean, A_symbol_323, A_symbol_330);
-			return A_symbol_322;
+			Value A_symbol_260 = rightA_symbol_252;
+			DomainType static_A_symbol_252 = valueFactory.typeOf(A_symbol_253);
+			LibraryBinaryOperation dynamic_A_symbol_252 = (LibraryBinaryOperation)static_A_symbol_252.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_252 = dynamic_A_symbol_252.evaluate(evaluator, T_Boolean, A_symbol_253, A_symbol_260);
+			return A_symbol_252;
 		}
 	}
 
@@ -1856,59 +1856,59 @@
 			final LibraryProperty IP_TypedElement_type = P_TypedElement_type.getImplementation();
 			final Value T_ClassClassifier_Boolean_ = valueFactory.createTypeValue(OCLstdlibTables.Types._Boolean);
 			
-			Value leftA_symbol_331;
+			Value leftA_symbol_261;
 			try {
-				Value leftA_symbol_332;
+				Value leftA_symbol_262;
 				try {
 					
-					Value A_symbol_333 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+					Value A_symbol_263 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 					
-					DomainType static_A_symbol_334 = valueFactory.typeOf(A_symbol_333, S_reject);
-					LibraryBinaryOperation dynamic_A_symbol_334 = (LibraryBinaryOperation)static_A_symbol_334.lookupImplementation(standardLibrary, O_String__eq_);
-					Value A_symbol_334 = dynamic_A_symbol_334.evaluate(evaluator, T_Boolean, A_symbol_333, S_reject);
-					leftA_symbol_332 = A_symbol_334;
+					DomainType static_A_symbol_264 = valueFactory.typeOf(A_symbol_263, S_reject);
+					LibraryBinaryOperation dynamic_A_symbol_264 = (LibraryBinaryOperation)static_A_symbol_264.lookupImplementation(standardLibrary, O_String__eq_);
+					Value A_symbol_264 = dynamic_A_symbol_264.evaluate(evaluator, T_Boolean, A_symbol_263, S_reject);
+					leftA_symbol_262 = A_symbol_264;
 				} catch (InvalidValueException e) {
-					leftA_symbol_332 = valueFactory.createInvalidValue(e);
+					leftA_symbol_262 = valueFactory.createInvalidValue(e);
 				}
-				Value A_symbol_334 = leftA_symbol_332;
-				Value rightA_symbol_332;
+				Value A_symbol_264 = leftA_symbol_262;
+				Value rightA_symbol_262;
 				try {
 					
-					Value A_symbol_335 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+					Value A_symbol_265 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 					
-					DomainType static_A_symbol_336 = valueFactory.typeOf(A_symbol_335, S_select);
-					LibraryBinaryOperation dynamic_A_symbol_336 = (LibraryBinaryOperation)static_A_symbol_336.lookupImplementation(standardLibrary, O_String__eq_);
-					Value A_symbol_336 = dynamic_A_symbol_336.evaluate(evaluator, T_Boolean, A_symbol_335, S_select);
-					rightA_symbol_332 = A_symbol_336;
+					DomainType static_A_symbol_266 = valueFactory.typeOf(A_symbol_265, S_select);
+					LibraryBinaryOperation dynamic_A_symbol_266 = (LibraryBinaryOperation)static_A_symbol_266.lookupImplementation(standardLibrary, O_String__eq_);
+					Value A_symbol_266 = dynamic_A_symbol_266.evaluate(evaluator, T_Boolean, A_symbol_265, S_select);
+					rightA_symbol_262 = A_symbol_266;
 				} catch (InvalidValueException e) {
-					rightA_symbol_332 = valueFactory.createInvalidValue(e);
+					rightA_symbol_262 = valueFactory.createInvalidValue(e);
 				}
-				Value A_symbol_336 = rightA_symbol_332;
-				DomainType static_A_symbol_332 = valueFactory.typeOf(A_symbol_334);
-				LibraryBinaryOperation dynamic_A_symbol_332 = (LibraryBinaryOperation)static_A_symbol_332.lookupImplementation(standardLibrary, O_Boolean_or);
-				Value A_symbol_332 = dynamic_A_symbol_332.evaluate(evaluator, T_Boolean, A_symbol_334, A_symbol_336);
-				leftA_symbol_331 = A_symbol_332;
+				Value A_symbol_266 = rightA_symbol_262;
+				DomainType static_A_symbol_262 = valueFactory.typeOf(A_symbol_264);
+				LibraryBinaryOperation dynamic_A_symbol_262 = (LibraryBinaryOperation)static_A_symbol_262.lookupImplementation(standardLibrary, O_Boolean_or);
+				Value A_symbol_262 = dynamic_A_symbol_262.evaluate(evaluator, T_Boolean, A_symbol_264, A_symbol_266);
+				leftA_symbol_261 = A_symbol_262;
 			} catch (InvalidValueException e) {
-				leftA_symbol_331 = valueFactory.createInvalidValue(e);
+				leftA_symbol_261 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_332 = leftA_symbol_331;
-			Value rightA_symbol_331;
+			Value A_symbol_262 = leftA_symbol_261;
+			Value rightA_symbol_261;
 			try {
 				
-				Value A_symbol_337 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_267 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
-				DomainType static_A_symbol_338 = valueFactory.typeOf(A_symbol_337, T_ClassClassifier_Boolean_);
-				LibraryBinaryOperation dynamic_A_symbol_338 = (LibraryBinaryOperation)static_A_symbol_338.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_338 = dynamic_A_symbol_338.evaluate(evaluator, T_Boolean, A_symbol_337, T_ClassClassifier_Boolean_);
-				rightA_symbol_331 = A_symbol_338;
+				DomainType static_A_symbol_268 = valueFactory.typeOf(A_symbol_267, T_ClassClassifier_Boolean_);
+				LibraryBinaryOperation dynamic_A_symbol_268 = (LibraryBinaryOperation)static_A_symbol_268.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_268 = dynamic_A_symbol_268.evaluate(evaluator, T_Boolean, A_symbol_267, T_ClassClassifier_Boolean_);
+				rightA_symbol_261 = A_symbol_268;
 			} catch (InvalidValueException e) {
-				rightA_symbol_331 = valueFactory.createInvalidValue(e);
+				rightA_symbol_261 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_338 = rightA_symbol_331;
-			DomainType static_A_symbol_331 = valueFactory.typeOf(A_symbol_332);
-			LibraryBinaryOperation dynamic_A_symbol_331 = (LibraryBinaryOperation)static_A_symbol_331.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_331 = dynamic_A_symbol_331.evaluate(evaluator, T_Boolean, A_symbol_332, A_symbol_338);
-			return A_symbol_331;
+			Value A_symbol_268 = rightA_symbol_261;
+			DomainType static_A_symbol_261 = valueFactory.typeOf(A_symbol_262);
+			LibraryBinaryOperation dynamic_A_symbol_261 = (LibraryBinaryOperation)static_A_symbol_261.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_261 = dynamic_A_symbol_261.evaluate(evaluator, T_Boolean, A_symbol_262, A_symbol_268);
+			return A_symbol_261;
 		}
 	}
 
@@ -1942,64 +1942,64 @@
 			final ExecutorProperty P_CallExp_source = PivotTables.Properties._CallExp__source;
 			final LibraryProperty IP_CallExp_source = P_CallExp_source.getImplementation();
 			
-			Value leftA_symbol_339;
+			Value leftA_symbol_269;
 			try {
-				Value leftA_symbol_340;
+				Value leftA_symbol_270;
 				try {
 					
-					Value A_symbol_341 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+					Value A_symbol_271 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 					
-					DomainType static_A_symbol_342 = valueFactory.typeOf(A_symbol_341, S_reject);
-					LibraryBinaryOperation dynamic_A_symbol_342 = (LibraryBinaryOperation)static_A_symbol_342.lookupImplementation(standardLibrary, O_String__eq_);
-					Value A_symbol_342 = dynamic_A_symbol_342.evaluate(evaluator, T_Boolean, A_symbol_341, S_reject);
-					leftA_symbol_340 = A_symbol_342;
+					DomainType static_A_symbol_272 = valueFactory.typeOf(A_symbol_271, S_reject);
+					LibraryBinaryOperation dynamic_A_symbol_272 = (LibraryBinaryOperation)static_A_symbol_272.lookupImplementation(standardLibrary, O_String__eq_);
+					Value A_symbol_272 = dynamic_A_symbol_272.evaluate(evaluator, T_Boolean, A_symbol_271, S_reject);
+					leftA_symbol_270 = A_symbol_272;
 				} catch (InvalidValueException e) {
-					leftA_symbol_340 = valueFactory.createInvalidValue(e);
+					leftA_symbol_270 = valueFactory.createInvalidValue(e);
 				}
-				Value A_symbol_342 = leftA_symbol_340;
-				Value rightA_symbol_340;
+				Value A_symbol_272 = leftA_symbol_270;
+				Value rightA_symbol_270;
 				try {
 					
-					Value A_symbol_343 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+					Value A_symbol_273 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 					
-					DomainType static_A_symbol_344 = valueFactory.typeOf(A_symbol_343, S_select);
-					LibraryBinaryOperation dynamic_A_symbol_344 = (LibraryBinaryOperation)static_A_symbol_344.lookupImplementation(standardLibrary, O_String__eq_);
-					Value A_symbol_344 = dynamic_A_symbol_344.evaluate(evaluator, T_Boolean, A_symbol_343, S_select);
-					rightA_symbol_340 = A_symbol_344;
+					DomainType static_A_symbol_274 = valueFactory.typeOf(A_symbol_273, S_select);
+					LibraryBinaryOperation dynamic_A_symbol_274 = (LibraryBinaryOperation)static_A_symbol_274.lookupImplementation(standardLibrary, O_String__eq_);
+					Value A_symbol_274 = dynamic_A_symbol_274.evaluate(evaluator, T_Boolean, A_symbol_273, S_select);
+					rightA_symbol_270 = A_symbol_274;
 				} catch (InvalidValueException e) {
-					rightA_symbol_340 = valueFactory.createInvalidValue(e);
+					rightA_symbol_270 = valueFactory.createInvalidValue(e);
 				}
-				Value A_symbol_344 = rightA_symbol_340;
-				DomainType static_A_symbol_340 = valueFactory.typeOf(A_symbol_342);
-				LibraryBinaryOperation dynamic_A_symbol_340 = (LibraryBinaryOperation)static_A_symbol_340.lookupImplementation(standardLibrary, O_Boolean_or);
-				Value A_symbol_340 = dynamic_A_symbol_340.evaluate(evaluator, T_Boolean, A_symbol_342, A_symbol_344);
-				leftA_symbol_339 = A_symbol_340;
+				Value A_symbol_274 = rightA_symbol_270;
+				DomainType static_A_symbol_270 = valueFactory.typeOf(A_symbol_272);
+				LibraryBinaryOperation dynamic_A_symbol_270 = (LibraryBinaryOperation)static_A_symbol_270.lookupImplementation(standardLibrary, O_Boolean_or);
+				Value A_symbol_270 = dynamic_A_symbol_270.evaluate(evaluator, T_Boolean, A_symbol_272, A_symbol_274);
+				leftA_symbol_269 = A_symbol_270;
 			} catch (InvalidValueException e) {
-				leftA_symbol_339 = valueFactory.createInvalidValue(e);
+				leftA_symbol_269 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_340 = leftA_symbol_339;
-			Value rightA_symbol_339;
+			Value A_symbol_270 = leftA_symbol_269;
+			Value rightA_symbol_269;
 			try {
 				
-				Value A_symbol_345 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_275 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
 				
-				Value A_symbol_346 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
+				Value A_symbol_276 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
 				
-				Value A_symbol_347 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_346, P_TypedElement_type);
+				Value A_symbol_277 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_276, P_TypedElement_type);
 				
-				DomainType static_A_symbol_348 = valueFactory.typeOf(A_symbol_345, A_symbol_347);
-				LibraryBinaryOperation dynamic_A_symbol_348 = (LibraryBinaryOperation)static_A_symbol_348.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_348 = dynamic_A_symbol_348.evaluate(evaluator, T_Boolean, A_symbol_345, A_symbol_347);
-				rightA_symbol_339 = A_symbol_348;
+				DomainType static_A_symbol_278 = valueFactory.typeOf(A_symbol_275, A_symbol_277);
+				LibraryBinaryOperation dynamic_A_symbol_278 = (LibraryBinaryOperation)static_A_symbol_278.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_278 = dynamic_A_symbol_278.evaluate(evaluator, T_Boolean, A_symbol_275, A_symbol_277);
+				rightA_symbol_269 = A_symbol_278;
 			} catch (InvalidValueException e) {
-				rightA_symbol_339 = valueFactory.createInvalidValue(e);
+				rightA_symbol_269 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_348 = rightA_symbol_339;
-			DomainType static_A_symbol_339 = valueFactory.typeOf(A_symbol_340);
-			LibraryBinaryOperation dynamic_A_symbol_339 = (LibraryBinaryOperation)static_A_symbol_339.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_339 = dynamic_A_symbol_339.evaluate(evaluator, T_Boolean, A_symbol_340, A_symbol_348);
-			return A_symbol_339;
+			Value A_symbol_278 = rightA_symbol_269;
+			DomainType static_A_symbol_269 = valueFactory.typeOf(A_symbol_270);
+			LibraryBinaryOperation dynamic_A_symbol_269 = (LibraryBinaryOperation)static_A_symbol_269.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_269 = dynamic_A_symbol_269.evaluate(evaluator, T_Boolean, A_symbol_270, A_symbol_278);
+			return A_symbol_269;
 		}
 	}
 
@@ -2038,51 +2038,51 @@
 			final ExecutorProperty P_LoopExp_body = PivotTables.Properties._LoopExp__body;
 			final LibraryProperty IP_LoopExp_body = P_LoopExp_body.getImplementation();
 			
-			Value leftA_symbol_349;
+			Value leftA_symbol_279;
 			try {
 				
-				Value A_symbol_350 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_280 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_351 = valueFactory.typeOf(A_symbol_350, S_sortedBy);
-				LibraryBinaryOperation dynamic_A_symbol_351 = (LibraryBinaryOperation)static_A_symbol_351.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_351 = dynamic_A_symbol_351.evaluate(evaluator, T_Boolean, A_symbol_350, S_sortedBy);
-				leftA_symbol_349 = A_symbol_351;
+				DomainType static_A_symbol_281 = valueFactory.typeOf(A_symbol_280, S_sortedBy);
+				LibraryBinaryOperation dynamic_A_symbol_281 = (LibraryBinaryOperation)static_A_symbol_281.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_281 = dynamic_A_symbol_281.evaluate(evaluator, T_Boolean, A_symbol_280, S_sortedBy);
+				leftA_symbol_279 = A_symbol_281;
 			} catch (InvalidValueException e) {
-				leftA_symbol_349 = valueFactory.createInvalidValue(e);
+				leftA_symbol_279 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_351 = leftA_symbol_349;
-			Value rightA_symbol_349;
+			Value A_symbol_281 = leftA_symbol_279;
+			Value rightA_symbol_279;
 			try {
 				
-				Value A_symbol_352 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_282 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
-				DomainType static_A_symbol_353 = valueFactory.typeOf(A_symbol_352);
-				LibraryBinaryOperation dynamic_A_symbol_353 = (LibraryBinaryOperation)static_A_symbol_353.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
-				Value A_symbol_353 = dynamic_A_symbol_353.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_352, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-				Value A_symbol_354 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_353, P_CollectionType_elementType);
+				DomainType static_A_symbol_283 = valueFactory.typeOf(A_symbol_282);
+				LibraryBinaryOperation dynamic_A_symbol_283 = (LibraryBinaryOperation)static_A_symbol_283.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
+				Value A_symbol_283 = dynamic_A_symbol_283.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_282, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+				Value A_symbol_284 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_283, P_CollectionType_elementType);
 				
 				
-				Value A_symbol_355 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
+				Value A_symbol_285 = IP_LoopExp_body.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LoopExp_body);
 				
-				Value A_symbol_356 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_355, P_TypedElement_type);
+				Value A_symbol_286 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_285, P_TypedElement_type);
 				
-				DomainType static_A_symbol_357 = valueFactory.typeOf(A_symbol_356);
-				LibraryBinaryOperation dynamic_A_symbol_357 = (LibraryBinaryOperation)static_A_symbol_357.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
-				Value A_symbol_357 = dynamic_A_symbol_357.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_356, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-				Value A_symbol_358 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_357, P_CollectionType_elementType);
+				DomainType static_A_symbol_287 = valueFactory.typeOf(A_symbol_286);
+				LibraryBinaryOperation dynamic_A_symbol_287 = (LibraryBinaryOperation)static_A_symbol_287.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
+				Value A_symbol_287 = dynamic_A_symbol_287.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, A_symbol_286, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+				Value A_symbol_288 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_287, P_CollectionType_elementType);
 				
-				DomainType static_A_symbol_359 = valueFactory.typeOf(A_symbol_354, A_symbol_358);
-				LibraryBinaryOperation dynamic_A_symbol_359 = (LibraryBinaryOperation)static_A_symbol_359.lookupImplementation(standardLibrary, O_OclAny__eq_);
-				Value A_symbol_359 = dynamic_A_symbol_359.evaluate(evaluator, T_Boolean, A_symbol_354, A_symbol_358);
-				rightA_symbol_349 = A_symbol_359;
+				DomainType static_A_symbol_289 = valueFactory.typeOf(A_symbol_284, A_symbol_288);
+				LibraryBinaryOperation dynamic_A_symbol_289 = (LibraryBinaryOperation)static_A_symbol_289.lookupImplementation(standardLibrary, O_OclAny__eq_);
+				Value A_symbol_289 = dynamic_A_symbol_289.evaluate(evaluator, T_Boolean, A_symbol_284, A_symbol_288);
+				rightA_symbol_279 = A_symbol_289;
 			} catch (InvalidValueException e) {
-				rightA_symbol_349 = valueFactory.createInvalidValue(e);
+				rightA_symbol_279 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_359 = rightA_symbol_349;
-			DomainType static_A_symbol_349 = valueFactory.typeOf(A_symbol_351);
-			LibraryBinaryOperation dynamic_A_symbol_349 = (LibraryBinaryOperation)static_A_symbol_349.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_349 = dynamic_A_symbol_349.evaluate(evaluator, T_Boolean, A_symbol_351, A_symbol_359);
-			return A_symbol_349;
+			Value A_symbol_289 = rightA_symbol_279;
+			DomainType static_A_symbol_279 = valueFactory.typeOf(A_symbol_281);
+			LibraryBinaryOperation dynamic_A_symbol_279 = (LibraryBinaryOperation)static_A_symbol_279.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_279 = dynamic_A_symbol_279.evaluate(evaluator, T_Boolean, A_symbol_281, A_symbol_289);
+			return A_symbol_279;
 		}
 	}
 
@@ -2115,39 +2115,39 @@
 			final LibraryProperty IP_LoopExp_iterator = P_LoopExp_iterator.getImplementation();
 			final IntegerValue I_1 = valueFactory.integerValueOf(1);
 			
-			Value leftA_symbol_360;
+			Value leftA_symbol_290;
 			try {
 				
-				Value A_symbol_361 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_291 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_362 = valueFactory.typeOf(A_symbol_361, S_sortedBy);
-				LibraryBinaryOperation dynamic_A_symbol_362 = (LibraryBinaryOperation)static_A_symbol_362.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_362 = dynamic_A_symbol_362.evaluate(evaluator, T_Boolean, A_symbol_361, S_sortedBy);
-				leftA_symbol_360 = A_symbol_362;
+				DomainType static_A_symbol_292 = valueFactory.typeOf(A_symbol_291, S_sortedBy);
+				LibraryBinaryOperation dynamic_A_symbol_292 = (LibraryBinaryOperation)static_A_symbol_292.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_292 = dynamic_A_symbol_292.evaluate(evaluator, T_Boolean, A_symbol_291, S_sortedBy);
+				leftA_symbol_290 = A_symbol_292;
 			} catch (InvalidValueException e) {
-				leftA_symbol_360 = valueFactory.createInvalidValue(e);
+				leftA_symbol_290 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_362 = leftA_symbol_360;
-			Value rightA_symbol_360;
+			Value A_symbol_292 = leftA_symbol_290;
+			Value rightA_symbol_290;
 			try {
 				
-				Value A_symbol_363 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
+				Value A_symbol_293 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
 				
-				DomainType static_A_symbol_364 = valueFactory.typeOf(A_symbol_363);
-				LibraryUnaryOperation dynamic_A_symbol_364 = (LibraryUnaryOperation)static_A_symbol_364.lookupImplementation(standardLibrary, O_Collection_size);
-				Value A_symbol_364 = dynamic_A_symbol_364.evaluate(evaluator, T_Integer, A_symbol_363);
-				DomainType static_A_symbol_365 = valueFactory.typeOf(A_symbol_364, I_1);
-				LibraryBinaryOperation dynamic_A_symbol_365 = (LibraryBinaryOperation)static_A_symbol_365.lookupImplementation(standardLibrary, O_Real__eq_);
-				Value A_symbol_365 = dynamic_A_symbol_365.evaluate(evaluator, T_Boolean, A_symbol_364, I_1);
-				rightA_symbol_360 = A_symbol_365;
+				DomainType static_A_symbol_294 = valueFactory.typeOf(A_symbol_293);
+				LibraryUnaryOperation dynamic_A_symbol_294 = (LibraryUnaryOperation)static_A_symbol_294.lookupImplementation(standardLibrary, O_Collection_size);
+				Value A_symbol_294 = dynamic_A_symbol_294.evaluate(evaluator, T_Integer, A_symbol_293);
+				DomainType static_A_symbol_295 = valueFactory.typeOf(A_symbol_294, I_1);
+				LibraryBinaryOperation dynamic_A_symbol_295 = (LibraryBinaryOperation)static_A_symbol_295.lookupImplementation(standardLibrary, O_Real__eq_);
+				Value A_symbol_295 = dynamic_A_symbol_295.evaluate(evaluator, T_Boolean, A_symbol_294, I_1);
+				rightA_symbol_290 = A_symbol_295;
 			} catch (InvalidValueException e) {
-				rightA_symbol_360 = valueFactory.createInvalidValue(e);
+				rightA_symbol_290 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_365 = rightA_symbol_360;
-			DomainType static_A_symbol_360 = valueFactory.typeOf(A_symbol_362);
-			LibraryBinaryOperation dynamic_A_symbol_360 = (LibraryBinaryOperation)static_A_symbol_360.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_360 = dynamic_A_symbol_360.evaluate(evaluator, T_Boolean, A_symbol_362, A_symbol_365);
-			return A_symbol_360;
+			Value A_symbol_295 = rightA_symbol_290;
+			DomainType static_A_symbol_290 = valueFactory.typeOf(A_symbol_292);
+			LibraryBinaryOperation dynamic_A_symbol_290 = (LibraryBinaryOperation)static_A_symbol_290.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_290 = dynamic_A_symbol_290.evaluate(evaluator, T_Boolean, A_symbol_292, A_symbol_295);
+			return A_symbol_290;
 		}
 	}
 
@@ -2189,88 +2189,88 @@
 			final Value T_ClassClassifier_Pivot_ecore__pivot__BagType_ = valueFactory.createTypeValue(PivotTables.Types._BagType);
 			final Value T_ClassClassifier_Pivot_ecore__pivot__OrderedSetType_ = valueFactory.createTypeValue(PivotTables.Types._OrderedSetType);
 			
-			Value leftA_symbol_366;
+			Value leftA_symbol_296;
 			try {
 				
-				Value A_symbol_367 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
+				Value A_symbol_297 = IP_NamedElement_name.evaluate(evaluator, T_String, self, P_NamedElement_name);
 				
-				DomainType static_A_symbol_368 = valueFactory.typeOf(A_symbol_367, S_sortedBy);
-				LibraryBinaryOperation dynamic_A_symbol_368 = (LibraryBinaryOperation)static_A_symbol_368.lookupImplementation(standardLibrary, O_String__eq_);
-				Value A_symbol_368 = dynamic_A_symbol_368.evaluate(evaluator, T_Boolean, A_symbol_367, S_sortedBy);
-				leftA_symbol_366 = A_symbol_368;
+				DomainType static_A_symbol_298 = valueFactory.typeOf(A_symbol_297, S_sortedBy);
+				LibraryBinaryOperation dynamic_A_symbol_298 = (LibraryBinaryOperation)static_A_symbol_298.lookupImplementation(standardLibrary, O_String__eq_);
+				Value A_symbol_298 = dynamic_A_symbol_298.evaluate(evaluator, T_Boolean, A_symbol_297, S_sortedBy);
+				leftA_symbol_296 = A_symbol_298;
 			} catch (InvalidValueException e) {
-				leftA_symbol_366 = valueFactory.createInvalidValue(e);
+				leftA_symbol_296 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_368 = leftA_symbol_366;
-			Value rightA_symbol_366;
+			Value A_symbol_298 = leftA_symbol_296;
+			Value rightA_symbol_296;
 			try {
-					Value leftA_symbol_369;
+					Value leftA_symbol_299;
 					try {
 						
-						Value A_symbol_370 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
+						Value A_symbol_300 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
 						
-						Value A_symbol_371 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_370, P_TypedElement_type);
+						Value A_symbol_301 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_300, P_TypedElement_type);
 						
-						DomainType static_A_symbol_372 = valueFactory.typeOf(A_symbol_371);
-						LibraryBinaryOperation dynamic_A_symbol_372 = (LibraryBinaryOperation)static_A_symbol_372.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-						Value A_symbol_372 = dynamic_A_symbol_372.evaluate(evaluator, T_Boolean, A_symbol_371, T_ClassClassifier_Pivot_ecore__pivot__SequenceType_);
-						leftA_symbol_369 = A_symbol_372;
+						DomainType static_A_symbol_302 = valueFactory.typeOf(A_symbol_301);
+						LibraryBinaryOperation dynamic_A_symbol_302 = (LibraryBinaryOperation)static_A_symbol_302.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+						Value A_symbol_302 = dynamic_A_symbol_302.evaluate(evaluator, T_Boolean, A_symbol_301, T_ClassClassifier_Pivot_ecore__pivot__SequenceType_);
+						leftA_symbol_299 = A_symbol_302;
 					} catch (InvalidValueException e) {
-						leftA_symbol_369 = valueFactory.createInvalidValue(e);
+						leftA_symbol_299 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_372 = leftA_symbol_369;
-					Value rightA_symbol_369;
+					Value A_symbol_302 = leftA_symbol_299;
+					Value rightA_symbol_299;
 					try {
 						
-						Value A_symbol_373 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
+						Value A_symbol_303 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
 						
-						Value A_symbol_374 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_373, P_TypedElement_type);
+						Value A_symbol_304 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_303, P_TypedElement_type);
 						
-						DomainType static_A_symbol_375 = valueFactory.typeOf(A_symbol_374);
-						LibraryBinaryOperation dynamic_A_symbol_375 = (LibraryBinaryOperation)static_A_symbol_375.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-						Value A_symbol_375 = dynamic_A_symbol_375.evaluate(evaluator, T_Boolean, A_symbol_374, T_ClassClassifier_Pivot_ecore__pivot__BagType_);
-						rightA_symbol_369 = A_symbol_375;
+						DomainType static_A_symbol_305 = valueFactory.typeOf(A_symbol_304);
+						LibraryBinaryOperation dynamic_A_symbol_305 = (LibraryBinaryOperation)static_A_symbol_305.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+						Value A_symbol_305 = dynamic_A_symbol_305.evaluate(evaluator, T_Boolean, A_symbol_304, T_ClassClassifier_Pivot_ecore__pivot__BagType_);
+						rightA_symbol_299 = A_symbol_305;
 					} catch (InvalidValueException e) {
-						rightA_symbol_369 = valueFactory.createInvalidValue(e);
+						rightA_symbol_299 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_375 = rightA_symbol_369;
-					DomainType static_A_symbol_369 = valueFactory.typeOf(A_symbol_372);
-					LibraryBinaryOperation dynamic_A_symbol_369 = (LibraryBinaryOperation)static_A_symbol_369.lookupImplementation(standardLibrary, O_Boolean_or);
-					Value A_symbol_369 = dynamic_A_symbol_369.evaluate(evaluator, T_Boolean, A_symbol_372, A_symbol_375);
-				Value A_symbol_376;
-				if (A_symbol_369.isTrue()) {
+					Value A_symbol_305 = rightA_symbol_299;
+					DomainType static_A_symbol_299 = valueFactory.typeOf(A_symbol_302);
+					LibraryBinaryOperation dynamic_A_symbol_299 = (LibraryBinaryOperation)static_A_symbol_299.lookupImplementation(standardLibrary, O_Boolean_or);
+					Value A_symbol_299 = dynamic_A_symbol_299.evaluate(evaluator, T_Boolean, A_symbol_302, A_symbol_305);
+				Value A_symbol_306;
+				if (A_symbol_299.isTrue()) {
 					
-					Value A_symbol_377 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+					Value A_symbol_307 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 					
-					DomainType static_A_symbol_378 = valueFactory.typeOf(A_symbol_377);
-					LibraryBinaryOperation dynamic_A_symbol_378 = (LibraryBinaryOperation)static_A_symbol_378.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-					Value A_symbol_378 = dynamic_A_symbol_378.evaluate(evaluator, T_Boolean, A_symbol_377, T_ClassClassifier_Pivot_ecore__pivot__SequenceType_);
-					A_symbol_376 = A_symbol_378;
+					DomainType static_A_symbol_308 = valueFactory.typeOf(A_symbol_307);
+					LibraryBinaryOperation dynamic_A_symbol_308 = (LibraryBinaryOperation)static_A_symbol_308.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+					Value A_symbol_308 = dynamic_A_symbol_308.evaluate(evaluator, T_Boolean, A_symbol_307, T_ClassClassifier_Pivot_ecore__pivot__SequenceType_);
+					A_symbol_306 = A_symbol_308;
 				}
-				else if (A_symbol_369.isFalse()) {
+				else if (A_symbol_299.isFalse()) {
 					
-					Value A_symbol_379 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+					Value A_symbol_309 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 					
-					DomainType static_A_symbol_380 = valueFactory.typeOf(A_symbol_379);
-					LibraryBinaryOperation dynamic_A_symbol_380 = (LibraryBinaryOperation)static_A_symbol_380.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-					Value A_symbol_380 = dynamic_A_symbol_380.evaluate(evaluator, T_Boolean, A_symbol_379, T_ClassClassifier_Pivot_ecore__pivot__OrderedSetType_);
-					A_symbol_376 = A_symbol_380;
+					DomainType static_A_symbol_310 = valueFactory.typeOf(A_symbol_309);
+					LibraryBinaryOperation dynamic_A_symbol_310 = (LibraryBinaryOperation)static_A_symbol_310.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+					Value A_symbol_310 = dynamic_A_symbol_310.evaluate(evaluator, T_Boolean, A_symbol_309, T_ClassClassifier_Pivot_ecore__pivot__OrderedSetType_);
+					A_symbol_306 = A_symbol_310;
 				}
-				else if (A_symbol_369.isNull()) {
-					A_symbol_376 = valueFactory.throwInvalidValueException("null if condition");
+				else if (A_symbol_299.isNull()) {
+					A_symbol_306 = valueFactory.throwInvalidValueException("null if condition");
 				}
 				else {
-					A_symbol_376 = valueFactory.throwInvalidValueException("invalid if condition");
+					A_symbol_306 = valueFactory.throwInvalidValueException("invalid if condition");
 				}
-				rightA_symbol_366 = A_symbol_376;
+				rightA_symbol_296 = A_symbol_306;
 			} catch (InvalidValueException e) {
-				rightA_symbol_366 = valueFactory.createInvalidValue(e);
+				rightA_symbol_296 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_376 = rightA_symbol_366;
-			DomainType static_A_symbol_366 = valueFactory.typeOf(A_symbol_368);
-			LibraryBinaryOperation dynamic_A_symbol_366 = (LibraryBinaryOperation)static_A_symbol_366.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_366 = dynamic_A_symbol_366.evaluate(evaluator, T_Boolean, A_symbol_368, A_symbol_376);
-			return A_symbol_366;
+			Value A_symbol_306 = rightA_symbol_296;
+			DomainType static_A_symbol_296 = valueFactory.typeOf(A_symbol_298);
+			LibraryBinaryOperation dynamic_A_symbol_296 = (LibraryBinaryOperation)static_A_symbol_296.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_296 = dynamic_A_symbol_296.evaluate(evaluator, T_Boolean, A_symbol_298, A_symbol_306);
+			return A_symbol_296;
 		}
 	}
 }
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/LetExpBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/LetExpBodies.java
index 490d994..4821483 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/LetExpBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/LetExpBodies.java
@@ -65,17 +65,17 @@
 			final LibraryProperty IP_LetExp_in = P_LetExp_in.getImplementation();
 			
 			
-			Value A_symbol_14 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+			Value A_symbol_374 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 			
 			
-			Value A_symbol_15 = IP_LetExp_in.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LetExp_in);
+			Value A_symbol_375 = IP_LetExp_in.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_LetExp_in);
 			
-			Value A_symbol_16 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_15, P_TypedElement_type);
+			Value A_symbol_376 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_375, P_TypedElement_type);
 			
-			DomainType static_A_symbol_17 = valueFactory.typeOf(A_symbol_14, A_symbol_16);
-			LibraryBinaryOperation dynamic_A_symbol_17 = (LibraryBinaryOperation)static_A_symbol_17.lookupImplementation(standardLibrary, O_OclAny__eq_);
-			Value A_symbol_17 = dynamic_A_symbol_17.evaluate(evaluator, T_Boolean, A_symbol_14, A_symbol_16);
-			return A_symbol_17;
+			DomainType static_A_symbol_377 = valueFactory.typeOf(A_symbol_374, A_symbol_376);
+			LibraryBinaryOperation dynamic_A_symbol_377 = (LibraryBinaryOperation)static_A_symbol_377.lookupImplementation(standardLibrary, O_OclAny__eq_);
+			Value A_symbol_377 = dynamic_A_symbol_377.evaluate(evaluator, T_Boolean, A_symbol_374, A_symbol_376);
+			return A_symbol_377;
 		}
 	}
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/LoopExpBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/LoopExpBodies.java
index 728bc24..ec04d64 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/LoopExpBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/LoopExpBodies.java
@@ -62,7 +62,7 @@
 			final ValueFactory valueFactory = evaluator.getValueFactory();
 			final DomainStandardLibrary standardLibrary = valueFactory.getStandardLibrary();
 			final ExecutorType T_Boolean = OCLstdlibTables.Types._Boolean;
-			final ExecutorOperation O_Collection_forAll = OCLstdlibTables.Operations._Collection__0_forAll;
+			final ExecutorOperation O_Collection_forAll = OCLstdlibTables.Operations._Collection__1_forAll;
 			final ExecutorType T_Pivot_ecore__pivot__Variable = PivotTables.Types._Variable;
 			final DomainCollectionType T_OrderedSet_Pivot_ecore__pivot__Variable_ = standardLibrary.getOrderedSetType(T_Pivot_ecore__pivot__Variable);
 			final ExecutorProperty P_LoopExp_iterator = PivotTables.Properties._LoopExp__iterator;
@@ -75,13 +75,13 @@
 			final LibraryProperty IP_Variable_initExpression = P_Variable_initExpression.getImplementation();
 			
 			
-			Value A_symbol_84 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
+			Value A_symbol_331 = IP_LoopExp_iterator.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Variable_, self, P_LoopExp_iterator);
 			
 			
 			/** 
 			 * Implementation of the iterator body.
 			 */
-			AbstractBinaryOperation body_A_symbol_85 = new AbstractBinaryOperation()
+			AbstractBinaryOperation body_A_symbol_332 = new AbstractBinaryOperation()
 			{
 			/*
 			initExpression->isEmpty()
@@ -89,23 +89,23 @@
 				public Value evaluate(DomainEvaluator evaluator, DomainType returnType, Value sourceValue, Value iterator1) throws InvalidValueException {
 					final Value V_1_ = iterator1;	// iterator: 1_
 					
-					Value A_symbol_86 = IP_Variable_initExpression.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, V_1_, P_Variable_initExpression);
+					Value A_symbol_333 = IP_Variable_initExpression.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, V_1_, P_Variable_initExpression);
 					
-					DomainType static_A_symbol_87 = valueFactory.typeOf(A_symbol_86);
-					LibraryUnaryOperation dynamic_A_symbol_87 = (LibraryUnaryOperation)static_A_symbol_87.lookupImplementation(standardLibrary, O_OclAny_oclAsSet);
-					Value A_symbol_87 = dynamic_A_symbol_87.evaluate(evaluator, T_Set_Pivot_ecore__pivot__OclExpression_, A_symbol_86);
-					DomainType static_A_symbol_88 = valueFactory.typeOf(A_symbol_87);
-					LibraryUnaryOperation dynamic_A_symbol_88 = (LibraryUnaryOperation)static_A_symbol_88.lookupImplementation(standardLibrary, O_Collection_isEmpty);
-					Value A_symbol_88 = dynamic_A_symbol_88.evaluate(evaluator, T_Boolean, A_symbol_87);
-					return A_symbol_88;
+					DomainType static_A_symbol_334 = valueFactory.typeOf(A_symbol_333);
+					LibraryUnaryOperation dynamic_A_symbol_334 = (LibraryUnaryOperation)static_A_symbol_334.lookupImplementation(standardLibrary, O_OclAny_oclAsSet);
+					Value A_symbol_334 = dynamic_A_symbol_334.evaluate(evaluator, T_Set_Pivot_ecore__pivot__OclExpression_, A_symbol_333);
+					DomainType static_A_symbol_335 = valueFactory.typeOf(A_symbol_334);
+					LibraryUnaryOperation dynamic_A_symbol_335 = (LibraryUnaryOperation)static_A_symbol_335.lookupImplementation(standardLibrary, O_Collection_isEmpty);
+					Value A_symbol_335 = dynamic_A_symbol_335.evaluate(evaluator, T_Boolean, A_symbol_334);
+					return A_symbol_335;
 				}
 			};
-			DomainType static_A_symbol_85 = A_symbol_84.getType();
-			LibraryIteration dynamic_A_symbol_85 = (LibraryIteration)static_A_symbol_85.lookupImplementation(standardLibrary, O_Collection_forAll);
-			Value acc_A_symbol_85 = dynamic_A_symbol_85.createAccumulatorValue(evaluator, T_Boolean, T_Boolean);
-			ExecutorSingleIterationManager manager_A_symbol_85 = new ExecutorSingleIterationManager(evaluator, T_Boolean, body_A_symbol_85, (CollectionValue)A_symbol_84, acc_A_symbol_85);
-			Value A_symbol_85 = dynamic_A_symbol_85.evaluateIteration(manager_A_symbol_85);
-			return A_symbol_85;
+			DomainType static_A_symbol_332 = A_symbol_331.getType();
+			LibraryIteration dynamic_A_symbol_332 = (LibraryIteration)static_A_symbol_332.lookupImplementation(standardLibrary, O_Collection_forAll);
+			Value acc_A_symbol_332 = dynamic_A_symbol_332.createAccumulatorValue(evaluator, T_Boolean, T_Boolean);
+			ExecutorSingleIterationManager manager_A_symbol_332 = new ExecutorSingleIterationManager(evaluator, T_Boolean, body_A_symbol_332, (CollectionValue)A_symbol_331, acc_A_symbol_332);
+			Value A_symbol_332 = dynamic_A_symbol_332.evaluateIteration(manager_A_symbol_332);
+			return A_symbol_332;
 		}
 	}
 
@@ -133,14 +133,14 @@
 			final Value T_ClassClassifier_Pivot_ecore__pivot__CollectionType_ = valueFactory.createTypeValue(PivotTables.Types._CollectionType);
 			
 			
-			Value A_symbol_89 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
+			Value A_symbol_336 = IP_CallExp_source.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_CallExp_source);
 			
-			Value A_symbol_90 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_89, P_TypedElement_type);
+			Value A_symbol_337 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_336, P_TypedElement_type);
 			
-			DomainType static_A_symbol_91 = valueFactory.typeOf(A_symbol_90);
-			LibraryBinaryOperation dynamic_A_symbol_91 = (LibraryBinaryOperation)static_A_symbol_91.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-			Value A_symbol_91 = dynamic_A_symbol_91.evaluate(evaluator, T_Boolean, A_symbol_90, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-			return A_symbol_91;
+			DomainType static_A_symbol_338 = valueFactory.typeOf(A_symbol_337);
+			LibraryBinaryOperation dynamic_A_symbol_338 = (LibraryBinaryOperation)static_A_symbol_338.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+			Value A_symbol_338 = dynamic_A_symbol_338.evaluate(evaluator, T_Boolean, A_symbol_337, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+			return A_symbol_338;
 		}
 	}
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/MessageExpBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/MessageExpBodies.java
index eb7431a..3c2d4ce 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/MessageExpBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/MessageExpBodies.java
@@ -75,30 +75,30 @@
 			final IntegerValue I_1 = valueFactory.integerValueOf(1);
 			
 			
-			Value A_symbol_2 = IP_MessageExp_calledOperation.evaluate(evaluator, T_Pivot_ecore__pivot__CallOperationAction, self, P_MessageExp_calledOperation);
+			Value A_symbol_403 = IP_MessageExp_calledOperation.evaluate(evaluator, T_Pivot_ecore__pivot__CallOperationAction, self, P_MessageExp_calledOperation);
 			
-			DomainType static_A_symbol_3 = valueFactory.typeOf(A_symbol_2);
-			LibraryUnaryOperation dynamic_A_symbol_3 = (LibraryUnaryOperation)static_A_symbol_3.lookupImplementation(standardLibrary, O_OclAny_oclAsSet);
-			Value A_symbol_3 = dynamic_A_symbol_3.evaluate(evaluator, T_Set_Pivot_ecore__pivot__CallOperationAction_, A_symbol_2);
-			DomainType static_A_symbol_4 = valueFactory.typeOf(A_symbol_3);
-			LibraryUnaryOperation dynamic_A_symbol_4 = (LibraryUnaryOperation)static_A_symbol_4.lookupImplementation(standardLibrary, O_Collection_size);
-			Value A_symbol_4 = dynamic_A_symbol_4.evaluate(evaluator, T_Integer, A_symbol_3);
+			DomainType static_A_symbol_404 = valueFactory.typeOf(A_symbol_403);
+			LibraryUnaryOperation dynamic_A_symbol_404 = (LibraryUnaryOperation)static_A_symbol_404.lookupImplementation(standardLibrary, O_OclAny_oclAsSet);
+			Value A_symbol_404 = dynamic_A_symbol_404.evaluate(evaluator, T_Set_Pivot_ecore__pivot__CallOperationAction_, A_symbol_403);
+			DomainType static_A_symbol_405 = valueFactory.typeOf(A_symbol_404);
+			LibraryUnaryOperation dynamic_A_symbol_405 = (LibraryUnaryOperation)static_A_symbol_405.lookupImplementation(standardLibrary, O_Collection_size);
+			Value A_symbol_405 = dynamic_A_symbol_405.evaluate(evaluator, T_Integer, A_symbol_404);
 			
-			Value A_symbol_5 = IP_MessageExp_sentSignal.evaluate(evaluator, T_Pivot_ecore__pivot__SendSignalAction, self, P_MessageExp_sentSignal);
+			Value A_symbol_406 = IP_MessageExp_sentSignal.evaluate(evaluator, T_Pivot_ecore__pivot__SendSignalAction, self, P_MessageExp_sentSignal);
 			
-			DomainType static_A_symbol_6 = valueFactory.typeOf(A_symbol_5);
-			LibraryUnaryOperation dynamic_A_symbol_6 = (LibraryUnaryOperation)static_A_symbol_6.lookupImplementation(standardLibrary, O_OclAny_oclAsSet);
-			Value A_symbol_6 = dynamic_A_symbol_6.evaluate(evaluator, T_Set_Pivot_ecore__pivot__SendSignalAction_, A_symbol_5);
-			DomainType static_A_symbol_7 = valueFactory.typeOf(A_symbol_6);
-			LibraryUnaryOperation dynamic_A_symbol_7 = (LibraryUnaryOperation)static_A_symbol_7.lookupImplementation(standardLibrary, O_Collection_size);
-			Value A_symbol_7 = dynamic_A_symbol_7.evaluate(evaluator, T_Integer, A_symbol_6);
-			DomainType static_A_symbol_8 = valueFactory.typeOf(A_symbol_4, A_symbol_7);
-			LibraryBinaryOperation dynamic_A_symbol_8 = (LibraryBinaryOperation)static_A_symbol_8.lookupImplementation(standardLibrary, O_Integer__add_);
-			Value A_symbol_8 = dynamic_A_symbol_8.evaluate(evaluator, T_Integer, A_symbol_4, A_symbol_7);
-			DomainType static_A_symbol_9 = valueFactory.typeOf(A_symbol_8, I_1);
-			LibraryBinaryOperation dynamic_A_symbol_9 = (LibraryBinaryOperation)static_A_symbol_9.lookupImplementation(standardLibrary, O_Real__eq_);
-			Value A_symbol_9 = dynamic_A_symbol_9.evaluate(evaluator, T_Boolean, A_symbol_8, I_1);
-			return A_symbol_9;
+			DomainType static_A_symbol_407 = valueFactory.typeOf(A_symbol_406);
+			LibraryUnaryOperation dynamic_A_symbol_407 = (LibraryUnaryOperation)static_A_symbol_407.lookupImplementation(standardLibrary, O_OclAny_oclAsSet);
+			Value A_symbol_407 = dynamic_A_symbol_407.evaluate(evaluator, T_Set_Pivot_ecore__pivot__SendSignalAction_, A_symbol_406);
+			DomainType static_A_symbol_408 = valueFactory.typeOf(A_symbol_407);
+			LibraryUnaryOperation dynamic_A_symbol_408 = (LibraryUnaryOperation)static_A_symbol_408.lookupImplementation(standardLibrary, O_Collection_size);
+			Value A_symbol_408 = dynamic_A_symbol_408.evaluate(evaluator, T_Integer, A_symbol_407);
+			DomainType static_A_symbol_409 = valueFactory.typeOf(A_symbol_405, A_symbol_408);
+			LibraryBinaryOperation dynamic_A_symbol_409 = (LibraryBinaryOperation)static_A_symbol_409.lookupImplementation(standardLibrary, O_Integer__add_);
+			Value A_symbol_409 = dynamic_A_symbol_409.evaluate(evaluator, T_Integer, A_symbol_405, A_symbol_408);
+			DomainType static_A_symbol_410 = valueFactory.typeOf(A_symbol_409, I_1);
+			LibraryBinaryOperation dynamic_A_symbol_410 = (LibraryBinaryOperation)static_A_symbol_410.lookupImplementation(standardLibrary, O_Real__eq_);
+			Value A_symbol_410 = dynamic_A_symbol_410.evaluate(evaluator, T_Boolean, A_symbol_409, I_1);
+			return A_symbol_410;
 		}
 	}
 
@@ -127,17 +127,17 @@
 			final Value T_ClassClassifier_Pivot_ecore__pivot__CollectionType_ = valueFactory.createTypeValue(PivotTables.Types._CollectionType);
 			
 			
-			Value A_symbol_10 = IP_MessageExp_target.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_MessageExp_target);
+			Value A_symbol_411 = IP_MessageExp_target.evaluate(evaluator, T_Pivot_ecore__pivot__OclExpression, self, P_MessageExp_target);
 			
-			Value A_symbol_11 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_10, P_TypedElement_type);
+			Value A_symbol_412 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, A_symbol_411, P_TypedElement_type);
 			
-			DomainType static_A_symbol_12 = valueFactory.typeOf(A_symbol_11);
-			LibraryBinaryOperation dynamic_A_symbol_12 = (LibraryBinaryOperation)static_A_symbol_12.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-			Value A_symbol_12 = dynamic_A_symbol_12.evaluate(evaluator, T_Boolean, A_symbol_11, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-			DomainType static_A_symbol_13 = valueFactory.typeOf(A_symbol_12);
-			LibraryUnaryOperation dynamic_A_symbol_13 = (LibraryUnaryOperation)static_A_symbol_13.lookupImplementation(standardLibrary, O_Boolean_not);
-			Value A_symbol_13 = dynamic_A_symbol_13.evaluate(evaluator, T_Boolean, A_symbol_12);
-			return A_symbol_13;
+			DomainType static_A_symbol_413 = valueFactory.typeOf(A_symbol_412);
+			LibraryBinaryOperation dynamic_A_symbol_413 = (LibraryBinaryOperation)static_A_symbol_413.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+			Value A_symbol_413 = dynamic_A_symbol_413.evaluate(evaluator, T_Boolean, A_symbol_412, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+			DomainType static_A_symbol_414 = valueFactory.typeOf(A_symbol_413);
+			LibraryUnaryOperation dynamic_A_symbol_414 = (LibraryUnaryOperation)static_A_symbol_414.lookupImplementation(standardLibrary, O_Boolean_not);
+			Value A_symbol_414 = dynamic_A_symbol_414.evaluate(evaluator, T_Boolean, A_symbol_413);
+			return A_symbol_414;
 		}
 	}
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/OperationBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/OperationBodies.java
index f0766e9..0e9346b 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/OperationBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/OperationBodies.java
@@ -91,13 +91,13 @@
 			final StringValue S_body = valueFactory.stringValueOf("body");
 			
 			
-			Value A_symbol_96 = IP_NamedElement_ownedRule.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Constraint_, self, P_NamedElement_ownedRule);
+			Value A_symbol_311 = IP_NamedElement_ownedRule.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Constraint_, self, P_NamedElement_ownedRule);
 			
 			
 			/** 
 			 * Implementation of the iterator body.
 			 */
-			AbstractBinaryOperation body_A_symbol_97 = new AbstractBinaryOperation()
+			AbstractBinaryOperation body_A_symbol_312 = new AbstractBinaryOperation()
 			{
 			/*
 			stereotype = 'body'
@@ -105,95 +105,95 @@
 				public Value evaluate(DomainEvaluator evaluator, DomainType returnType, Value sourceValue, Value iterator1) throws InvalidValueException {
 					final Value V_1_ = iterator1;	// iterator: 1_
 					
-					Value A_symbol_98 = IP_Constraint_stereotype.evaluate(evaluator, T_String, V_1_, P_Constraint_stereotype);
+					Value A_symbol_313 = IP_Constraint_stereotype.evaluate(evaluator, T_String, V_1_, P_Constraint_stereotype);
 					
-					DomainType static_A_symbol_99 = valueFactory.typeOf(A_symbol_98, S_body);
-					LibraryBinaryOperation dynamic_A_symbol_99 = (LibraryBinaryOperation)static_A_symbol_99.lookupImplementation(standardLibrary, O_String__eq_);
-					Value A_symbol_99 = dynamic_A_symbol_99.evaluate(evaluator, T_Boolean, A_symbol_98, S_body);
-					return A_symbol_99;
+					DomainType static_A_symbol_314 = valueFactory.typeOf(A_symbol_313, S_body);
+					LibraryBinaryOperation dynamic_A_symbol_314 = (LibraryBinaryOperation)static_A_symbol_314.lookupImplementation(standardLibrary, O_String__eq_);
+					Value A_symbol_314 = dynamic_A_symbol_314.evaluate(evaluator, T_Boolean, A_symbol_313, S_body);
+					return A_symbol_314;
 				}
 			};
-			DomainType static_A_symbol_97 = A_symbol_96.getType();
-			LibraryIteration dynamic_A_symbol_97 = (LibraryIteration)static_A_symbol_97.lookupImplementation(standardLibrary, O_Collection_any);
-			Value acc_A_symbol_97 = dynamic_A_symbol_97.createAccumulatorValue(evaluator, T_Pivot_ecore__pivot__Constraint, T_Boolean);
-			ExecutorSingleIterationManager manager_A_symbol_97 = new ExecutorSingleIterationManager(evaluator, T_Pivot_ecore__pivot__Constraint, body_A_symbol_97, (CollectionValue)A_symbol_96, acc_A_symbol_97);
-			Value A_symbol_97 = dynamic_A_symbol_97.evaluateIteration(manager_A_symbol_97);
-			final Value V_bodyConstraint = A_symbol_97;
-			Value leftA_symbol_100;
+			DomainType static_A_symbol_312 = A_symbol_311.getType();
+			LibraryIteration dynamic_A_symbol_312 = (LibraryIteration)static_A_symbol_312.lookupImplementation(standardLibrary, O_Collection_any);
+			Value acc_A_symbol_312 = dynamic_A_symbol_312.createAccumulatorValue(evaluator, T_Pivot_ecore__pivot__Constraint, T_Boolean);
+			ExecutorSingleIterationManager manager_A_symbol_312 = new ExecutorSingleIterationManager(evaluator, T_Pivot_ecore__pivot__Constraint, body_A_symbol_312, (CollectionValue)A_symbol_311, acc_A_symbol_312);
+			Value A_symbol_312 = dynamic_A_symbol_312.evaluateIteration(manager_A_symbol_312);
+			final Value V_bodyConstraint = A_symbol_312;
+			Value leftA_symbol_315;
 			try {
 				
-				DomainType static_A_symbol_101 = valueFactory.typeOf(V_bodyConstraint, Null);
-				LibraryBinaryOperation dynamic_A_symbol_101 = (LibraryBinaryOperation)static_A_symbol_101.lookupImplementation(standardLibrary, O_OclAny__lt__gt_);
-				Value A_symbol_101 = dynamic_A_symbol_101.evaluate(evaluator, T_Boolean, V_bodyConstraint, Null);
-				leftA_symbol_100 = A_symbol_101;
+				DomainType static_A_symbol_316 = valueFactory.typeOf(V_bodyConstraint, Null);
+				LibraryBinaryOperation dynamic_A_symbol_316 = (LibraryBinaryOperation)static_A_symbol_316.lookupImplementation(standardLibrary, O_OclAny__lt__gt_);
+				Value A_symbol_316 = dynamic_A_symbol_316.evaluate(evaluator, T_Boolean, V_bodyConstraint, Null);
+				leftA_symbol_315 = A_symbol_316;
 			} catch (InvalidValueException e) {
-				leftA_symbol_100 = valueFactory.createInvalidValue(e);
+				leftA_symbol_315 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_101 = leftA_symbol_100;
-			Value rightA_symbol_100;
+			Value A_symbol_316 = leftA_symbol_315;
+			Value rightA_symbol_315;
 			try {
 				
-				Value A_symbol_102 = IP_Constraint_specification.evaluate(evaluator, T_Pivot_ecore__pivot__ValueSpecification, V_bodyConstraint, P_Constraint_specification);
+				Value A_symbol_317 = IP_Constraint_specification.evaluate(evaluator, T_Pivot_ecore__pivot__ValueSpecification, V_bodyConstraint, P_Constraint_specification);
 				
-				final Value V_bodySpecification = A_symbol_102;
-				Value leftA_symbol_103;
+				final Value V_bodySpecification = A_symbol_317;
+				Value leftA_symbol_318;
 				try {
-					Value leftA_symbol_104;
+					Value leftA_symbol_319;
 					try {
 						
-						DomainType static_A_symbol_105 = valueFactory.typeOf(V_bodySpecification, Null);
-						LibraryBinaryOperation dynamic_A_symbol_105 = (LibraryBinaryOperation)static_A_symbol_105.lookupImplementation(standardLibrary, O_OclAny__lt__gt_);
-						Value A_symbol_105 = dynamic_A_symbol_105.evaluate(evaluator, T_Boolean, V_bodySpecification, Null);
-						leftA_symbol_104 = A_symbol_105;
+						DomainType static_A_symbol_320 = valueFactory.typeOf(V_bodySpecification, Null);
+						LibraryBinaryOperation dynamic_A_symbol_320 = (LibraryBinaryOperation)static_A_symbol_320.lookupImplementation(standardLibrary, O_OclAny__lt__gt_);
+						Value A_symbol_320 = dynamic_A_symbol_320.evaluate(evaluator, T_Boolean, V_bodySpecification, Null);
+						leftA_symbol_319 = A_symbol_320;
 					} catch (InvalidValueException e) {
-						leftA_symbol_104 = valueFactory.createInvalidValue(e);
+						leftA_symbol_319 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_105 = leftA_symbol_104;
-					Value rightA_symbol_104;
+					Value A_symbol_320 = leftA_symbol_319;
+					Value rightA_symbol_319;
 					try {
 						
-						DomainType static_A_symbol_106 = valueFactory.typeOf(V_bodySpecification);
-						LibraryBinaryOperation dynamic_A_symbol_106 = (LibraryBinaryOperation)static_A_symbol_106.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-						Value A_symbol_106 = dynamic_A_symbol_106.evaluate(evaluator, T_Boolean, V_bodySpecification, T_ClassClassifier_Pivot_ecore__pivot__ExpressionInOcl_);
-						rightA_symbol_104 = A_symbol_106;
+						DomainType static_A_symbol_321 = valueFactory.typeOf(V_bodySpecification);
+						LibraryBinaryOperation dynamic_A_symbol_321 = (LibraryBinaryOperation)static_A_symbol_321.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+						Value A_symbol_321 = dynamic_A_symbol_321.evaluate(evaluator, T_Boolean, V_bodySpecification, T_ClassClassifier_Pivot_ecore__pivot__ExpressionInOcl_);
+						rightA_symbol_319 = A_symbol_321;
 					} catch (InvalidValueException e) {
-						rightA_symbol_104 = valueFactory.createInvalidValue(e);
+						rightA_symbol_319 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_106 = rightA_symbol_104;
-					DomainType static_A_symbol_104 = valueFactory.typeOf(A_symbol_105);
-					LibraryBinaryOperation dynamic_A_symbol_104 = (LibraryBinaryOperation)static_A_symbol_104.lookupImplementation(standardLibrary, O_Boolean_and);
-					Value A_symbol_104 = dynamic_A_symbol_104.evaluate(evaluator, T_Boolean, A_symbol_105, A_symbol_106);
-					leftA_symbol_103 = A_symbol_104;
+					Value A_symbol_321 = rightA_symbol_319;
+					DomainType static_A_symbol_319 = valueFactory.typeOf(A_symbol_320);
+					LibraryBinaryOperation dynamic_A_symbol_319 = (LibraryBinaryOperation)static_A_symbol_319.lookupImplementation(standardLibrary, O_Boolean_and);
+					Value A_symbol_319 = dynamic_A_symbol_319.evaluate(evaluator, T_Boolean, A_symbol_320, A_symbol_321);
+					leftA_symbol_318 = A_symbol_319;
 				} catch (InvalidValueException e) {
-					leftA_symbol_103 = valueFactory.createInvalidValue(e);
+					leftA_symbol_318 = valueFactory.createInvalidValue(e);
 				}
-				Value A_symbol_104 = leftA_symbol_103;
-				Value rightA_symbol_103;
+				Value A_symbol_319 = leftA_symbol_318;
+				Value rightA_symbol_318;
 				try {
 					
 					
-					DomainType static_A_symbol_107 = valueFactory.typeOf(self);
-					LibraryBinaryOperation dynamic_A_symbol_107 = (LibraryBinaryOperation)static_A_symbol_107.lookupImplementation(standardLibrary, O_TypedMultiplicityElement_CompatibleBody);
-					Value A_symbol_107 = dynamic_A_symbol_107.evaluate(evaluator, T_Boolean, self, V_bodySpecification);
-					rightA_symbol_103 = A_symbol_107;
+					DomainType static_A_symbol_322 = valueFactory.typeOf(self);
+					LibraryBinaryOperation dynamic_A_symbol_322 = (LibraryBinaryOperation)static_A_symbol_322.lookupImplementation(standardLibrary, O_TypedMultiplicityElement_CompatibleBody);
+					Value A_symbol_322 = dynamic_A_symbol_322.evaluate(evaluator, T_Boolean, self, V_bodySpecification);
+					rightA_symbol_318 = A_symbol_322;
 				} catch (InvalidValueException e) {
-					rightA_symbol_103 = valueFactory.createInvalidValue(e);
+					rightA_symbol_318 = valueFactory.createInvalidValue(e);
 				}
-				Value A_symbol_107 = rightA_symbol_103;
-				DomainType static_A_symbol_103 = valueFactory.typeOf(A_symbol_104);
-				LibraryBinaryOperation dynamic_A_symbol_103 = (LibraryBinaryOperation)static_A_symbol_103.lookupImplementation(standardLibrary, O_Boolean_implies);
-				Value A_symbol_103 = dynamic_A_symbol_103.evaluate(evaluator, T_Boolean, A_symbol_104, A_symbol_107);
-				final Value A_symbol_108 = A_symbol_103;
-				rightA_symbol_100 = A_symbol_108;
+				Value A_symbol_322 = rightA_symbol_318;
+				DomainType static_A_symbol_318 = valueFactory.typeOf(A_symbol_319);
+				LibraryBinaryOperation dynamic_A_symbol_318 = (LibraryBinaryOperation)static_A_symbol_318.lookupImplementation(standardLibrary, O_Boolean_implies);
+				Value A_symbol_318 = dynamic_A_symbol_318.evaluate(evaluator, T_Boolean, A_symbol_319, A_symbol_322);
+				final Value A_symbol_323 = A_symbol_318;
+				rightA_symbol_315 = A_symbol_323;
 			} catch (InvalidValueException e) {
-				rightA_symbol_100 = valueFactory.createInvalidValue(e);
+				rightA_symbol_315 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_108 = rightA_symbol_100;
-			DomainType static_A_symbol_100 = valueFactory.typeOf(A_symbol_101);
-			LibraryBinaryOperation dynamic_A_symbol_100 = (LibraryBinaryOperation)static_A_symbol_100.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_100 = dynamic_A_symbol_100.evaluate(evaluator, T_Boolean, A_symbol_101, A_symbol_108);
-			final Value A_symbol_109 = A_symbol_100;
-			return A_symbol_109;
+			Value A_symbol_323 = rightA_symbol_315;
+			DomainType static_A_symbol_315 = valueFactory.typeOf(A_symbol_316);
+			LibraryBinaryOperation dynamic_A_symbol_315 = (LibraryBinaryOperation)static_A_symbol_315.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_315 = dynamic_A_symbol_315.evaluate(evaluator, T_Boolean, A_symbol_316, A_symbol_323);
+			final Value A_symbol_324 = A_symbol_315;
+			return A_symbol_324;
 		}
 	}
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/OperationCallExpBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/OperationCallExpBodies.java
index 79e97b8..0884812 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/OperationCallExpBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/OperationCallExpBodies.java
@@ -74,23 +74,23 @@
 			final LibraryProperty IP_OperationCallExp_referredOperation = P_OperationCallExp_referredOperation.getImplementation();
 			
 			
-			Value A_symbol_409 = IP_OperationCallExp_argument.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__OclExpression_, self, P_OperationCallExp_argument);
+			Value A_symbol_368 = IP_OperationCallExp_argument.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__OclExpression_, self, P_OperationCallExp_argument);
 			
-			DomainType static_A_symbol_410 = valueFactory.typeOf(A_symbol_409);
-			LibraryUnaryOperation dynamic_A_symbol_410 = (LibraryUnaryOperation)static_A_symbol_410.lookupImplementation(standardLibrary, O_Collection_size);
-			Value A_symbol_410 = dynamic_A_symbol_410.evaluate(evaluator, T_Integer, A_symbol_409);
+			DomainType static_A_symbol_369 = valueFactory.typeOf(A_symbol_368);
+			LibraryUnaryOperation dynamic_A_symbol_369 = (LibraryUnaryOperation)static_A_symbol_369.lookupImplementation(standardLibrary, O_Collection_size);
+			Value A_symbol_369 = dynamic_A_symbol_369.evaluate(evaluator, T_Integer, A_symbol_368);
 			
-			Value A_symbol_411 = IP_OperationCallExp_referredOperation.evaluate(evaluator, T_Pivot_ecore__pivot__Operation, self, P_OperationCallExp_referredOperation);
+			Value A_symbol_370 = IP_OperationCallExp_referredOperation.evaluate(evaluator, T_Pivot_ecore__pivot__Operation, self, P_OperationCallExp_referredOperation);
 			
-			Value A_symbol_412 = IP_Operation_ownedParameter.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Parameter_, A_symbol_411, P_Operation_ownedParameter);
+			Value A_symbol_371 = IP_Operation_ownedParameter.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Parameter_, A_symbol_370, P_Operation_ownedParameter);
 			
-			DomainType static_A_symbol_413 = valueFactory.typeOf(A_symbol_412);
-			LibraryUnaryOperation dynamic_A_symbol_413 = (LibraryUnaryOperation)static_A_symbol_413.lookupImplementation(standardLibrary, O_Collection_size);
-			Value A_symbol_413 = dynamic_A_symbol_413.evaluate(evaluator, T_Integer, A_symbol_412);
-			DomainType static_A_symbol_414 = valueFactory.typeOf(A_symbol_410, A_symbol_413);
-			LibraryBinaryOperation dynamic_A_symbol_414 = (LibraryBinaryOperation)static_A_symbol_414.lookupImplementation(standardLibrary, O_Real__eq_);
-			Value A_symbol_414 = dynamic_A_symbol_414.evaluate(evaluator, T_Boolean, A_symbol_410, A_symbol_413);
-			return A_symbol_414;
+			DomainType static_A_symbol_372 = valueFactory.typeOf(A_symbol_371);
+			LibraryUnaryOperation dynamic_A_symbol_372 = (LibraryUnaryOperation)static_A_symbol_372.lookupImplementation(standardLibrary, O_Collection_size);
+			Value A_symbol_372 = dynamic_A_symbol_372.evaluate(evaluator, T_Integer, A_symbol_371);
+			DomainType static_A_symbol_373 = valueFactory.typeOf(A_symbol_369, A_symbol_372);
+			LibraryBinaryOperation dynamic_A_symbol_373 = (LibraryBinaryOperation)static_A_symbol_373.lookupImplementation(standardLibrary, O_Real__eq_);
+			Value A_symbol_373 = dynamic_A_symbol_373.evaluate(evaluator, T_Boolean, A_symbol_369, A_symbol_372);
+			return A_symbol_373;
 		}
 	}
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/ParameterableElementBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/ParameterableElementBodies.java
index 7cfcb93..551f55a 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/ParameterableElementBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/ParameterableElementBodies.java
@@ -63,19 +63,17 @@
 			
 			
 			
-			DomainType static_A_symbol_114 = valueFactory.typeOf(self);
-			LibraryUnaryOperation dynamic_A_symbol_114 = (LibraryUnaryOperation)static_A_symbol_114.lookupImplementation(standardLibrary, O_OclAny_oclType);
-			Value A_symbol_114 = dynamic_A_symbol_114.evaluate(evaluator, T_AnyClassifier_Pivot_ecore__pivot__ParameterableElement_, self);
-			DomainType static_A_symbol_115 = valueFactory.typeOf(p);
-			LibraryBinaryOperation dynamic_A_symbol_115 = (LibraryBinaryOperation)static_A_symbol_115.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-			Value A_symbol_115 = dynamic_A_symbol_115.evaluate(evaluator, T_Boolean, p, A_symbol_114);
-			return A_symbol_115;
+			DomainType static_A_symbol_325 = valueFactory.typeOf(self);
+			LibraryUnaryOperation dynamic_A_symbol_325 = (LibraryUnaryOperation)static_A_symbol_325.lookupImplementation(standardLibrary, O_OclAny_oclType);
+			Value A_symbol_325 = dynamic_A_symbol_325.evaluate(evaluator, T_AnyClassifier_Pivot_ecore__pivot__ParameterableElement_, self);
+			DomainType static_A_symbol_326 = valueFactory.typeOf(p);
+			LibraryBinaryOperation dynamic_A_symbol_326 = (LibraryBinaryOperation)static_A_symbol_326.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+			Value A_symbol_326 = dynamic_A_symbol_326.evaluate(evaluator, T_Boolean, p, A_symbol_325);
+			return A_symbol_326;
 		}
 	}
 
 
 
-
-
 }
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/PropertyBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/PropertyBodies.java
index 5766dc5..b9f2af0 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/PropertyBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/PropertyBodies.java
@@ -114,26 +114,26 @@
 			final StringValue S_initial = valueFactory.stringValueOf("initial");
 			final StringValue S_derivati___ = valueFactory.stringValueOf("derivation");
 			
-			Value leftA_symbol_18;
+			Value leftA_symbol_3;
 			try {
 				
-				Value A_symbol_19 = IP_Property_isDerived.evaluate(evaluator, T_Boolean, self, P_Property_isDerived);
+				Value A_symbol_4 = IP_Property_isDerived.evaluate(evaluator, T_Boolean, self, P_Property_isDerived);
 				
-				leftA_symbol_18 = A_symbol_19;
+				leftA_symbol_3 = A_symbol_4;
 			} catch (InvalidValueException e) {
-				leftA_symbol_18 = valueFactory.createInvalidValue(e);
+				leftA_symbol_3 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_19 = leftA_symbol_18;
-			Value rightA_symbol_18;
+			Value A_symbol_4 = leftA_symbol_3;
+			Value rightA_symbol_3;
 			try {
 				
-				Value A_symbol_20 = IP_NamedElement_ownedRule.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Constraint_, self, P_NamedElement_ownedRule);
+				Value A_symbol_5 = IP_NamedElement_ownedRule.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Constraint_, self, P_NamedElement_ownedRule);
 				
 				
 				/** 
 				 * Implementation of the iterator body.
 				 */
-				AbstractBinaryOperation body_A_symbol_21 = new AbstractBinaryOperation()
+				AbstractBinaryOperation body_A_symbol_6 = new AbstractBinaryOperation()
 				{
 				/*
 				stereotype = 'derivation'
@@ -141,28 +141,28 @@
 					public Value evaluate(DomainEvaluator evaluator, DomainType returnType, Value sourceValue, Value iterator1) throws InvalidValueException {
 						final Value V_1_ = iterator1;	// iterator: 1_
 						
-						Value A_symbol_22 = IP_Constraint_stereotype.evaluate(evaluator, T_String, V_1_, P_Constraint_stereotype);
+						Value A_symbol_7 = IP_Constraint_stereotype.evaluate(evaluator, T_String, V_1_, P_Constraint_stereotype);
 						
-						DomainType static_A_symbol_23 = valueFactory.typeOf(A_symbol_22, S_derivati___);
-						LibraryBinaryOperation dynamic_A_symbol_23 = (LibraryBinaryOperation)static_A_symbol_23.lookupImplementation(standardLibrary, O_String__eq_);
-						Value A_symbol_23 = dynamic_A_symbol_23.evaluate(evaluator, T_Boolean, A_symbol_22, S_derivati___);
-						return A_symbol_23;
+						DomainType static_A_symbol_8 = valueFactory.typeOf(A_symbol_7, S_derivati___);
+						LibraryBinaryOperation dynamic_A_symbol_8 = (LibraryBinaryOperation)static_A_symbol_8.lookupImplementation(standardLibrary, O_String__eq_);
+						Value A_symbol_8 = dynamic_A_symbol_8.evaluate(evaluator, T_Boolean, A_symbol_7, S_derivati___);
+						return A_symbol_8;
 					}
 				};
-				DomainType static_A_symbol_21 = A_symbol_20.getType();
-				LibraryIteration dynamic_A_symbol_21 = (LibraryIteration)static_A_symbol_21.lookupImplementation(standardLibrary, O_Collection_any);
-				Value acc_A_symbol_21 = dynamic_A_symbol_21.createAccumulatorValue(evaluator, T_Pivot_ecore__pivot__Constraint, T_Boolean);
-				ExecutorSingleIterationManager manager_A_symbol_21 = new ExecutorSingleIterationManager(evaluator, T_Pivot_ecore__pivot__Constraint, body_A_symbol_21, (CollectionValue)A_symbol_20, acc_A_symbol_21);
-				Value A_symbol_21 = dynamic_A_symbol_21.evaluateIteration(manager_A_symbol_21);
-				final Value V_derivedConstraint = A_symbol_21;
+				DomainType static_A_symbol_6 = A_symbol_5.getType();
+				LibraryIteration dynamic_A_symbol_6 = (LibraryIteration)static_A_symbol_6.lookupImplementation(standardLibrary, O_Collection_any);
+				Value acc_A_symbol_6 = dynamic_A_symbol_6.createAccumulatorValue(evaluator, T_Pivot_ecore__pivot__Constraint, T_Boolean);
+				ExecutorSingleIterationManager manager_A_symbol_6 = new ExecutorSingleIterationManager(evaluator, T_Pivot_ecore__pivot__Constraint, body_A_symbol_6, (CollectionValue)A_symbol_5, acc_A_symbol_6);
+				Value A_symbol_6 = dynamic_A_symbol_6.evaluateIteration(manager_A_symbol_6);
+				final Value V_derivedConstraint = A_symbol_6;
 				
-				Value A_symbol_24 = IP_NamedElement_ownedRule.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Constraint_, self, P_NamedElement_ownedRule);
+				Value A_symbol_9 = IP_NamedElement_ownedRule.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Constraint_, self, P_NamedElement_ownedRule);
 				
 				
 				/** 
 				 * Implementation of the iterator body.
 				 */
-				AbstractBinaryOperation body_A_symbol_25 = new AbstractBinaryOperation()
+				AbstractBinaryOperation body_A_symbol_10 = new AbstractBinaryOperation()
 				{
 				/*
 				stereotype = 'initial'
@@ -170,143 +170,143 @@
 					public Value evaluate(DomainEvaluator evaluator, DomainType returnType, Value sourceValue, Value iterator1) throws InvalidValueException {
 						final Value V_1_1 = iterator1;	// iterator: 1_
 						
-						Value A_symbol_26 = IP_Constraint_stereotype.evaluate(evaluator, T_String, V_1_1, P_Constraint_stereotype);
+						Value A_symbol_11 = IP_Constraint_stereotype.evaluate(evaluator, T_String, V_1_1, P_Constraint_stereotype);
 						
-						DomainType static_A_symbol_27 = valueFactory.typeOf(A_symbol_26, S_initial);
-						LibraryBinaryOperation dynamic_A_symbol_27 = (LibraryBinaryOperation)static_A_symbol_27.lookupImplementation(standardLibrary, O_String__eq_);
-						Value A_symbol_27 = dynamic_A_symbol_27.evaluate(evaluator, T_Boolean, A_symbol_26, S_initial);
-						return A_symbol_27;
+						DomainType static_A_symbol_12 = valueFactory.typeOf(A_symbol_11, S_initial);
+						LibraryBinaryOperation dynamic_A_symbol_12 = (LibraryBinaryOperation)static_A_symbol_12.lookupImplementation(standardLibrary, O_String__eq_);
+						Value A_symbol_12 = dynamic_A_symbol_12.evaluate(evaluator, T_Boolean, A_symbol_11, S_initial);
+						return A_symbol_12;
 					}
 				};
-				DomainType static_A_symbol_25 = A_symbol_24.getType();
-				LibraryIteration dynamic_A_symbol_25 = (LibraryIteration)static_A_symbol_25.lookupImplementation(standardLibrary, O_Collection_any);
-				Value acc_A_symbol_25 = dynamic_A_symbol_25.createAccumulatorValue(evaluator, T_Pivot_ecore__pivot__Constraint, T_Boolean);
-				ExecutorSingleIterationManager manager_A_symbol_25 = new ExecutorSingleIterationManager(evaluator, T_Pivot_ecore__pivot__Constraint, body_A_symbol_25, (CollectionValue)A_symbol_24, acc_A_symbol_25);
-				Value A_symbol_25 = dynamic_A_symbol_25.evaluateIteration(manager_A_symbol_25);
-				final Value V_initialConstraint = A_symbol_25;
+				DomainType static_A_symbol_10 = A_symbol_9.getType();
+				LibraryIteration dynamic_A_symbol_10 = (LibraryIteration)static_A_symbol_10.lookupImplementation(standardLibrary, O_Collection_any);
+				Value acc_A_symbol_10 = dynamic_A_symbol_10.createAccumulatorValue(evaluator, T_Pivot_ecore__pivot__Constraint, T_Boolean);
+				ExecutorSingleIterationManager manager_A_symbol_10 = new ExecutorSingleIterationManager(evaluator, T_Pivot_ecore__pivot__Constraint, body_A_symbol_10, (CollectionValue)A_symbol_9, acc_A_symbol_10);
+				Value A_symbol_10 = dynamic_A_symbol_10.evaluateIteration(manager_A_symbol_10);
+				final Value V_initialConstraint = A_symbol_10;
 					
-					DomainType static_A_symbol_28 = valueFactory.typeOf(V_derivedConstraint, Null);
-					LibraryBinaryOperation dynamic_A_symbol_28 = (LibraryBinaryOperation)static_A_symbol_28.lookupImplementation(standardLibrary, O_OclAny__lt__gt_);
-					Value A_symbol_28 = dynamic_A_symbol_28.evaluate(evaluator, T_Boolean, V_derivedConstraint, Null);
-				Value A_symbol_29;
-				if (A_symbol_28.isTrue()) {
+					DomainType static_A_symbol_13 = valueFactory.typeOf(V_derivedConstraint, Null);
+					LibraryBinaryOperation dynamic_A_symbol_13 = (LibraryBinaryOperation)static_A_symbol_13.lookupImplementation(standardLibrary, O_OclAny__lt__gt_);
+					Value A_symbol_13 = dynamic_A_symbol_13.evaluate(evaluator, T_Boolean, V_derivedConstraint, Null);
+				Value A_symbol_14;
+				if (A_symbol_13.isTrue()) {
 					
-					Value A_symbol_30 = IP_Constraint_specification.evaluate(evaluator, T_Pivot_ecore__pivot__ValueSpecification, V_derivedConstraint, P_Constraint_specification);
+					Value A_symbol_15 = IP_Constraint_specification.evaluate(evaluator, T_Pivot_ecore__pivot__ValueSpecification, V_derivedConstraint, P_Constraint_specification);
 					
-					A_symbol_29 = A_symbol_30;
+					A_symbol_14 = A_symbol_15;
 				}
-				else if (A_symbol_28.isFalse()) {
-					A_symbol_29 = Null;
+				else if (A_symbol_13.isFalse()) {
+					A_symbol_14 = Null;
 				}
-				else if (A_symbol_28.isNull()) {
-					A_symbol_29 = valueFactory.throwInvalidValueException("null if condition");
+				else if (A_symbol_13.isNull()) {
+					A_symbol_14 = valueFactory.throwInvalidValueException("null if condition");
 				}
 				else {
-					A_symbol_29 = valueFactory.throwInvalidValueException("invalid if condition");
+					A_symbol_14 = valueFactory.throwInvalidValueException("invalid if condition");
 				}
-				final Value V_derivedSpecification = A_symbol_29;
+				final Value V_derivedSpecification = A_symbol_14;
 					
-					DomainType static_A_symbol_31 = valueFactory.typeOf(V_initialConstraint, Null);
-					LibraryBinaryOperation dynamic_A_symbol_31 = (LibraryBinaryOperation)static_A_symbol_31.lookupImplementation(standardLibrary, O_OclAny__lt__gt_);
-					Value A_symbol_31 = dynamic_A_symbol_31.evaluate(evaluator, T_Boolean, V_initialConstraint, Null);
-				Value A_symbol_32;
-				if (A_symbol_31.isTrue()) {
+					DomainType static_A_symbol_16 = valueFactory.typeOf(V_initialConstraint, Null);
+					LibraryBinaryOperation dynamic_A_symbol_16 = (LibraryBinaryOperation)static_A_symbol_16.lookupImplementation(standardLibrary, O_OclAny__lt__gt_);
+					Value A_symbol_16 = dynamic_A_symbol_16.evaluate(evaluator, T_Boolean, V_initialConstraint, Null);
+				Value A_symbol_17;
+				if (A_symbol_16.isTrue()) {
 					
-					Value A_symbol_33 = IP_Constraint_specification.evaluate(evaluator, T_Pivot_ecore__pivot__ValueSpecification, V_initialConstraint, P_Constraint_specification);
+					Value A_symbol_18 = IP_Constraint_specification.evaluate(evaluator, T_Pivot_ecore__pivot__ValueSpecification, V_initialConstraint, P_Constraint_specification);
 					
-					A_symbol_32 = A_symbol_33;
+					A_symbol_17 = A_symbol_18;
 				}
-				else if (A_symbol_31.isFalse()) {
-					A_symbol_32 = Null;
+				else if (A_symbol_16.isFalse()) {
+					A_symbol_17 = Null;
 				}
-				else if (A_symbol_31.isNull()) {
-					A_symbol_32 = valueFactory.throwInvalidValueException("null if condition");
+				else if (A_symbol_16.isNull()) {
+					A_symbol_17 = valueFactory.throwInvalidValueException("null if condition");
 				}
 				else {
-					A_symbol_32 = valueFactory.throwInvalidValueException("invalid if condition");
+					A_symbol_17 = valueFactory.throwInvalidValueException("invalid if condition");
 				}
-				final Value V_initialSpecification = A_symbol_32;
+				final Value V_initialSpecification = A_symbol_17;
 					
-					DomainType static_A_symbol_34 = valueFactory.typeOf(V_derivedSpecification, Null);
-					LibraryBinaryOperation dynamic_A_symbol_34 = (LibraryBinaryOperation)static_A_symbol_34.lookupImplementation(standardLibrary, O_OclAny__lt__gt_);
-					Value A_symbol_34 = dynamic_A_symbol_34.evaluate(evaluator, T_Boolean, V_derivedSpecification, Null);
-				Value A_symbol_35;
-				if (A_symbol_34.isTrue()) {
+					DomainType static_A_symbol_19 = valueFactory.typeOf(V_derivedSpecification, Null);
+					LibraryBinaryOperation dynamic_A_symbol_19 = (LibraryBinaryOperation)static_A_symbol_19.lookupImplementation(standardLibrary, O_OclAny__lt__gt_);
+					Value A_symbol_19 = dynamic_A_symbol_19.evaluate(evaluator, T_Boolean, V_derivedSpecification, Null);
+				Value A_symbol_20;
+				if (A_symbol_19.isTrue()) {
 					
-					A_symbol_35 = V_derivedSpecification;
+					A_symbol_20 = V_derivedSpecification;
 				}
-				else if (A_symbol_34.isFalse()) {
+				else if (A_symbol_19.isFalse()) {
 					
-					A_symbol_35 = V_initialSpecification;
+					A_symbol_20 = V_initialSpecification;
 				}
-				else if (A_symbol_34.isNull()) {
-					A_symbol_35 = valueFactory.throwInvalidValueException("null if condition");
+				else if (A_symbol_19.isNull()) {
+					A_symbol_20 = valueFactory.throwInvalidValueException("null if condition");
 				}
 				else {
-					A_symbol_35 = valueFactory.throwInvalidValueException("invalid if condition");
+					A_symbol_20 = valueFactory.throwInvalidValueException("invalid if condition");
 				}
-				final Value V_initialiser = A_symbol_35;
-				Value leftA_symbol_36;
+				final Value V_initialiser = A_symbol_20;
+				Value leftA_symbol_21;
 				try {
-					Value leftA_symbol_37;
+					Value leftA_symbol_22;
 					try {
 						
-						DomainType static_A_symbol_38 = valueFactory.typeOf(V_initialiser, Null);
-						LibraryBinaryOperation dynamic_A_symbol_38 = (LibraryBinaryOperation)static_A_symbol_38.lookupImplementation(standardLibrary, O_OclAny__lt__gt_);
-						Value A_symbol_38 = dynamic_A_symbol_38.evaluate(evaluator, T_Boolean, V_initialiser, Null);
-						leftA_symbol_37 = A_symbol_38;
+						DomainType static_A_symbol_23 = valueFactory.typeOf(V_initialiser, Null);
+						LibraryBinaryOperation dynamic_A_symbol_23 = (LibraryBinaryOperation)static_A_symbol_23.lookupImplementation(standardLibrary, O_OclAny__lt__gt_);
+						Value A_symbol_23 = dynamic_A_symbol_23.evaluate(evaluator, T_Boolean, V_initialiser, Null);
+						leftA_symbol_22 = A_symbol_23;
 					} catch (InvalidValueException e) {
-						leftA_symbol_37 = valueFactory.createInvalidValue(e);
+						leftA_symbol_22 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_38 = leftA_symbol_37;
-					Value rightA_symbol_37;
+					Value A_symbol_23 = leftA_symbol_22;
+					Value rightA_symbol_22;
 					try {
 						
-						DomainType static_A_symbol_39 = valueFactory.typeOf(V_initialiser);
-						LibraryBinaryOperation dynamic_A_symbol_39 = (LibraryBinaryOperation)static_A_symbol_39.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-						Value A_symbol_39 = dynamic_A_symbol_39.evaluate(evaluator, T_Boolean, V_initialiser, T_ClassClassifier_Pivot_ecore__pivot__ExpressionInOcl_);
-						rightA_symbol_37 = A_symbol_39;
+						DomainType static_A_symbol_24 = valueFactory.typeOf(V_initialiser);
+						LibraryBinaryOperation dynamic_A_symbol_24 = (LibraryBinaryOperation)static_A_symbol_24.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+						Value A_symbol_24 = dynamic_A_symbol_24.evaluate(evaluator, T_Boolean, V_initialiser, T_ClassClassifier_Pivot_ecore__pivot__ExpressionInOcl_);
+						rightA_symbol_22 = A_symbol_24;
 					} catch (InvalidValueException e) {
-						rightA_symbol_37 = valueFactory.createInvalidValue(e);
+						rightA_symbol_22 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_39 = rightA_symbol_37;
-					DomainType static_A_symbol_37 = valueFactory.typeOf(A_symbol_38);
-					LibraryBinaryOperation dynamic_A_symbol_37 = (LibraryBinaryOperation)static_A_symbol_37.lookupImplementation(standardLibrary, O_Boolean_and);
-					Value A_symbol_37 = dynamic_A_symbol_37.evaluate(evaluator, T_Boolean, A_symbol_38, A_symbol_39);
-					leftA_symbol_36 = A_symbol_37;
+					Value A_symbol_24 = rightA_symbol_22;
+					DomainType static_A_symbol_22 = valueFactory.typeOf(A_symbol_23);
+					LibraryBinaryOperation dynamic_A_symbol_22 = (LibraryBinaryOperation)static_A_symbol_22.lookupImplementation(standardLibrary, O_Boolean_and);
+					Value A_symbol_22 = dynamic_A_symbol_22.evaluate(evaluator, T_Boolean, A_symbol_23, A_symbol_24);
+					leftA_symbol_21 = A_symbol_22;
 				} catch (InvalidValueException e) {
-					leftA_symbol_36 = valueFactory.createInvalidValue(e);
+					leftA_symbol_21 = valueFactory.createInvalidValue(e);
 				}
-				Value A_symbol_37 = leftA_symbol_36;
-				Value rightA_symbol_36;
+				Value A_symbol_22 = leftA_symbol_21;
+				Value rightA_symbol_21;
 				try {
 					
 					
-					DomainType static_A_symbol_40 = valueFactory.typeOf(self);
-					LibraryBinaryOperation dynamic_A_symbol_40 = (LibraryBinaryOperation)static_A_symbol_40.lookupImplementation(standardLibrary, O_TypedMultiplicityElement_CompatibleBody);
-					Value A_symbol_40 = dynamic_A_symbol_40.evaluate(evaluator, T_Boolean, self, V_initialiser);
-					rightA_symbol_36 = A_symbol_40;
+					DomainType static_A_symbol_25 = valueFactory.typeOf(self);
+					LibraryBinaryOperation dynamic_A_symbol_25 = (LibraryBinaryOperation)static_A_symbol_25.lookupImplementation(standardLibrary, O_TypedMultiplicityElement_CompatibleBody);
+					Value A_symbol_25 = dynamic_A_symbol_25.evaluate(evaluator, T_Boolean, self, V_initialiser);
+					rightA_symbol_21 = A_symbol_25;
 				} catch (InvalidValueException e) {
-					rightA_symbol_36 = valueFactory.createInvalidValue(e);
+					rightA_symbol_21 = valueFactory.createInvalidValue(e);
 				}
-				Value A_symbol_40 = rightA_symbol_36;
-				DomainType static_A_symbol_36 = valueFactory.typeOf(A_symbol_37);
-				LibraryBinaryOperation dynamic_A_symbol_36 = (LibraryBinaryOperation)static_A_symbol_36.lookupImplementation(standardLibrary, O_Boolean_implies);
-				Value A_symbol_36 = dynamic_A_symbol_36.evaluate(evaluator, T_Boolean, A_symbol_37, A_symbol_40);
-				final Value A_symbol_41 = A_symbol_36;
-				final Value A_symbol_42 = A_symbol_41;
-				final Value A_symbol_43 = A_symbol_42;
-				final Value A_symbol_44 = A_symbol_43;
-				final Value A_symbol_45 = A_symbol_44;
-				rightA_symbol_18 = A_symbol_45;
+				Value A_symbol_25 = rightA_symbol_21;
+				DomainType static_A_symbol_21 = valueFactory.typeOf(A_symbol_22);
+				LibraryBinaryOperation dynamic_A_symbol_21 = (LibraryBinaryOperation)static_A_symbol_21.lookupImplementation(standardLibrary, O_Boolean_implies);
+				Value A_symbol_21 = dynamic_A_symbol_21.evaluate(evaluator, T_Boolean, A_symbol_22, A_symbol_25);
+				final Value A_symbol_26 = A_symbol_21;
+				final Value A_symbol_27 = A_symbol_26;
+				final Value A_symbol_28 = A_symbol_27;
+				final Value A_symbol_29 = A_symbol_28;
+				final Value A_symbol_30 = A_symbol_29;
+				rightA_symbol_3 = A_symbol_30;
 			} catch (InvalidValueException e) {
-				rightA_symbol_18 = valueFactory.createInvalidValue(e);
+				rightA_symbol_3 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_45 = rightA_symbol_18;
-			DomainType static_A_symbol_18 = valueFactory.typeOf(A_symbol_19);
-			LibraryBinaryOperation dynamic_A_symbol_18 = (LibraryBinaryOperation)static_A_symbol_18.lookupImplementation(standardLibrary, O_Boolean_implies);
-			Value A_symbol_18 = dynamic_A_symbol_18.evaluate(evaluator, T_Boolean, A_symbol_19, A_symbol_45);
-			return A_symbol_18;
+			Value A_symbol_30 = rightA_symbol_3;
+			DomainType static_A_symbol_3 = valueFactory.typeOf(A_symbol_4);
+			LibraryBinaryOperation dynamic_A_symbol_3 = (LibraryBinaryOperation)static_A_symbol_3.lookupImplementation(standardLibrary, O_Boolean_implies);
+			Value A_symbol_3 = dynamic_A_symbol_3.evaluate(evaluator, T_Boolean, A_symbol_4, A_symbol_30);
+			return A_symbol_3;
 		}
 	}
 
@@ -342,43 +342,43 @@
 			final ExecutorOperation O_OclElement_oclContainer = OCLstdlibTables.Operations._OclElement__oclContainer;
 			
 			
-			DomainType static_A_symbol_46 = valueFactory.typeOf(self);
-			LibraryUnaryOperation dynamic_A_symbol_46 = (LibraryUnaryOperation)static_A_symbol_46.lookupImplementation(standardLibrary, O_OclElement_oclContainer);
-			Value A_symbol_46 = dynamic_A_symbol_46.evaluate(evaluator, T_OclElement, self);
-			final Value V_container = A_symbol_46;
-			Value leftA_symbol_47;
+			DomainType static_A_symbol_31 = valueFactory.typeOf(self);
+			LibraryUnaryOperation dynamic_A_symbol_31 = (LibraryUnaryOperation)static_A_symbol_31.lookupImplementation(standardLibrary, O_OclElement_oclContainer);
+			Value A_symbol_31 = dynamic_A_symbol_31.evaluate(evaluator, T_OclElement, self);
+			final Value V_container = A_symbol_31;
+			Value leftA_symbol_32;
 			try {
 				
-				DomainType static_A_symbol_48 = valueFactory.typeOf(V_container);
-				LibraryBinaryOperation dynamic_A_symbol_48 = (LibraryBinaryOperation)static_A_symbol_48.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-				Value A_symbol_48 = dynamic_A_symbol_48.evaluate(evaluator, T_Boolean, V_container, T_ClassClassifier_Type_);
-				leftA_symbol_47 = A_symbol_48;
+				DomainType static_A_symbol_33 = valueFactory.typeOf(V_container);
+				LibraryBinaryOperation dynamic_A_symbol_33 = (LibraryBinaryOperation)static_A_symbol_33.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+				Value A_symbol_33 = dynamic_A_symbol_33.evaluate(evaluator, T_Boolean, V_container, T_ClassClassifier_Type_);
+				leftA_symbol_32 = A_symbol_33;
 			} catch (InvalidValueException e) {
-				leftA_symbol_47 = valueFactory.createInvalidValue(e);
+				leftA_symbol_32 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_48 = leftA_symbol_47;
-			Value rightA_symbol_47;
+			Value A_symbol_33 = leftA_symbol_32;
+			Value rightA_symbol_32;
 			try {
 				
-				DomainType static_A_symbol_49 = valueFactory.typeOf(V_container);
-				LibraryBinaryOperation dynamic_A_symbol_49 = (LibraryBinaryOperation)static_A_symbol_49.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
-				Value A_symbol_49 = dynamic_A_symbol_49.evaluate(evaluator, T_Type, V_container, T_ClassClassifier_Type_);
-				Value A_symbol_50 = IP_Type_ownedAttribute.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Property_, A_symbol_49, P_Type_ownedAttribute);
+				DomainType static_A_symbol_34 = valueFactory.typeOf(V_container);
+				LibraryBinaryOperation dynamic_A_symbol_34 = (LibraryBinaryOperation)static_A_symbol_34.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
+				Value A_symbol_34 = dynamic_A_symbol_34.evaluate(evaluator, T_Type, V_container, T_ClassClassifier_Type_);
+				Value A_symbol_35 = IP_Type_ownedAttribute.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Property_, A_symbol_34, P_Type_ownedAttribute);
 				
 				
-				DomainType static_A_symbol_51 = valueFactory.typeOf(A_symbol_50);
-				LibraryBinaryOperation dynamic_A_symbol_51 = (LibraryBinaryOperation)static_A_symbol_51.lookupImplementation(standardLibrary, O_Collection_includes);
-				Value A_symbol_51 = dynamic_A_symbol_51.evaluate(evaluator, T_Boolean, A_symbol_50, self);
-				rightA_symbol_47 = A_symbol_51;
+				DomainType static_A_symbol_36 = valueFactory.typeOf(A_symbol_35);
+				LibraryBinaryOperation dynamic_A_symbol_36 = (LibraryBinaryOperation)static_A_symbol_36.lookupImplementation(standardLibrary, O_Collection_includes);
+				Value A_symbol_36 = dynamic_A_symbol_36.evaluate(evaluator, T_Boolean, A_symbol_35, self);
+				rightA_symbol_32 = A_symbol_36;
 			} catch (InvalidValueException e) {
-				rightA_symbol_47 = valueFactory.createInvalidValue(e);
+				rightA_symbol_32 = valueFactory.createInvalidValue(e);
 			}
-			Value A_symbol_51 = rightA_symbol_47;
-			DomainType static_A_symbol_47 = valueFactory.typeOf(A_symbol_48);
-			LibraryBinaryOperation dynamic_A_symbol_47 = (LibraryBinaryOperation)static_A_symbol_47.lookupImplementation(standardLibrary, O_Boolean_and);
-			Value A_symbol_47 = dynamic_A_symbol_47.evaluate(evaluator, T_Boolean, A_symbol_48, A_symbol_51);
-			final Value A_symbol_52 = A_symbol_47;
-			return A_symbol_52;
+			Value A_symbol_36 = rightA_symbol_32;
+			DomainType static_A_symbol_32 = valueFactory.typeOf(A_symbol_33);
+			LibraryBinaryOperation dynamic_A_symbol_32 = (LibraryBinaryOperation)static_A_symbol_32.lookupImplementation(standardLibrary, O_Boolean_and);
+			Value A_symbol_32 = dynamic_A_symbol_32.evaluate(evaluator, T_Boolean, A_symbol_33, A_symbol_36);
+			final Value A_symbol_37 = A_symbol_32;
+			return A_symbol_37;
 		}
 	}
 
@@ -399,6 +399,5 @@
 
 
 
-
 }
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/TypeBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/TypeBodies.java
index 5bd462b..ba788f1 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/TypeBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/TypeBodies.java
@@ -61,8 +61,5 @@
 
 
 
-
-
-
 }
 
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/TypedMultiplicityElementBodies.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/TypedMultiplicityElementBodies.java
index a462bcc..812346c 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/TypedMultiplicityElementBodies.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/bodies/TypedMultiplicityElementBodies.java
@@ -100,177 +100,177 @@
 			final ExecutorOperation O_OclAny_oclAsType = OCLstdlibTables.Operations._OclAny__oclAsType;
 			
 			
-			Value A_symbol_116 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, bodySpecification, P_TypedElement_type);
+			Value A_symbol_378 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, bodySpecification, P_TypedElement_type);
 			
-			final Value V_bodyType = A_symbol_116;
+			final Value V_bodyType = A_symbol_378;
 				
-				DomainType static_A_symbol_117 = valueFactory.typeOf(V_bodyType);
-				LibraryBinaryOperation dynamic_A_symbol_117 = (LibraryBinaryOperation)static_A_symbol_117.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
-				Value A_symbol_117 = dynamic_A_symbol_117.evaluate(evaluator, T_Boolean, V_bodyType, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-			Value A_symbol_118;
-			if (A_symbol_117.isTrue()) {
+				DomainType static_A_symbol_379 = valueFactory.typeOf(V_bodyType);
+				LibraryBinaryOperation dynamic_A_symbol_379 = (LibraryBinaryOperation)static_A_symbol_379.lookupImplementation(standardLibrary, O_OclAny_oclIsKindOf);
+				Value A_symbol_379 = dynamic_A_symbol_379.evaluate(evaluator, T_Boolean, V_bodyType, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+			Value A_symbol_380;
+			if (A_symbol_379.isTrue()) {
 				
-				DomainType static_A_symbol_119 = valueFactory.typeOf(V_bodyType);
-				LibraryBinaryOperation dynamic_A_symbol_119 = (LibraryBinaryOperation)static_A_symbol_119.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
-				Value A_symbol_119 = dynamic_A_symbol_119.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, V_bodyType, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
-				final Value V_bodyCollectionType = A_symbol_119;
+				DomainType static_A_symbol_381 = valueFactory.typeOf(V_bodyType);
+				LibraryBinaryOperation dynamic_A_symbol_381 = (LibraryBinaryOperation)static_A_symbol_381.lookupImplementation(standardLibrary, O_OclAny_oclAsType);
+				Value A_symbol_381 = dynamic_A_symbol_381.evaluate(evaluator, T_Pivot_ecore__pivot__CollectionType, V_bodyType, T_ClassClassifier_Pivot_ecore__pivot__CollectionType_);
+				final Value V_bodyCollectionType = A_symbol_381;
 				
-				Value A_symbol_120 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, V_bodyCollectionType, P_CollectionType_elementType);
+				Value A_symbol_382 = IP_CollectionType_elementType.evaluate(evaluator, T_Pivot_ecore__pivot__Type, V_bodyCollectionType, P_CollectionType_elementType);
 				
-				final Value V_bodyElementType = A_symbol_120;
-				Value leftA_symbol_121;
+				final Value V_bodyElementType = A_symbol_382;
+				Value leftA_symbol_383;
 				try {
-					Value leftA_symbol_122;
+					Value leftA_symbol_384;
 					try {
 						
 						
-						Value A_symbol_123 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+						Value A_symbol_385 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 						
-						DomainType static_A_symbol_124 = valueFactory.typeOf(V_bodyElementType);
-						LibraryBinaryOperation dynamic_A_symbol_124 = (LibraryBinaryOperation)static_A_symbol_124.lookupImplementation(standardLibrary, O_OclType_conformsTo);
-						Value A_symbol_124 = dynamic_A_symbol_124.evaluate(evaluator, T_Boolean, V_bodyElementType, A_symbol_123);
-						leftA_symbol_122 = A_symbol_124;
+						DomainType static_A_symbol_386 = valueFactory.typeOf(V_bodyElementType);
+						LibraryBinaryOperation dynamic_A_symbol_386 = (LibraryBinaryOperation)static_A_symbol_386.lookupImplementation(standardLibrary, O_OclType_conformsTo);
+						Value A_symbol_386 = dynamic_A_symbol_386.evaluate(evaluator, T_Boolean, V_bodyElementType, A_symbol_385);
+						leftA_symbol_384 = A_symbol_386;
 					} catch (InvalidValueException e) {
-						leftA_symbol_122 = valueFactory.createInvalidValue(e);
+						leftA_symbol_384 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_124 = leftA_symbol_122;
-					Value rightA_symbol_122;
+					Value A_symbol_386 = leftA_symbol_384;
+					Value rightA_symbol_384;
 					try {
-						Value leftA_symbol_125;
+						Value leftA_symbol_387;
 						try {
 							
-							Value A_symbol_126 = IP_MultiplicityElement_isOrdered.evaluate(evaluator, T_Boolean, self, P_MultiplicityElement_isOrdered);
+							Value A_symbol_388 = IP_MultiplicityElement_isOrdered.evaluate(evaluator, T_Boolean, self, P_MultiplicityElement_isOrdered);
 							
-							leftA_symbol_125 = A_symbol_126;
+							leftA_symbol_387 = A_symbol_388;
 						} catch (InvalidValueException e) {
-							leftA_symbol_125 = valueFactory.createInvalidValue(e);
+							leftA_symbol_387 = valueFactory.createInvalidValue(e);
 						}
-						Value A_symbol_126 = leftA_symbol_125;
-						Value rightA_symbol_125;
+						Value A_symbol_388 = leftA_symbol_387;
+						Value rightA_symbol_387;
 						try {
-							Value leftA_symbol_127;
+							Value leftA_symbol_389;
 							try {
 								
-								DomainType static_A_symbol_128 = valueFactory.typeOf(V_bodyCollectionType);
-								LibraryBinaryOperation dynamic_A_symbol_128 = (LibraryBinaryOperation)static_A_symbol_128.lookupImplementation(standardLibrary, O_OclType_conformsTo);
-								Value A_symbol_128 = dynamic_A_symbol_128.evaluate(evaluator, T_Boolean, V_bodyCollectionType, T_CollectionClassifier_OrderedSet_OclAny__OclAny_);
-								leftA_symbol_127 = A_symbol_128;
+								DomainType static_A_symbol_390 = valueFactory.typeOf(V_bodyCollectionType);
+								LibraryBinaryOperation dynamic_A_symbol_390 = (LibraryBinaryOperation)static_A_symbol_390.lookupImplementation(standardLibrary, O_OclType_conformsTo);
+								Value A_symbol_390 = dynamic_A_symbol_390.evaluate(evaluator, T_Boolean, V_bodyCollectionType, T_CollectionClassifier_OrderedSet_OclAny__OclAny_);
+								leftA_symbol_389 = A_symbol_390;
 							} catch (InvalidValueException e) {
-								leftA_symbol_127 = valueFactory.createInvalidValue(e);
+								leftA_symbol_389 = valueFactory.createInvalidValue(e);
 							}
-							Value A_symbol_128 = leftA_symbol_127;
-							Value rightA_symbol_127;
+							Value A_symbol_390 = leftA_symbol_389;
+							Value rightA_symbol_389;
 							try {
 								
-								DomainType static_A_symbol_129 = valueFactory.typeOf(V_bodyCollectionType);
-								LibraryBinaryOperation dynamic_A_symbol_129 = (LibraryBinaryOperation)static_A_symbol_129.lookupImplementation(standardLibrary, O_OclType_conformsTo);
-								Value A_symbol_129 = dynamic_A_symbol_129.evaluate(evaluator, T_Boolean, V_bodyCollectionType, T_CollectionClassifier_Sequence_OclAny__OclAny_);
-								rightA_symbol_127 = A_symbol_129;
+								DomainType static_A_symbol_391 = valueFactory.typeOf(V_bodyCollectionType);
+								LibraryBinaryOperation dynamic_A_symbol_391 = (LibraryBinaryOperation)static_A_symbol_391.lookupImplementation(standardLibrary, O_OclType_conformsTo);
+								Value A_symbol_391 = dynamic_A_symbol_391.evaluate(evaluator, T_Boolean, V_bodyCollectionType, T_CollectionClassifier_Sequence_OclAny__OclAny_);
+								rightA_symbol_389 = A_symbol_391;
 							} catch (InvalidValueException e) {
-								rightA_symbol_127 = valueFactory.createInvalidValue(e);
+								rightA_symbol_389 = valueFactory.createInvalidValue(e);
 							}
-							Value A_symbol_129 = rightA_symbol_127;
-							DomainType static_A_symbol_127 = valueFactory.typeOf(A_symbol_128);
-							LibraryBinaryOperation dynamic_A_symbol_127 = (LibraryBinaryOperation)static_A_symbol_127.lookupImplementation(standardLibrary, O_Boolean_or);
-							Value A_symbol_127 = dynamic_A_symbol_127.evaluate(evaluator, T_Boolean, A_symbol_128, A_symbol_129);
-							rightA_symbol_125 = A_symbol_127;
+							Value A_symbol_391 = rightA_symbol_389;
+							DomainType static_A_symbol_389 = valueFactory.typeOf(A_symbol_390);
+							LibraryBinaryOperation dynamic_A_symbol_389 = (LibraryBinaryOperation)static_A_symbol_389.lookupImplementation(standardLibrary, O_Boolean_or);
+							Value A_symbol_389 = dynamic_A_symbol_389.evaluate(evaluator, T_Boolean, A_symbol_390, A_symbol_391);
+							rightA_symbol_387 = A_symbol_389;
 						} catch (InvalidValueException e) {
-							rightA_symbol_125 = valueFactory.createInvalidValue(e);
+							rightA_symbol_387 = valueFactory.createInvalidValue(e);
 						}
-						Value A_symbol_127 = rightA_symbol_125;
-						DomainType static_A_symbol_125 = valueFactory.typeOf(A_symbol_126, A_symbol_127);
-						LibraryBinaryOperation dynamic_A_symbol_125 = (LibraryBinaryOperation)static_A_symbol_125.lookupImplementation(standardLibrary, O_Boolean__eq_);
-						Value A_symbol_125 = dynamic_A_symbol_125.evaluate(evaluator, T_Boolean, A_symbol_126, A_symbol_127);
-						rightA_symbol_122 = A_symbol_125;
+						Value A_symbol_389 = rightA_symbol_387;
+						DomainType static_A_symbol_387 = valueFactory.typeOf(A_symbol_388, A_symbol_389);
+						LibraryBinaryOperation dynamic_A_symbol_387 = (LibraryBinaryOperation)static_A_symbol_387.lookupImplementation(standardLibrary, O_Boolean__eq_);
+						Value A_symbol_387 = dynamic_A_symbol_387.evaluate(evaluator, T_Boolean, A_symbol_388, A_symbol_389);
+						rightA_symbol_384 = A_symbol_387;
 					} catch (InvalidValueException e) {
-						rightA_symbol_122 = valueFactory.createInvalidValue(e);
+						rightA_symbol_384 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_125 = rightA_symbol_122;
-					DomainType static_A_symbol_122 = valueFactory.typeOf(A_symbol_124);
-					LibraryBinaryOperation dynamic_A_symbol_122 = (LibraryBinaryOperation)static_A_symbol_122.lookupImplementation(standardLibrary, O_Boolean_and);
-					Value A_symbol_122 = dynamic_A_symbol_122.evaluate(evaluator, T_Boolean, A_symbol_124, A_symbol_125);
-					leftA_symbol_121 = A_symbol_122;
+					Value A_symbol_387 = rightA_symbol_384;
+					DomainType static_A_symbol_384 = valueFactory.typeOf(A_symbol_386);
+					LibraryBinaryOperation dynamic_A_symbol_384 = (LibraryBinaryOperation)static_A_symbol_384.lookupImplementation(standardLibrary, O_Boolean_and);
+					Value A_symbol_384 = dynamic_A_symbol_384.evaluate(evaluator, T_Boolean, A_symbol_386, A_symbol_387);
+					leftA_symbol_383 = A_symbol_384;
 				} catch (InvalidValueException e) {
-					leftA_symbol_121 = valueFactory.createInvalidValue(e);
+					leftA_symbol_383 = valueFactory.createInvalidValue(e);
 				}
-				Value A_symbol_122 = leftA_symbol_121;
-				Value rightA_symbol_121;
+				Value A_symbol_384 = leftA_symbol_383;
+				Value rightA_symbol_383;
 				try {
-					Value leftA_symbol_130;
+					Value leftA_symbol_392;
 					try {
 						
-						Value A_symbol_131 = IP_MultiplicityElement_isUnique.evaluate(evaluator, T_Boolean, self, P_MultiplicityElement_isUnique);
+						Value A_symbol_393 = IP_MultiplicityElement_isUnique.evaluate(evaluator, T_Boolean, self, P_MultiplicityElement_isUnique);
 						
-						leftA_symbol_130 = A_symbol_131;
+						leftA_symbol_392 = A_symbol_393;
 					} catch (InvalidValueException e) {
-						leftA_symbol_130 = valueFactory.createInvalidValue(e);
+						leftA_symbol_392 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_131 = leftA_symbol_130;
-					Value rightA_symbol_130;
+					Value A_symbol_393 = leftA_symbol_392;
+					Value rightA_symbol_392;
 					try {
-						Value leftA_symbol_132;
+						Value leftA_symbol_394;
 						try {
 							
-							DomainType static_A_symbol_133 = valueFactory.typeOf(V_bodyCollectionType);
-							LibraryBinaryOperation dynamic_A_symbol_133 = (LibraryBinaryOperation)static_A_symbol_133.lookupImplementation(standardLibrary, O_OclType_conformsTo);
-							Value A_symbol_133 = dynamic_A_symbol_133.evaluate(evaluator, T_Boolean, V_bodyCollectionType, T_CollectionClassifier_OrderedSet_OclAny__OclAny_);
-							leftA_symbol_132 = A_symbol_133;
+							DomainType static_A_symbol_395 = valueFactory.typeOf(V_bodyCollectionType);
+							LibraryBinaryOperation dynamic_A_symbol_395 = (LibraryBinaryOperation)static_A_symbol_395.lookupImplementation(standardLibrary, O_OclType_conformsTo);
+							Value A_symbol_395 = dynamic_A_symbol_395.evaluate(evaluator, T_Boolean, V_bodyCollectionType, T_CollectionClassifier_OrderedSet_OclAny__OclAny_);
+							leftA_symbol_394 = A_symbol_395;
 						} catch (InvalidValueException e) {
-							leftA_symbol_132 = valueFactory.createInvalidValue(e);
+							leftA_symbol_394 = valueFactory.createInvalidValue(e);
 						}
-						Value A_symbol_133 = leftA_symbol_132;
-						Value rightA_symbol_132;
+						Value A_symbol_395 = leftA_symbol_394;
+						Value rightA_symbol_394;
 						try {
 							
-							DomainType static_A_symbol_134 = valueFactory.typeOf(V_bodyCollectionType);
-							LibraryBinaryOperation dynamic_A_symbol_134 = (LibraryBinaryOperation)static_A_symbol_134.lookupImplementation(standardLibrary, O_OclType_conformsTo);
-							Value A_symbol_134 = dynamic_A_symbol_134.evaluate(evaluator, T_Boolean, V_bodyCollectionType, T_CollectionClassifier_Set_OclAny__OclAny_);
-							rightA_symbol_132 = A_symbol_134;
+							DomainType static_A_symbol_396 = valueFactory.typeOf(V_bodyCollectionType);
+							LibraryBinaryOperation dynamic_A_symbol_396 = (LibraryBinaryOperation)static_A_symbol_396.lookupImplementation(standardLibrary, O_OclType_conformsTo);
+							Value A_symbol_396 = dynamic_A_symbol_396.evaluate(evaluator, T_Boolean, V_bodyCollectionType, T_CollectionClassifier_Set_OclAny__OclAny_);
+							rightA_symbol_394 = A_symbol_396;
 						} catch (InvalidValueException e) {
-							rightA_symbol_132 = valueFactory.createInvalidValue(e);
+							rightA_symbol_394 = valueFactory.createInvalidValue(e);
 						}
-						Value A_symbol_134 = rightA_symbol_132;
-						DomainType static_A_symbol_132 = valueFactory.typeOf(A_symbol_133);
-						LibraryBinaryOperation dynamic_A_symbol_132 = (LibraryBinaryOperation)static_A_symbol_132.lookupImplementation(standardLibrary, O_Boolean_or);
-						Value A_symbol_132 = dynamic_A_symbol_132.evaluate(evaluator, T_Boolean, A_symbol_133, A_symbol_134);
-						rightA_symbol_130 = A_symbol_132;
+						Value A_symbol_396 = rightA_symbol_394;
+						DomainType static_A_symbol_394 = valueFactory.typeOf(A_symbol_395);
+						LibraryBinaryOperation dynamic_A_symbol_394 = (LibraryBinaryOperation)static_A_symbol_394.lookupImplementation(standardLibrary, O_Boolean_or);
+						Value A_symbol_394 = dynamic_A_symbol_394.evaluate(evaluator, T_Boolean, A_symbol_395, A_symbol_396);
+						rightA_symbol_392 = A_symbol_394;
 					} catch (InvalidValueException e) {
-						rightA_symbol_130 = valueFactory.createInvalidValue(e);
+						rightA_symbol_392 = valueFactory.createInvalidValue(e);
 					}
-					Value A_symbol_132 = rightA_symbol_130;
-					DomainType static_A_symbol_130 = valueFactory.typeOf(A_symbol_131, A_symbol_132);
-					LibraryBinaryOperation dynamic_A_symbol_130 = (LibraryBinaryOperation)static_A_symbol_130.lookupImplementation(standardLibrary, O_Boolean__eq_);
-					Value A_symbol_130 = dynamic_A_symbol_130.evaluate(evaluator, T_Boolean, A_symbol_131, A_symbol_132);
-					rightA_symbol_121 = A_symbol_130;
+					Value A_symbol_394 = rightA_symbol_392;
+					DomainType static_A_symbol_392 = valueFactory.typeOf(A_symbol_393, A_symbol_394);
+					LibraryBinaryOperation dynamic_A_symbol_392 = (LibraryBinaryOperation)static_A_symbol_392.lookupImplementation(standardLibrary, O_Boolean__eq_);
+					Value A_symbol_392 = dynamic_A_symbol_392.evaluate(evaluator, T_Boolean, A_symbol_393, A_symbol_394);
+					rightA_symbol_383 = A_symbol_392;
 				} catch (InvalidValueException e) {
-					rightA_symbol_121 = valueFactory.createInvalidValue(e);
+					rightA_symbol_383 = valueFactory.createInvalidValue(e);
 				}
-				Value A_symbol_130 = rightA_symbol_121;
-				DomainType static_A_symbol_121 = valueFactory.typeOf(A_symbol_122);
-				LibraryBinaryOperation dynamic_A_symbol_121 = (LibraryBinaryOperation)static_A_symbol_121.lookupImplementation(standardLibrary, O_Boolean_and);
-				Value A_symbol_121 = dynamic_A_symbol_121.evaluate(evaluator, T_Boolean, A_symbol_122, A_symbol_130);
-				final Value A_symbol_135 = A_symbol_121;
-				final Value A_symbol_136 = A_symbol_135;
-				A_symbol_118 = A_symbol_136;
+				Value A_symbol_392 = rightA_symbol_383;
+				DomainType static_A_symbol_383 = valueFactory.typeOf(A_symbol_384);
+				LibraryBinaryOperation dynamic_A_symbol_383 = (LibraryBinaryOperation)static_A_symbol_383.lookupImplementation(standardLibrary, O_Boolean_and);
+				Value A_symbol_383 = dynamic_A_symbol_383.evaluate(evaluator, T_Boolean, A_symbol_384, A_symbol_392);
+				final Value A_symbol_397 = A_symbol_383;
+				final Value A_symbol_398 = A_symbol_397;
+				A_symbol_380 = A_symbol_398;
 			}
-			else if (A_symbol_117.isFalse()) {
+			else if (A_symbol_379.isFalse()) {
 				
 				
-				Value A_symbol_137 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
+				Value A_symbol_399 = IP_TypedElement_type.evaluate(evaluator, T_Pivot_ecore__pivot__Type, self, P_TypedElement_type);
 				
-				DomainType static_A_symbol_138 = valueFactory.typeOf(V_bodyType);
-				LibraryBinaryOperation dynamic_A_symbol_138 = (LibraryBinaryOperation)static_A_symbol_138.lookupImplementation(standardLibrary, O_OclType_conformsTo);
-				Value A_symbol_138 = dynamic_A_symbol_138.evaluate(evaluator, T_Boolean, V_bodyType, A_symbol_137);
-				A_symbol_118 = A_symbol_138;
+				DomainType static_A_symbol_400 = valueFactory.typeOf(V_bodyType);
+				LibraryBinaryOperation dynamic_A_symbol_400 = (LibraryBinaryOperation)static_A_symbol_400.lookupImplementation(standardLibrary, O_OclType_conformsTo);
+				Value A_symbol_400 = dynamic_A_symbol_400.evaluate(evaluator, T_Boolean, V_bodyType, A_symbol_399);
+				A_symbol_380 = A_symbol_400;
 			}
-			else if (A_symbol_117.isNull()) {
-				A_symbol_118 = valueFactory.throwInvalidValueException("null if condition");
+			else if (A_symbol_379.isNull()) {
+				A_symbol_380 = valueFactory.throwInvalidValueException("null if condition");
 			}
 			else {
-				A_symbol_118 = valueFactory.throwInvalidValueException("invalid if condition");
+				A_symbol_380 = valueFactory.throwInvalidValueException("invalid if condition");
 			}
-			final Value A_symbol_139 = A_symbol_118;
-			return A_symbol_139;
+			final Value A_symbol_401 = A_symbol_380;
+			return A_symbol_401;
 		}
 	}
 
@@ -289,11 +289,11 @@
 			final ValueFactory valueFactory = evaluator.getValueFactory();
 			final StringValue S_name = valueFactory.stringValueOf("name");
 			
-			ObjectValue A_symbol_140 = PivotTables.Types._Parameter.createInstance(valueFactory);
+			ObjectValue A_symbol_402 = PivotTables.Types._Parameter.createInstance(valueFactory);
 			
-			P_NamedElement_name.setValue(A_symbol_140, S_name);
+			P_NamedElement_name.setValue(A_symbol_402, S_name);
 			
-			return A_symbol_140;
+			return A_symbol_402;
 		}
 	}
 }
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/model/AbstractPivotModel.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/model/AbstractContents.java
similarity index 69%
rename from examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/model/AbstractPivotModel.java
rename to examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/model/AbstractContents.java
index 0d38ffb..736e92a 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/model/AbstractPivotModel.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/model/AbstractContents.java
@@ -16,8 +16,6 @@
 
 import java.util.List;
 
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
 import org.eclipse.ocl.examples.domain.library.LibraryFeature;
 import org.eclipse.ocl.examples.pivot.AnyType;
 import org.eclipse.ocl.examples.pivot.AssociativityKind;
@@ -26,6 +24,8 @@
 import org.eclipse.ocl.examples.pivot.ClassifierType;
 import org.eclipse.ocl.examples.pivot.CollectionType;
 import org.eclipse.ocl.examples.pivot.Comment;
+import org.eclipse.ocl.examples.pivot.DataType;
+import org.eclipse.ocl.examples.pivot.Element;
 import org.eclipse.ocl.examples.pivot.Enumeration;
 import org.eclipse.ocl.examples.pivot.EnumerationLiteral;
 import org.eclipse.ocl.examples.pivot.InvalidType;
@@ -53,92 +53,90 @@
 import org.eclipse.ocl.examples.pivot.Type;
 import org.eclipse.ocl.examples.pivot.TypeTemplateParameter;
 import org.eclipse.ocl.examples.pivot.VoidType;
+import org.eclipse.ocl.examples.pivot.manager.PivotStandardLibrary;
 
-public class AbstractPivotModel extends XMLResourceImpl
+public class AbstractContents
 {	
-	public AbstractPivotModel(URI uri) {
-		super(uri);
+	protected final PivotStandardLibrary standardLibrary;
+	
+	protected AbstractContents() {
+		this.standardLibrary = null;
+	}
+	
+	protected AbstractContents(PivotStandardLibrary standardLibrary) {
+		this.standardLibrary = standardLibrary;
 	}
 
-	public static AnyType createAnyType(String name) {
+	protected AnyType createAnyType(String name) {
 		AnyType pivotType = PivotFactory.eINSTANCE.createAnyType();
 		pivotType.setName(name);
 		return pivotType;
 	}
 
-	public static BagType createBagType(String name) {
+	protected BagType createBagType(String name) {
 		BagType pivotType = PivotFactory.eINSTANCE.createBagType();
 		pivotType.setName(name);
 		return pivotType;
 	}
 
-	public static Class createClass(String name) {
+	protected Class createClass(String name) {
 		Class pivotType = PivotFactory.eINSTANCE.createClass();
 		pivotType.setName(name);
 		return pivotType;
 	}
 
-	public static ClassifierType createClassifierType(String name) {
+	protected ClassifierType createClassifierType(String name) {
 		ClassifierType pivotType = PivotFactory.eINSTANCE.createClassifierType();
 		pivotType.setName(name);
 		return pivotType;
 	}
 
-	public static CollectionType createCollectionType(String name) {
+	protected CollectionType createCollectionType(String name) {
 		CollectionType pivotType = PivotFactory.eINSTANCE.createCollectionType();
 		pivotType.setName(name);
 		return pivotType;
 	}
 
-	public static Comment createComment(String body) {
-		Comment pivotComment = PivotFactory.eINSTANCE.createComment();
-		pivotComment.setBody(body);
-		return pivotComment;
+	protected DataType createDataType(String name) {
+		DataType pivotType = PivotFactory.eINSTANCE.createDataType();
+		pivotType.setName(name);
+		return pivotType;
 	}
 	
-	public static Enumeration createEnumeration(String name, EnumerationLiteral... enumerationLiterals) {
+	protected Enumeration createEnumeration(String name) {
 		Enumeration pivotType = PivotFactory.eINSTANCE.createEnumeration();
 		pivotType.setName(name);
-		List<EnumerationLiteral> ownedLiterals = pivotType.getOwnedLiterals();
-		for (EnumerationLiteral enumerationLiteral : enumerationLiterals) {
-			ownedLiterals.add(enumerationLiteral);
-		}
 		return pivotType;
 	}
 
-	public static EnumerationLiteral createEnumerationLiteral(String name) {
+	protected EnumerationLiteral createEnumerationLiteral(String name) {
 		EnumerationLiteral pivotEnumerationLiteral = PivotFactory.eINSTANCE.createEnumerationLiteral();
 		pivotEnumerationLiteral.setName(name);
 		return pivotEnumerationLiteral;
 	}
 	
-	public static Iteration createIteration(String name, Type type, String implementationClass, LibraryFeature implementation, Parameter body, Parameter... iterators) {
+	protected Iteration createIteration(String name, Type type, String implementationClass, LibraryFeature implementation) {
 		Iteration pivotIteration = PivotFactory.eINSTANCE.createIteration();
 		pivotIteration.setName(name);
 		pivotIteration.setType(type);
 		pivotIteration.setImplementationClass(implementationClass);
 		pivotIteration.setImplementation(implementation);
-		pivotIteration.getOwnedParameters().add(body);
-		List<Parameter> ownedIterators = pivotIteration.getOwnedIterators();
-		for (Parameter iterator : iterators) {
-			ownedIterators.add(iterator);
-		}
 		return pivotIteration;
 	}
 
-	public static InvalidType createInvalidType(String name) {
+	protected InvalidType createInvalidType(String name) {
 		InvalidType pivotType = PivotFactory.eINSTANCE.createInvalidType();
 		pivotType.setName(name);
 		return pivotType;
 	}
 	
-	public static LambdaType createLambdaType(String name) {
+	protected LambdaType createLambdaType(String name) {
 		LambdaType pivotType = PivotFactory.eINSTANCE.createLambdaType();
 		pivotType.setName(name);
 		return pivotType;
 	}
 
-	public static Library createLibrary(String name, String nsPrefix, String nsURI) {
+	protected Library createLibrary(String name, String nsPrefix, String nsURI) {
 		Library pivotLibrary = PivotFactory.eINSTANCE.createLibrary();
 		pivotLibrary.setName(name);
 		pivotLibrary.setNsPrefix(nsPrefix);
@@ -146,26 +144,22 @@
 		return pivotLibrary;
 	}
 	
-	public static Operation createOperation(String name, Type type, String implementationClass, LibraryFeature implementation, Parameter... parameters) {
+	protected Operation createOperation(String name, Type type, String implementationClass, LibraryFeature implementation) {
 		Operation pivotOperation = PivotFactory.eINSTANCE.createOperation();
 		pivotOperation.setName(name);
 		pivotOperation.setType(type);
 		pivotOperation.setImplementationClass(implementationClass);
 		pivotOperation.setImplementation(implementation);
-		List<Parameter> ownedParameters = pivotOperation.getOwnedParameters();
-		for (Parameter parameter : parameters) {
-			ownedParameters.add(parameter);
-		}
 		return pivotOperation;
 	}
 
-	public static OrderedSetType createOrderedSetType(String name) {
+	protected OrderedSetType createOrderedSetType(String name) {
 		OrderedSetType pivotType = PivotFactory.eINSTANCE.createOrderedSetType();
 		pivotType.setName(name);
 		return pivotType;
 	}
 
-	public static Package createPackage(String name, String nsPrefix, String nsURI) {
+	protected Package createPackage(String name, String nsPrefix, String nsURI) {
 		Package pivotPackage = PivotFactory.eINSTANCE.createPackage();
 		pivotPackage.setName(name);
 		pivotPackage.setNsPrefix(nsPrefix);
@@ -173,54 +167,52 @@
 		return pivotPackage;
 	}
 	
-	public static Parameter createParameter(String name, Type type) {
+	protected Parameter createParameter(String name, Type type) {
 		Parameter pivotParameter = PivotFactory.eINSTANCE.createParameter();
 		pivotParameter.setName(name);
 		pivotParameter.setType(type);
 		return pivotParameter;
 	}
 	
-	public static Precedence createPrecedence(String name, AssociativityKind kind) {
+	protected Precedence createPrecedence(String name, AssociativityKind kind) {
 		Precedence pivotPrecedence = PivotFactory.eINSTANCE.createPrecedence();
 		pivotPrecedence.setName(name);
 		pivotPrecedence.setAssociativity(kind);
 		return pivotPrecedence;
 	}
 	
-	public static PrimitiveType createPrimitiveType(String name) {
+	protected PrimitiveType createPrimitiveType(String name) {
 		PrimitiveType pivotType = PivotFactory.eINSTANCE.createPrimitiveType();
 		pivotType.setName(name);
 		return pivotType;
 	}
 	
-	public static Property createProperty(String name, Type type, String implementationClass, LibraryFeature implementation) {
+	protected Property createProperty(String name, Type type) {
 		Property pivotProperty = PivotFactory.eINSTANCE.createProperty();
 		pivotProperty.setName(name);
 		pivotProperty.setType(type);
-		pivotProperty.setImplementationClass(implementationClass);
-		pivotProperty.setImplementation(implementation);
 		return pivotProperty;
 	}
 
-	public static SelfType createSelfType(String name) {
+	protected SelfType createSelfType(String name) {
 		SelfType pivotType = PivotFactory.eINSTANCE.createSelfType();
 		pivotType.setName(name);
 		return pivotType;
 	}
 
-	public static SequenceType createSequenceType(String name) {
+	protected SequenceType createSequenceType(String name) {
 		SequenceType pivotType = PivotFactory.eINSTANCE.createSequenceType();
 		pivotType.setName(name);
 		return pivotType;
 	}
 
-	public static SetType createSetType(String name) {
+	protected SetType createSetType(String name) {
 		SetType pivotType = PivotFactory.eINSTANCE.createSetType();
 		pivotType.setName(name);
 		return pivotType;
 	}
 
-	public static TemplateBinding createTemplateBinding(TemplateSignature templateSignature, TemplateParameterSubstitution... templateParameterSubstitutions) {
+	protected TemplateBinding createTemplateBinding(TemplateSignature templateSignature, TemplateParameterSubstitution... templateParameterSubstitutions) {
 		TemplateBinding pivotTemplateBinding = PivotFactory.eINSTANCE.createTemplateBinding();
 		List<TemplateParameterSubstitution> parameterSubstitutions = pivotTemplateBinding.getParameterSubstitutions();
 		for (TemplateParameterSubstitution templateParameterSubstitution : templateParameterSubstitutions) {
@@ -230,14 +222,14 @@
 		return pivotTemplateBinding;
 	}
 
-	public static TemplateParameterSubstitution createTemplateParameterSubstitution(TemplateParameter formal, ParameterableElement actual) {
+	protected TemplateParameterSubstitution createTemplateParameterSubstitution(TemplateParameter formal, ParameterableElement actual) {
 		TemplateParameterSubstitution pivotTemplateParameterSubstitution = PivotFactory.eINSTANCE.createTemplateParameterSubstitution();
 		pivotTemplateParameterSubstitution.setFormal(formal);
 		pivotTemplateParameterSubstitution.setActual(actual);
 		return pivotTemplateParameterSubstitution;
 	}
 
-	public static TemplateSignature createTemplateSignature(TemplateableElement templateableElement, TemplateParameter... templateParameters) {
+	protected TemplateSignature createTemplateSignature(TemplateableElement templateableElement, TemplateParameter... templateParameters) {
 		TemplateSignature pivotTemplateSignature = PivotFactory.eINSTANCE.createTemplateSignature();
 		List<TemplateParameter> parameters = pivotTemplateSignature.getOwnedParameters();
 		for (TemplateParameter templateParameter : templateParameters) {
@@ -247,7 +239,7 @@
 		return pivotTemplateSignature;
 	}
 	
-	public static TupleType createTupleType(String name, Property... properties) {
+	protected TupleType createTupleType(String name, Property... properties) {
 		TupleType pivotType = PivotFactory.eINSTANCE.createTupleType();
 		pivotType.setName(name);
 		List<Property> ownedProperties = pivotType.getOwnedAttributes();
@@ -257,15 +249,21 @@
 		return pivotType;
 	}
 
-	public static TypeTemplateParameter createTypeTemplateParameter(Type type) {
+	protected TypeTemplateParameter createTypeTemplateParameter(Type type) {
 		TypeTemplateParameter pivotTypeTemplateParameter = PivotFactory.eINSTANCE.createTypeTemplateParameter();
 		pivotTypeTemplateParameter.setOwnedParameteredElement(type);
 		return pivotTypeTemplateParameter;
 	}
 
-	public static VoidType createVoidType(String name) {
+	protected VoidType createVoidType(String name) {
 		VoidType pivotType = PivotFactory.eINSTANCE.createVoidType();
 		pivotType.setName(name);
 		return pivotType;
 	}
+
+	protected void installComment(Element element, String body) {
+		Comment pivotComment = PivotFactory.eINSTANCE.createComment();
+		pivotComment.setBody(body);
+		element.getOwnedComments().add(pivotComment);
+	}
 }
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/model/OCLstdlib.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/model/OCLstdlib.java
index 72a99ba..4628ceb 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/model/OCLstdlib.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/model/OCLstdlib.java
@@ -26,16 +26,13 @@
 import java.util.List;
 
 import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
 import org.eclipse.ocl.examples.pivot.*;
 import org.eclipse.ocl.examples.pivot.Class;
 import org.eclipse.ocl.examples.pivot.Library;
 import org.eclipse.ocl.examples.pivot.Package;
 import org.eclipse.ocl.examples.pivot.library.StandardLibraryContribution;
-import org.eclipse.uml2.common.util.SubsetSupersetEObjectEList;
 
 /**
  * This is the http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib Standard Library
@@ -49,8 +46,8 @@
  * to locate a library type when its default Standard Library URI is the same
  * as this Standard Library.
  */
-@SuppressWarnings("nls")
-public class OCLstdlib extends AbstractPivotModel
+@SuppressWarnings({"nls", "unused"})
+public class OCLstdlib extends XMIResourceImpl
 {
 	/**
 	 *	The static package-of-types pivot model of the Standard Library.
@@ -62,1335 +59,6 @@
 	 */
 	public static final String STDLIB_URI = "http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib";
 
-	private static Comment co_A_32_bag_32_is_32_a_32_c = createComment("A bag is a collection with duplicates allowed. That is, one object can be an element of a bag many times.\nThere is no ordering defined on the elements in a bag.\nBag is itself an instance of the metatype BagType.");
-	private static Comment co_A_32_sequence_32_i = createComment("A sequence is a collection where the elements are ordered.\nAn element may be part of a sequence more than once.\nSequence is itself an instance of the metatype SequenceType.\nA Sentence is not a subtype of Bag.\nThe common supertype of Sentence and Bags is Collection.");
-	private static Comment co_All_32_types_32_in = createComment("All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.\nConceptually, OclAny behaves as a supertype for all the types.\nFeatures of OclAny are available on each object in all OCL expressions.\nOclAny is itself an instance of the metatype AnyType.\n\nAll classes in a UML model inherit all operations defined on OclAny.\nTo avoid name conflicts between properties in the model and the properties inherited from OclAny,\nall names on the properties of OclAny start with \u00E2\u20AC\u02DCocl.\u00E2\u20AC\u2122\nAlthough theoretically there may still be name conflicts, they can be avoided.\nOne can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.\n\nOperations of OclAny, where the instance of OclAny is called object.");
-	private static Comment co_An_32_OrderedSe = createComment("An OrderedSet that contains all the elements from oclText[self], with duplicates removed,\nin an order dependent on the particular concrete collection type.");
-	private static Comment co_Can_32_only_32_be_32_ = createComment("Can only be used in a postcondition.\nEvaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn\u00E2\u20AC\u2122t exist at precondition time).");
-	private static Comment co_Collection_32_i = createComment("Collection is the abstract supertype of all collection types in the OCL Standard Library.\nEach occurrence of an object in a collection is called an element.\nIf an object occurs twice in a collection, there are two elements.\n\nThis sub clause defines the properties on Collections that have identical semantics for all collection subtypes.\nSome operations may be defined within the subtype as well,\nwhich means that there is an additional postcondition or a more specialized return value.\nCollection is itself an instance of the metatype CollectionType.\n\nThe definition of several common operations is different for each subtype.\nThese operations are not mentioned in this sub clause.\n\nThe semantics of the collection operations is given in the form of a postcondition that uses the IterateExp of the IteratorExp construct.\nThe semantics of those constructs is defined in Clause 10 (\u00E2\u20AC\u0153Semantics Described using UML\u00E2\u20AC\uFFFD).\nIn several cases the postcondition refers to other collection operations,\nwhich in turn are defined in terms of the IterateExp or IteratorExp constructs.\n\nWell-formedness rules\n\n[1] A collection cannot contain oclText[invalid] values.\n\ncontext Collection\ninv: self->forAll(not oclIsInvalid())");
-	private static Comment co_Converts_32_ocl = createComment("Converts oclText[self] to a Real value.");
-	private static Comment co_Converts_32_ocl_1 = createComment("Converts oclText[self] to a boolean value.");
-	private static Comment co_Converts_32_ocl_2 = createComment("Converts oclText[self] to a string value.");
-	private static Comment co_Converts_32_ocl_3 = createComment("Converts oclText[self] to a string value.");
-	private static Comment co_Converts_32_ocl_4 = createComment("Converts oclText[self] to a string value.");
-	private static Comment co_Converts_32_ocl_5 = createComment("Converts oclText[self] to an Integer value.");
-	private static Comment co_Converts_32_ocl_6 = createComment("Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.\nOtherwise, returns the same string as oclText[self].");
-	private static Comment co_Converts_32_ocl_7 = createComment("Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.\nOtherwise, returns the same string as oclText[self].");
-	private static Comment co_Does_32_oclText = createComment("Does oclText[self] contain all the elements of c2 ?");
-	private static Comment co_Does_32_oclText_1 = createComment("Does oclText[self] contain none of the elements of c2 ?");
-	private static Comment co_Evaluates_32_to = createComment("Evaluates to oclText[self], where oclText[self] is of the type identified by T.\nThe type T may be any classifier defined in the UML model;\nif the actual type of oclText[self] at evaluation time does not conform to T,\nthen the oclAsType operation evaluates to oclText[invalid].\n\nIn the case of feature redefinition, casting an object to a supertype of its actual type\ndoes not access the supertype\u00E2\u20AC\u2122s definition of the feature;\naccording to the semantics of redefinition, the redefined feature simply does not exist for the object.\nHowever, when casting to a supertype, any features additionally defined by the subtype are suppressed.");
-	private static Comment co_Evaluates_32_to_1 = createComment("Evaluates to oclText[self], where oclText[self] is of the type identified by T.\nThe type T may be any classifier defined in the UML model;\nif the actual type of oclText[self] at evaluation time does not conform to T,\nthen the oclAsType operation evaluates to oclText[invalid].\n\nThe standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to\nReal or Integer, but the e[unlimited] value may not.\nConversion of e[unlimited] to Real or Integer returns oclText[invalid].");
-	private static Comment co_Evaluates_32_to_2 = createComment("Evaluates to oclText[true] if oclText[self] and s contain the same elements.");
-	private static Comment co_Evaluates_32_to_3 = createComment("Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t");
-	private static Comment co_Evaluates_32_to_4 = createComment("Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid.");
-	private static Comment co_Evaluates_32_to_5 = createComment("Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null].");
-	private static Comment co_Evaluates_32_to_6 = createComment("Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec.");
-	private static Comment co_Evaluates_32_to_7 = createComment("Evaluates to oclText[true] if the type of oclText[self] conforms to t.\nThat is, oclText[self] is of type t or a subtype of t.");
-	private static Comment co_Evaluates_32_to_8 = createComment("Evaluates to the literals of the enumeration.");
-	private static Comment co_Evaluates_32_to_9 = createComment("Evaluates to the type of the collection elements.");
-	private static Comment co_Evaluates_32_to_10 = createComment("Evaluates to the type of which oclText[self] is an instance.");
-	private static Comment co_Evaluates_32_to_11 = createComment("Evaluates to the type of which oclText[self] is an instance.");
-	private static Comment co_Evaluates_32_to_12 = createComment("Evaluates to the type of which oclText[self] is an instance.");
-	private static Comment co_Evaluates_32_to_13 = createComment("Evaluates to the type of which self is an instance.");
-	private static Comment co_If_32_the_32_eleme = createComment("If the element type is not a collection type, this results in the same collection as oclText[self].\nIf the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self].");
-	private static Comment co_Is_32_oclText_91_s = createComment("Is oclText[self] not the empty collection?\n\noclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}].");
-	private static Comment co_Is_32_oclText_91_s_1 = createComment("Is oclText[self] the empty collection?\n\nNote: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}].");
-	private static Comment co_Obtains_32_the_32_ = createComment("Obtains the characters of oclText[self] as a sequence.");
-	private static Comment co_OclMessage_10_T = createComment("OclMessage\nThis sub clause contains the definition of the standard type OclMessage.\nAs defined in this sub clause, each ocl message type is actually a template type with one parameter.\n\u00E2\u20AC\u02DCT\u00E2\u20AC\u2122 denotes the parameter.\nA concrete ocl message type is created by substituting an operation or signal for the T.\n\nThe predefined type OclMessage is an instance of MessageType.\nEvery OclMessage is fully determined by either the operation, or signal given as parameter.\nNote that there is conceptually an undefined (infinite) number of these types,\nas each is determined by a different operation or signal.\nThese types are unnamed. Every type has as attributes the name of the operation or signal,\nand either all formal parameters of the operation, or all attributes of the signal.\nOclMessage is itself an instance of the metatype MessageType.\n\nOclMessage has a number of predefined operations, as shown in the OCL Standard Library.");
-	private static Comment co_Queries_32_the_32_ = createComment("Queries the character at position i in oclText[self].");
-	private static Comment co_Queries_32_the_32__1 = createComment("Queries the index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].\nThe empty string is considered to be a substring of every string but the empty string, at index 1.\nNo string is a substring of the empty string.");
-	private static Comment co_Queries_32_whet = createComment("Queries whether s and oclText[self] are equivalent under case-insensitive collation.");
-	private static Comment co_Redefines_32_th = createComment("Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].\nIf the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self].");
-	private static Comment co_Redefines_32_th_1 = createComment("Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].\nIf the element type is a collection type, the result is the sequence containing all the elements\nof all the recursively flattened elements of oclText[self]. The order of the elements is partial.");
-	private static Comment co_Redefines_32_th_2 = createComment("Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].\nIf the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self].");
-	private static Comment co_Redefines_32_th_3 = createComment("Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]\nif object is oclText[invalid], oclText[false] otherwise.");
-	private static Comment co_Results_32_in_32_o = createComment("Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false].");
-	private static Comment co_Results_32_in_32_o_1 = createComment("Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection.");
-	private static Comment co_Results_32_in_32_o_2 = createComment("Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false].");
-	private static Comment co_Results_32_in_32_o_3 = createComment("Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true].");
-	private static Comment co_Results_32_in_32_t = createComment("Results in the Collection containing all elements of the source collection.\nThe element for which body has the lowest value comes first, and so on.\nThe type of the body expression must have the < operation defined.\nThe < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c).");
-	private static Comment co_Results_32_in_32_t_1 = createComment("Results in the Sequence containing all elements of the source collection.\nThe element for which body has the lowest value comes first, and so on.\nThe type of the body expression must have the < operation defined.\nThe < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c).");
-	private static Comment co_Results_32_in_32_t_2 = createComment("Results in the Sequence containing all elements of the source collection.\nThe element for which body has the lowest value comes first, and so on.\nThe type of the body expression must have the < operation defined.\nThe < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c).");
-	private static Comment co_Results_32_in_32_t_3 = createComment("Results in the ordered set containing all elements of the source collection.\nThe element for which body has the lowest value comes first, and so on.\nThe type of the body expression must have the < operation defined.\nThe < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c).");
-	private static Comment co_Results_32_in_32_t_4 = createComment("Results in the ordered set containing all elements of the source collection.\nThe element for which body has the lowest value comes first, and so on.\nThe type of the body expression must have the < operation defined.\nThe < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c).");
-	private static Comment co_Results_32_in_32_t_5 = createComment("Results in the ordered set containing all elements of the source collection.\nThe element for which body has the lowest value comes first, and so on.\nThe type of the body expression must have the < operation defined.\nThe < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c).");
-	private static Comment co_Return_32__sub_ve_44__32_ = createComment("Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.\n\nThe compareTo operation should be commutative.");
-	private static Comment co_Return_32_a_32_set = createComment("Return a set of all enumeration values of oclText[self].");
-	private static Comment co_Return_32_a_32_set_1 = createComment("Return a set of all instances of the type and derived types of self.");
-	private static Comment co_Return_32_the_32__39_ = createComment("Return the \'zero\' value of self to initialize a summation.\n\nzero().sum(self) = self.");
-	private static Comment co_Return_32_the_32_s = createComment("Return the sum of self and that.\n\nThe sum operation should be associative.");
-	private static Comment co_Returns_32__39_inv = createComment("Returns \'invalid\'.");
-	private static Comment co_Returns_32_a_32_Se = createComment("Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,");
-	private static Comment co_Returns_32_any_32_ = createComment("Returns any element in the source collection for which body evaluates to oclText[true].\nIf there is more than one element for which body is oclText[true], one of them is returned.\nThere must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null].");
-	private static Comment co_Returns_32_oclT = createComment("Returns oclText[Set{false, true}].");
-	private static Comment co_Returns_32_oclT_1 = createComment("Returns oclText[Set{null}].");
-	private static Comment co_Returns_32_oclT_2 = createComment("Returns oclText[invalid].");
-	private static Comment co_Returns_32_oclT_3 = createComment("Returns oclText[invalid].");
-	private static Comment co_Returns_32_oclT_4 = createComment("Returns oclText[invalid].");
-	private static Comment co_Returns_32_oclT_5 = createComment("Returns oclText[null].");
-	private static Comment co_Returns_32_oclT_6 = createComment("Returns oclText[self].");
-	private static Comment co_Returns_32_oclT_7 = createComment("Returns oclText[true] if the OclMessage represents the sending of a UML Operation call.");
-	private static Comment co_Returns_32_oclT_8 = createComment("Returns oclText[true] if the OclMessage represents the sending of a UML Signal.");
-	private static Comment co_Returns_32_oclT_9 = createComment("Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise.");
-	private static Comment co_Returns_32_oclT_10 = createComment("Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise.");
-	private static Comment co_Returns_32_oclT_11 = createComment("Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise.");
-	private static Comment co_Returns_32_oclT_12 = createComment("Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise.");
-	private static Comment co_Returns_32_the_32_ = createComment("Returns the composed contents of self.");
-	private static Comment co_Returns_32_the_32__1 = createComment("Returns the object for which self is a composed content or null if there is no such object.");
-	private static Comment co_Returns_32_the_32__2 = createComment("Returns the result of the called operation, if type of template parameter is an operation call,\nand the called operation has returned a value. Otherwise the oclText[invalid] value is returned.");
-	private static Comment co_Returns_32_true = createComment("Returns true if type2 conforms to self.");
-	private static Comment co_Sequence_32_tha = createComment("Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type.");
-	private static Comment co_The_32_Bag_32_of_32_e = createComment("The Bag of elements which results from applying body to every member of the source nonordered collection.");
-	private static Comment co_The_32_Bag_32_that = createComment("The Bag that contains all the elements from oclText[self].");
-	private static Comment co_The_32_Collecti = createComment("The Collection of elements that results from applying body to every member of the source set.\nThe result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.\ncollectNested is defined individually for each subclass of CollectionType.");
-	private static Comment co_The_32_Collecti_1 = createComment("The Collection of elements which results from applying body to every member of the source collection.");
-	private static Comment co_The_32_Enumerat = createComment("The Enumeration type is the type of an OrderedSet of EnumerationLiteral.");
-	private static Comment co_The_32_OrderedS = createComment("The OrderedSet is a Set, the elements of which are ordered.\nIt contains no duplicates. OrderedSet is itself an instance of the metatype OrderedSetType.\nAn OrderedSet is not a subtype of Set, neither a subtype of Sequence.\nThe common supertype of Sets and OrderedSets is Collection.");
-	private static Comment co_The_32_Set_32_cont = createComment("The Set containing all the elements from oclText[self], with duplicates removed.");
-	private static Comment co_The_32_UniqueCo = createComment("The UniqueCollection type provides the shared functionality of the OrderedSet and Set\ncollections for which the elements are unique.\nThe common supertype of UniqueCollection is Collection.");
-	private static Comment co_The_32_absolute = createComment("The absolute value of oclText[self].");
-	private static Comment co_The_32_absolute_1 = createComment("The absolute value of oclText[self].");
-	private static Comment co_The_32_addition = createComment("The addition of all elements in oclText[self].\nElements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.\nThe e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).\nUnlimitedNatural, Integer and Real fulfill this condition.\n\nIf the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,\nwhich may result in unpredictable results during evaluation.\nIf an implementation is able to detect a lack of associativity or commutativity,\nthe implementation may bypass the evaluation and return an oclText[invalid] result.");
-	private static Comment co_The_32_bag_32_cont = createComment("The bag containing all elements of oclText[self] apart from all occurrences of object.");
-	private static Comment co_The_32_bag_32_cont_1 = createComment("The bag containing all elements of oclText[self] plus object.");
-	private static Comment co_The_32_cartesia = createComment("The cartesian product operation of oclText[self] and c2.");
-	private static Comment co_The_32_closure_32_ = createComment("The closure of applying body transitively to every distinct element of the source collection.");
-	private static Comment co_The_32_closure_32__1 = createComment("The closure of applying body transitively to every distinct element of the source collection.");
-	private static Comment co_The_32_collecti = createComment("The collection containing all elements of oclText[self] apart from object.");
-	private static Comment co_The_32_collecti_1 = createComment("The collection containing all elements of oclText[self] plus object.");
-	private static Comment co_The_32_comparis = createComment("The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than.");
-	private static Comment co_The_32_comparis_1 = createComment("The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than.");
-	private static Comment co_The_32_comparis_2 = createComment("The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than.");
-	private static Comment co_The_32_concaten = createComment("The concatenation of oclText[self] and s.");
-	private static Comment co_The_32_concaten_1 = createComment("The concatenation of oclText[self] and s.");
-	private static Comment co_The_32_element_32_ = createComment("The element with the maximum value of all elements in oclText[self].\nElements must be of a type supporting the max operation.\nThe max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.\nUnlimitedNatural, Integer and Real fulfill this condition.");
-	private static Comment co_The_32_element_32__1 = createComment("The element with the minimum value of all elements in oclText[self].\nElements must be of a type supporting the min operation.\nThe min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.\nUnlimitedNatural, Integer and Real fulfill this condition.");
-	private static Comment co_The_32_elements = createComment("The elements of oclText[self], which are not in s.");
-	private static Comment co_The_32_elements_1 = createComment("The elements of oclText[self], which are not in s.");
-	private static Comment co_The_32_elements_2 = createComment("The elements of oclText[self], which are not in s.");
-	private static Comment co_The_32_first_32_el = createComment("The first element in oclText[self].");
-	private static Comment co_The_32_i_sub_th_32_ele = createComment("The i-th element of sequence.");
-	private static Comment co_The_32_index_32_of = createComment("The index of object obj in the ordered collection.");
-	private static Comment co_The_32_integer_32_ = createComment("The integer that is closest to oclText[self]. When there are two such integers, the largest one.");
-	private static Comment co_The_32_intersec = createComment("The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and s.");
-	private static Comment co_The_32_intersec_1 = createComment("The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and s.");
-	private static Comment co_The_32_intersec_2 = createComment("The intersection of oclText[self] and s (i.e., the set of all elements that are in both oclText[self] and s).");
-	private static Comment co_The_32_intersec_3 = createComment("The intersection of oclText[self] and s; the set of all elements that are in both oclText[self] and s.");
-	private static Comment co_The_32_intersec_4 = createComment("The intersection of oclText[self] and s; the set of all elements that are in both oclText[self] and s.");
-	private static Comment co_The_32_largest_32_ = createComment("The largest integer that is less than or equal to oclText[self].");
-	private static Comment co_The_32_last_32_ele = createComment("The last element in oclText[self].");
-	private static Comment co_The_32_maximum_32_ = createComment("The maximum of oclText[self] an i.");
-	private static Comment co_The_32_maximum_32__1 = createComment("The maximum of oclText[self] and r.");
-	private static Comment co_The_32_minimum_32_ = createComment("The minimum of oclText[self] an i.");
-	private static Comment co_The_32_minimum_32__1 = createComment("The minimum of oclText[self] and r.");
-	private static Comment co_The_32_negative = createComment("The negative value of oclText[self].");
-	private static Comment co_The_32_negative_1 = createComment("The negative value of oclText[self].");
-	private static Comment co_The_32_number_32_o = createComment("The number of characters in oclText[self].");
-	private static Comment co_The_32_number_32_o_1 = createComment("The number of elements in the collection oclText[self].");
-	private static Comment co_The_32_number_32_o_2 = createComment("The number of times that i fits completely within oclText[self].");
-	private static Comment co_The_32_number_32_o_3 = createComment("The number of times that object occurs in the collection oclText[self].");
-	private static Comment co_The_32_ordered_32_ = createComment("The ordered set  containing all elements of oclText[self] apart from object.\n\nThe order of the remaining elements is not changed.");
-	private static Comment co_The_32_ordered_32__1 = createComment("The ordered set consisting of all elements in oclText[self] and all elements in o.");
-	private static Comment co_The_32_ordered_32__2 = createComment("The ordered set consisting of oclText[self] with object present at position index.");
-	private static Comment co_The_32_ordered_32__3 = createComment("The ordered set containing all elements of oclText[self] plus object added as the last element if not already present.");
-	private static Comment co_The_32_ordered_32__4 = createComment("The ordered set of elements with same elements but with the opposite order.");
-	private static Comment co_The_32_ordered_32__5 = createComment("The ordered set of the source ordered set for which body is oclText[false].");
-	private static Comment co_The_32_ordered_32__6 = createComment("The ordered set of the source ordered set for which body is oclText[true]");
-	private static Comment co_The_32_pseudo_sub_t = createComment("The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation\nand Iteration signatures. Instances of OclSelf are never created.");
-	private static Comment co_The_32_result_32_i = createComment("The result is oclText[self] modulo i.");
-	private static Comment co_The_32_sequence = createComment("The sequence consisting of all elements in oclText[self], followed by all elements in s.");
-	private static Comment co_The_32_sequence_1 = createComment("The sequence consisting of object, followed by all elements in oclText[self].");
-	private static Comment co_The_32_sequence_2 = createComment("The sequence consisting of object, followed by all elements in oclText[self].");
-	private static Comment co_The_32_sequence_3 = createComment("The sequence consisting of oclText[self] with object inserted at position index.");
-	private static Comment co_The_32_sequence_4 = createComment("The sequence containing all elements of oclText[self] apart from all occurrences of object.\n\nThe order of the remaining elements is not changed.");
-	private static Comment co_The_32_sequence_5 = createComment("The sequence containing all elements of oclText[self] plus object added as the last element.");
-	private static Comment co_The_32_sequence_6 = createComment("The sequence containing the same elements but with the opposite order.");
-	private static Comment co_The_32_sequence_7 = createComment("The sequence of elements that results from applying body to every member of the source ordered collection.");
-	private static Comment co_The_32_sequence_8 = createComment("The sequence of elements, consisting of all elements of oclText[self], followed by object.");
-	private static Comment co_The_32_set_32_cons = createComment("The set consisting of all elements in oclText[self] and all elements in s.");
-	private static Comment co_The_32_set_32_cons_1 = createComment("The set consisting of all elements in oclText[self] and all elements in s.");
-	private static Comment co_The_32_set_32_cont = createComment("The set containing all elements of oclText[self] plus object.");
-	private static Comment co_The_32_set_32_cont_1 = createComment("The set containing all elements of oclText[self] without object.");
-	private static Comment co_The_32_set_32_cont_2 = createComment("The set containing all the elements that are in oclText[self] or s, but not in both.");
-	private static Comment co_The_32_set_32_of_32_e = createComment("The set of elements, consisting of all elements of oclText[self], followed by object.");
-	private static Comment co_The_32_standard = createComment("The standard type Boolean represents the common true/false values.\nBoolean is itself an instance of the metatype PrimitiveType (from UML).");
-	private static Comment co_The_32_standard_1 = createComment("The standard type EnumerationClassifier represents the metatype of an Enumeration.");
-	private static Comment co_The_32_standard_2 = createComment("The standard type EnumerationLiteral represents a named constant value of an Enumeration.");
-	private static Comment co_The_32_standard_3 = createComment("The standard type Integer represents the mathematical concept of integer.\nNote that UnlimitedNatural is a subclass of Integer, so for each parameter of type Integer,\nyou can use an unlimited natural as the actual parameter.\nInteger is itself an instance of the metatype PrimitiveType (from UML).");
-	private static Comment co_The_32_standard_4 = createComment("The standard type Real represents the mathematical concept of real.\nNote that UnlimitedNatural is a subclass of Integer and that Integer is a subclass of Real,\nso for each parameter of type Real, you can use an unlimited natural or an integer as the actual parameter.\nReal is itself an instance of the metatype PrimitiveType (from UML).");
-	private static Comment co_The_32_standard_5 = createComment("The standard type String represents strings, which can be both ASCII or Unicode.\nString is itself an instance of the metatype PrimitiveType (from UML).");
-	private static Comment co_The_32_standard_6 = createComment("The standard type UnlimitedNatural is used to encode the non-negative values of a multiplicity specification.\nThis includes a special e[unlimited] value (*) that encodes the upper value of  a multiplicity specification.\nUnlimitedNatural is itself an instance of the metatype UnlimitedNaturalType.\n\nNote that although UnlimitedNatural is a subclass of Integer, the e[unlimited] value cannot be represented as an Integer.\nAny use of the e[unlimited] value as an integer or real is replaced by the oclText[invalid] value.");
-	private static Comment co_The_32_sub_sub_bag_32_ = createComment("The sub-bag of the source bag for which body is oclText[false].\n\noclCode[self->reject(iterator | body) = self->select(iterator | not body)].");
-	private static Comment co_The_32_sub_sub_bag_32__1 = createComment("The sub-bag of the source bag for which body is oclText[true].\n\noclCode[self->select(iterator | body) =\nself->iterate(iterator; result : Bag<T> = Bag{} |\nif body then result->including(iterator)\nelse result\nendif)]");
-	private static Comment co_The_32_sub_sub_coll = createComment("The sub-collection of the source collection for which body is oclText[false].");
-	private static Comment co_The_32_sub_sub_coll_1 = createComment("The sub-collection of the source collection for which body is oclText[true].");
-	private static Comment co_The_32_sub_sub_sequ = createComment("The sub-sequence of oclText[self] starting at number lower, up to and including element number upper.");
-	private static Comment co_The_32_sub_sub_set_32_ = createComment("The sub-set of oclText[self] starting at number lower, up to and including element number upper.");
-	private static Comment co_The_32_sub_sub_stri = createComment("The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size().");
-	private static Comment co_The_32_subseque = createComment("The subsequence of the source sequence for which body is oclText[false].");
-	private static Comment co_The_32_subseque_1 = createComment("The subsequence of the source sequence for which body is oclText[true].");
-	private static Comment co_The_32_subset_32_o = createComment("The subset of set for which expr is oclText[true].");
-	private static Comment co_The_32_subset_32_o_1 = createComment("The subset of the source set for which body is oclText[false].");
-	private static Comment co_The_32_type_32_Ocl = createComment("The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived\ncompareTo implementation may be sorted.");
-	private static Comment co_The_32_type_32_Ocl_1 = createComment("The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined\nfor OclElement are therefore applicable to all user-defined types.");
-	private static Comment co_The_32_type_32_Ocl_2 = createComment("The type OclInvalid is a type that conforms to all other types.\nIt has one single instance, identified as  oclText[invalid].\nAny property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().\nOclInvalid is itself an instance of the metatype InvalidType.");
-	private static Comment co_The_32_type_32_Ocl_3 = createComment("The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda\ntherefore apply to all lambda expressions.");
-	private static Comment co_The_32_type_32_Ocl_4 = createComment("The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived\nsum and zero implementations may be summed.");
-	private static Comment co_The_32_type_32_Ocl_5 = createComment("The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple\ntherefore apply to all tuples.");
-	private static Comment co_The_32_type_32_Ocl_6 = createComment("The type OclType is the implicit supertype of any UML type. Operations defined\nfor OclType are therefore applicable to all UML types.");
-	private static Comment co_The_32_type_32_Ocl_7 = createComment("The type OclVoid is a type that conforms to all other types except OclInvalid.\nIt has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.\nAny property call applied on oclText[null] results in oclText[invalid], except for the\noclIsUndefined(), oclIsInvalid(), =(OclAny) and <>(OclAny) operations.\nHowever, by virtue of the implicit conversion to a collection literal,\nan expression evaluating to oclText[null] can be used as source of collection operations (such as \u00E2\u20AC\u02DCisEmpty\u00E2\u20AC\u2122).\nIf the source is the oclText[null] literal, it is implicitly converted to Bag{}.\n\nOclVoid is itself an instance of the metatype VoidType.");
-	private static Comment co_The_32_union_32_of = createComment("The union of oclText[self] and bag; the bag of all elements that are in oclText[self] and all elements that are in bag.");
-	private static Comment co_The_32_union_32_of_1 = createComment("The union of oclText[self] and s; the set of all elements that are in oclText[self] and all elements that are in s.");
-	private static Comment co_The_32_value_32_of = createComment("The value of oclText[self] divided by i.\nEvaluates to oclText[invalid] if r is equal to zero.");
-	private static Comment co_The_32_value_32_of_1 = createComment("The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero.");
-	private static Comment co_The_32_value_32_of_2 = createComment("The value of the addition of oclText[self] and i.");
-	private static Comment co_The_32_value_32_of_3 = createComment("The value of the addition of oclText[self] and r.");
-	private static Comment co_The_32_value_32_of_4 = createComment("The value of the multiplication of oclText[self] and i.");
-	private static Comment co_The_32_value_32_of_5 = createComment("The value of the multiplication of oclText[self] and r.");
-	private static Comment co_The_32_value_32_of_6 = createComment("The value of the subtraction of i from oclText[self].");
-	private static Comment co_The_32_value_32_of_7 = createComment("The value of the subtraction of r from oclText[self].");
-	private static Comment co_This_32_clause_32_ = createComment("This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.\nThis sub clause contains all standard types defined within OCL, including all the operations defined on those types.\nFor each operation the signature and a description of the semantics is given.\nWithin the description, the reserved word \u00E2\u20AC\u02DCresult\u00E2\u20AC\u2122 is used to refer to the value that results from evaluating the operation.\nIn several places, post conditions are used to describe properties of the result.\nWhen there is more than one postcondition, all postconditions must be true.\nA similar thing is true for multiple preconditions.\nIf these are used, the operation is only defined if all preconditions evaluate to oclText[true].\n\nheading:1[Introduction]\n\nThe structure, syntax, and semantics of the OCL is defined in Clauses 8 (\u00E2\u20AC\u0153Abstract Syntax\u00E2\u20AC\uFFFD), 9 (\u00E2\u20AC\u0153Concrete Syntax\u00E2\u20AC\uFFFD),\nand 10 (\u00E2\u20AC\u0153Semantics Described using UML\u00E2\u20AC\uFFFD).\nThis sub clause adds another part to the OCL definition: a library of predefined types and operations.\nAny implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,\nwhere the language definition and the standard libraries are both mandatory parts of the complete language definition.\n\nThe OCL standard library defines a number of types.\nIt includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.\nThese are familiar from many other languages. The second part of the standard library consists of the collection types.\nThey are Bag, Set, Sequence, and Collection where Collection is an abstract type.\nNote that all types defined in the OCL standard library are instances of an abstract syntax class.\nThe OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.\n\nNext to definitions of types the OCL standard library defines a number of template expressions.\nMany operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.\nFor each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.\n\nThe Standard Library may be extended with new types, new operations and new iterators.\nIn particular new operations can be defined for collections.\n\nCertain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted\nin an appropriate fashion.\nA locale is defined as a concatenation of up to three character sequences separated by underscores,\nwith the first sequence identifying the language and the second sequence identifying the country.\nThe third sequence is empty but may encode an implementation-specific variant.\nTrailing empty strings and separators may be omitted.\n\nThe character sequences for languages are defined by ISO 639.\n\nThe character sequences for countries are defined by ISO 3166.\n\n\u00E2\u20AC\u02DCfr_CA\u00E2\u20AC\u2122 therefore identifies the locale for the French language in the Canada country.\n\nComparison of strings and consequently the collation order of Collection::sortedBy()\nconforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.\n\nThe locale is \u00E2\u20AC\u02DCen_us\u00E2\u20AC\u2122 by default but may be configured by a property constraint on OclAny::oclLocale.\n\nThe prevailing locale is defined by the prevailing value of oclLocale within the current environment;\nit may therefore be changed temporarily by using a Let expression.\nlet oclLocale : String = \u00E2\u20AC\u02DCfr_CA\u00E2\u20AC\u2122 in aString.toUpperCase()\n\nheading:1[Iterators]\n\nThis sub clause defines the standard OCL iterator expressions.\nIn the abstract syntax these are all instances of IteratorExp.\nThese iterator expressions always have a collection expression as their source,\nas is defined in the well-formedness rules in Clause 8 (\u00E2\u20AC\u0153Abstract Syntax\u00E2\u20AC\uFFFD).\nThe defined iterator expressions are shown per source collection type.\nThe semantics of each iterator expression is defined through a mapping from the iterator to the \u00E2\u20AC\u02DCiterate\u00E2\u20AC\u2122 construct.\nThis means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.\n\nIn all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,\nand the righthand side of the equals sign is the equivalent as an IterateExp.\nThe names source, body, and iterator refer to the role names in the abstract syntax:\n\nsource\tThe source expression of the IteratorExp.\n\nbody\tThe body expression of the IteratorExp.\n\niterator\tThe iterator variable of the IteratorExp.\n\nresult\tThe result variable of the IterateExp.\n\nheading:2[Extending the Standard Library with Iterator Expressions]\n\nIt is possible to add new iterator expressions in the standard library.\nIf this is done the semantics of a new iterator should be defined by mapping it to existing constructs,\nin the same way the semantics of pre-defined iterators is done (see sub clause 11.9)");
-	private static Comment co_This_32_is_32_a_32_de = createComment("This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour.");
-	private static Comment co_This_32_is_32_a_32_de_1 = createComment("This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour.");
-	private static Comment co_True_32_if_32_both = createComment("True if both b1 and b are oclText[true].");
-	private static Comment co_True_32_if_32_c_32_is = createComment("True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,\nin the case of an ordered collection type.");
-	private static Comment co_True_32_if_32_c_32_is_1 = createComment("True if c is not equal to oclText[self].");
-	private static Comment co_True_32_if_32_eith = createComment("True if either oclText[self] or b is oclText[true], but not both.");
-	private static Comment co_True_32_if_32_eith_1 = createComment("True if either oclText[self] or b is oclText[true].");
-	private static Comment co_True_32_if_32_obje = createComment("True if object is an element of oclText[self], oclText[false] otherwise.");
-	private static Comment co_True_32_if_32_obje_1 = createComment("True if object is not an element of oclText[self], oclText[false] otherwise.");
-	private static Comment co_True_32_if_32_oclT = createComment("True if oclText[self] and bag contain the same elements, the same number of times.");
-	private static Comment co_True_32_if_32_oclT_1 = createComment("True if oclText[self] contains the same elements as s in the same order.");
-	private static Comment co_True_32_if_32_oclT_2 = createComment("True if oclText[self] is a different object from object2. Infix operator.");
-	private static Comment co_True_32_if_32_oclT_3 = createComment("True if oclText[self] is greater than or equal to r.");
-	private static Comment co_True_32_if_32_oclT_4 = createComment("True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment.");
-	private static Comment co_True_32_if_32_oclT_5 = createComment("True if oclText[self] is greater than r.");
-	private static Comment co_True_32_if_32_oclT_6 = createComment("True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment.");
-	private static Comment co_True_32_if_32_oclT_7 = createComment("True if oclText[self] is less than or equal to r.");
-	private static Comment co_True_32_if_32_oclT_8 = createComment("True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment.");
-	private static Comment co_True_32_if_32_oclT_9 = createComment("True if oclText[self] is less than r.");
-	private static Comment co_True_32_if_32_oclT_10 = createComment("True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment.");
-	private static Comment co_True_32_if_32_oclT_11 = createComment("True if oclText[self] is oclText[false], or if oclText[self] is oclText[true] and b is oclText[true].");
-	private static Comment co_True_32_if_32_oclT_12 = createComment("True if oclText[self] is oclText[false].");
-	private static Comment co_True_32_if_32_oclT_13 = createComment("True if oclText[self] is the same object as object2. Infix operator.");
-	private static Comment co_True_32_if_32_type = createComment("True if type of template parameter is an operation call, and the called operation has returned a value.\nThis implies the fact that the message has been sent. False in all other cases.");
-	
-	private static Precedence prec_ADDITIVE = createPrecedence("ADDITIVE", AssociativityKind.LEFT);
-	private static Precedence prec_AND = createPrecedence("AND", AssociativityKind.LEFT);
-	private static Precedence prec_EQUALITY = createPrecedence("EQUALITY", AssociativityKind.LEFT);
-	private static Precedence prec_IMPLIES = createPrecedence("IMPLIES", AssociativityKind.LEFT);
-	private static Precedence prec_MULTIPLICATIVE = createPrecedence("MULTIPLICATIVE", AssociativityKind.LEFT);
-	private static Precedence prec_NAVIGATION = createPrecedence("NAVIGATION", AssociativityKind.LEFT);
-	private static Precedence prec_OR = createPrecedence("OR", AssociativityKind.LEFT);
-	private static Precedence prec_RELATIONAL = createPrecedence("RELATIONAL", AssociativityKind.LEFT);
-	private static Precedence prec_UNARY = createPrecedence("UNARY", AssociativityKind.LEFT);
-	private static Precedence prec_XOR = createPrecedence("XOR", AssociativityKind.LEFT);
-	
-	
-	private static PrimitiveType t_Boolean = createPrimitiveType("Boolean");
-	private static PrimitiveType t_Integer = createPrimitiveType("Integer");
-	private static LambdaType t_Lambda_Bag_T = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Bag_T_1 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Bag_T_2 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Bag_T_3 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Bag_T_4 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Bag_T_5 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Collection_T = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Collection_T_1 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Collection_T_2 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Collection_T_3 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Collection_T_4 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Collection_T_5 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Collection_T_6 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Collection_T_7 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Collection_T_8 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Collection_T_9 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Collection_T_10 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Collection_T_11 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Collection_T_12 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_OrderedSet_T = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_OrderedSet_T_1 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_OrderedSet_T_2 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Sequence_T = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Sequence_T_1 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Sequence_T_2 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Sequence_T_3 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Sequence_T_4 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Sequence_T_5 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Set_T = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Set_T_1 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_Set_T_2 = createLambdaType("Lambda");
-	private static LambdaType t_Lambda_UniqueCollection_T = createLambdaType("Lambda");
-	private static PrimitiveType t_Real = createPrimitiveType("Real");
-	private static PrimitiveType t_String = createPrimitiveType("String");
-	private static TupleType t_Tuple = createTupleType("Tuple");
-	private static TupleType t_Tuple_1 = createTupleType("Tuple");
-	private static TupleType t_Tuple_2 = createTupleType("Tuple");
-	private static TupleType t_Tuple_3 = createTupleType("Tuple");
-	private static PrimitiveType t_UnlimitedNatural = createPrimitiveType("UnlimitedNatural");
-	private static Class t_UnlimitedNatural_oclAsType_TT = createClass("TT");
-	private static ClassifierType t_AnyClassifier_UnlimitedNatural_oclAsType_TT = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_Bag_selectByKind_TT = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_Bag_selectByType_TT = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_ClassClassifier_T = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_CollectionClassifier_T = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_Collection_selectByKind_TT = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_Collection_selectByType_TT = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_EnumerationClassifier_T = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_OclAny_oclAsType_TT = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_OclAny_oclIsKindOf_T = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_OclAny_oclIsTypeOf_T = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_OclInvalid = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_OclInvalid_1 = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_OclSelf = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_OclVoid = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_OrderedSet_selectByKind_TT = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_OrderedSet_selectByType_TT = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_Sequence_selectByKind_TT = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_Sequence_selectByType_TT = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_Set_selectByKind_TT = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier_Set_selectByType_TT = createClassifierType("AnyClassifier");
-	private static ClassifierType t_AnyClassifier = createClassifierType("AnyClassifier");
-	private static Class t_AnyClassifier_T = createClass("T");
-	private static BagType t_Bag_Tuple = createBagType("Bag");
-	private static BagType t_Bag_Tuple_1 = createBagType("Bag");
-	private static BagType t_Bag_Bag_collect_V = createBagType("Bag");
-	private static BagType t_Bag_Bag_flatten_T2 = createBagType("Bag");
-	private static BagType t_Bag_Bag_selectByKind_TT = createBagType("Bag");
-	private static BagType t_Bag_Bag_selectByType_TT = createBagType("Bag");
-	private static BagType t_Bag_Bag_T = createBagType("Bag");
-	private static BagType t_Bag_Bag_T_1 = createBagType("Bag");
-	private static BagType t_Bag_Bag_T_2 = createBagType("Bag");
-	private static BagType t_Bag_Bag_T_3 = createBagType("Bag");
-	private static BagType t_Bag_Collection_T = createBagType("Bag");
-	private static BagType t_Bag_OclElement = createBagType("Bag");
-	private static BagType t_Bag_OclSelf = createBagType("Bag");
-	private static BagType t_Bag_OclSelf_1 = createBagType("Bag");
-	private static BagType t_Bag_OclSelf_2 = createBagType("Bag");
-	private static BagType t_Bag_OclSelf_3 = createBagType("Bag");
-	private static BagType t_Bag_OclSelf_4 = createBagType("Bag");
-	private static BagType t_Bag_OclSelf_5 = createBagType("Bag");
-	private static BagType t_Bag_Sequence_T = createBagType("Bag");
-	private static BagType t_Bag_Set_flatten_T2 = createBagType("Bag");
-	private static BagType t_Bag_Set_selectByKind_TT = createBagType("Bag");
-	private static BagType t_Bag_Set_selectByType_TT = createBagType("Bag");
-	private static BagType t_Bag_Set_T = createBagType("Bag");
-	private static BagType t_Bag_UniqueCollection_T = createBagType("Bag");
-	private static BagType t_Bag_UniqueCollection_T_1 = createBagType("Bag");
-	private static BagType t_Bag = createBagType("Bag");
-	private static Class t_Bag_collectNested_V = createClass("V");
-	private static Class t_Bag_collect_V = createClass("V");
-	private static Class t_Bag_flatten_T2 = createClass("T2");
-	private static Class t_Bag_selectByKind_TT = createClass("TT");
-	private static Class t_Bag_selectByType_TT = createClass("TT");
-	private static Class t_Bag_T = createClass("T");
-	private static Class t_Class = createClass("Class");
-	private static ClassifierType t_ClassClassifier_OclInvalid = createClassifierType("ClassClassifier");
-	private static ClassifierType t_ClassClassifier_OclSelf = createClassifierType("ClassClassifier");
-	private static ClassifierType t_ClassClassifier_OclVoid = createClassifierType("ClassClassifier");
-	private static ClassifierType t_ClassClassifier = createClassifierType("ClassClassifier");
-	private static Class t_ClassClassifier_T = createClass("T");
-	private static ClassifierType t_CollectionClassifier_Collection_T_OclSelf = createClassifierType("CollectionClassifier");
-	private static ClassifierType t_CollectionClassifier = createClassifierType("CollectionClassifier");
-	private static Class t_CollectionClassifier_E = createClass("E");
-	private static Class t_CollectionClassifier_T = createClass("T");
-	private static CollectionType t_Collection_Integer = createCollectionType("Collection");
-	private static CollectionType t_Collection_String = createCollectionType("Collection");
-	private static CollectionType t_Collection_Tuple = createCollectionType("Collection");
-	private static CollectionType t_Collection_Tuple_1 = createCollectionType("Collection");
-	private static CollectionType t_Collection_Bag_collect_V = createCollectionType("Collection");
-	private static CollectionType t_Collection_Bag_flatten_T2 = createCollectionType("Collection");
-	private static CollectionType t_Collection_Bag_selectByKind_TT = createCollectionType("Collection");
-	private static CollectionType t_Collection_Bag_selectByType_TT = createCollectionType("Collection");
-	private static CollectionType t_Collection_Bag_T = createCollectionType("Collection");
-	private static CollectionType t_Collection_Bag_T_1 = createCollectionType("Collection");
-	private static CollectionType t_Collection_Bag_T_2 = createCollectionType("Collection");
-	private static CollectionType t_Collection_Collection_collect_V = createCollectionType("Collection");
-	private static CollectionType t_Collection_Collection_excludesAll_T2 = createCollectionType("Collection");
-	private static CollectionType t_Collection_Collection_flatten_T2 = createCollectionType("Collection");
-	private static CollectionType t_Collection_Collection_includesAll_T2 = createCollectionType("Collection");
-	private static CollectionType t_Collection_Collection_product_T2 = createCollectionType("Collection");
-	private static CollectionType t_Collection_Collection_selectByKind_TT = createCollectionType("Collection");
-	private static CollectionType t_Collection_Collection_selectByType_TT = createCollectionType("Collection");
-	private static CollectionType t_Collection_Collection_T = createCollectionType("Collection");
-	private static CollectionType t_Collection_Collection_T_1 = createCollectionType("Collection");
-	private static CollectionType t_Collection_Collection_T_2 = createCollectionType("Collection");
-	private static CollectionType t_Collection_EnumerationLiteral = createCollectionType("Collection");
-	private static CollectionType t_Collection_OclAny = createCollectionType("Collection");
-	private static CollectionType t_Collection_OclAny_1 = createCollectionType("Collection");
-	private static CollectionType t_Collection_OclAny_2 = createCollectionType("Collection");
-	private static CollectionType t_Collection_OclAny_3 = createCollectionType("Collection");
-	private static CollectionType t_Collection_OclElement = createCollectionType("Collection");
-	private static CollectionType t_Collection_OclSelf = createCollectionType("Collection");
-	private static CollectionType t_Collection_OrderedSet_flatten_T2 = createCollectionType("Collection");
-	private static CollectionType t_Collection_OrderedSet_selectByKind_TT = createCollectionType("Collection");
-	private static CollectionType t_Collection_OrderedSet_selectByType_TT = createCollectionType("Collection");
-	private static CollectionType t_Collection_OrderedSet_T = createCollectionType("Collection");
-	private static CollectionType t_Collection_OrderedSet_T_1 = createCollectionType("Collection");
-	private static CollectionType t_Collection_Sequence_collect_V = createCollectionType("Collection");
-	private static CollectionType t_Collection_Sequence_flatten_T2 = createCollectionType("Collection");
-	private static CollectionType t_Collection_Sequence_selectByKind_TT = createCollectionType("Collection");
-	private static CollectionType t_Collection_Sequence_selectByType_TT = createCollectionType("Collection");
-	private static CollectionType t_Collection_Sequence_T = createCollectionType("Collection");
-	private static CollectionType t_Collection_Sequence_T_1 = createCollectionType("Collection");
-	private static CollectionType t_Collection_Set_flatten_T2 = createCollectionType("Collection");
-	private static CollectionType t_Collection_Set_selectByKind_TT = createCollectionType("Collection");
-	private static CollectionType t_Collection_Set_selectByType_TT = createCollectionType("Collection");
-	private static CollectionType t_Collection_Set_T = createCollectionType("Collection");
-	private static CollectionType t_Collection_Set_T_1 = createCollectionType("Collection");
-	private static CollectionType t_Collection_UniqueCollection_T = createCollectionType("Collection");
-	private static CollectionType t_Collection_UniqueCollection_T_1 = createCollectionType("Collection");
-	private static CollectionType t_Collection = createCollectionType("Collection");
-	private static Class t_Collection_collectNested_V = createClass("V");
-	private static Class t_Collection_collect_V = createClass("V");
-	private static Class t_Collection_excludesAll_T2 = createClass("T2");
-	private static Class t_Collection_flatten_T2 = createClass("T2");
-	private static Class t_Collection_includesAll_T2 = createClass("T2");
-	private static Class t_Collection_iterate_Tacc = createClass("Tacc");
-	private static Class t_Collection_product_T2 = createClass("T2");
-	private static Class t_Collection_selectByKind_TT = createClass("TT");
-	private static Class t_Collection_selectByType_TT = createClass("TT");
-	private static Class t_Collection_T = createClass("T");
-	private static Class t_Enumeration = createClass("Enumeration");
-	private static ClassifierType t_EnumerationClassifier_OclSelf = createClassifierType("EnumerationClassifier");
-	private static ClassifierType t_EnumerationClassifier = createClassifierType("EnumerationClassifier");
-	private static Class t_EnumerationClassifier_T = createClass("T");
-	private static Class t_EnumerationLiteral = createClass("EnumerationLiteral");
-	private static AnyType t_OclAny = createAnyType("OclAny");
-	private static Class t_OclAny_oclAsType_TT = createClass("TT");
-	private static Class t_OclAny_oclIsKindOf_T = createClass("T");
-	private static Class t_OclAny_oclIsTypeOf_T = createClass("T");
-	private static Class t_OclComparable = createClass("OclComparable");
-	private static Class t_OclElement = createClass("OclElement");
-	private static InvalidType t_OclInvalid = createInvalidType("OclInvalid");
-	private static Class t_OclLambda = createClass("OclLambda");
-	private static Class t_OclMessage = createClass("OclMessage");
-	private static SelfType t_OclSelf = createSelfType("OclSelf");
-	private static Class t_OclState = createClass("OclState");
-	private static Class t_OclSummable = createClass("OclSummable");
-	private static Class t_OclTuple = createClass("OclTuple");
-	private static Class t_OclType = createClass("OclType");
-	private static VoidType t_OclVoid = createVoidType("OclVoid");
-	private static OrderedSetType t_OrderedSet_Collection_T = createOrderedSetType("OrderedSet");
-	private static OrderedSetType t_OrderedSet_EnumerationLiteral = createOrderedSetType("OrderedSet");
-	private static OrderedSetType t_OrderedSet_OrderedSet_flatten_T2 = createOrderedSetType("OrderedSet");
-	private static OrderedSetType t_OrderedSet_OrderedSet_selectByKind_TT = createOrderedSetType("OrderedSet");
-	private static OrderedSetType t_OrderedSet_OrderedSet_selectByType_TT = createOrderedSetType("OrderedSet");
-	private static OrderedSetType t_OrderedSet_Sequence_T = createOrderedSetType("OrderedSet");
-	private static OrderedSetType t_OrderedSet_Set_T = createOrderedSetType("OrderedSet");
-	private static OrderedSetType t_OrderedSet_UniqueCollection_T = createOrderedSetType("OrderedSet");
-	private static OrderedSetType t_OrderedSet = createOrderedSetType("OrderedSet");
-	private static Class t_OrderedSet_flatten_T2 = createClass("T2");
-	private static Class t_OrderedSet_selectByKind_TT = createClass("TT");
-	private static Class t_OrderedSet_selectByType_TT = createClass("TT");
-	private static Class t_OrderedSet_T = createClass("T");
-	private static SequenceType t_Sequence_Integer = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_String = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_Bag_T = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_Collection_T = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_EnumerationLiteral = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_OrderedSet_flatten_T2 = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_OrderedSet_selectByKind_TT = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_OrderedSet_selectByType_TT = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_OrderedSet_T = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_Sequence_collect_V = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_Sequence_flatten_T2 = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_Sequence_selectByKind_TT = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_Sequence_selectByType_TT = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_Sequence_T = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_Sequence_T_1 = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_Sequence_T_2 = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_Set_T = createSequenceType("Sequence");
-	private static SequenceType t_Sequence_UniqueCollection_T = createSequenceType("Sequence");
-	private static SequenceType t_Sequence = createSequenceType("Sequence");
-	private static Class t_Sequence_collectNested_V = createClass("V");
-	private static Class t_Sequence_collect_V = createClass("V");
-	private static Class t_Sequence_flatten_T2 = createClass("T2");
-	private static Class t_Sequence_selectByKind_TT = createClass("TT");
-	private static Class t_Sequence_selectByType_TT = createClass("TT");
-	private static Class t_Sequence_T = createClass("T");
-	private static SetType t_Set_Tuple = createSetType("Set");
-	private static SetType t_Set_Bag_T = createSetType("Set");
-	private static SetType t_Set_Collection_T = createSetType("Set");
-	private static SetType t_Set_OclElement = createSetType("Set");
-	private static SetType t_Set_OclSelf = createSetType("Set");
-	private static SetType t_Set_Set_flatten_T2 = createSetType("Set");
-	private static SetType t_Set_Set_selectByKind_TT = createSetType("Set");
-	private static SetType t_Set_Set_selectByType_TT = createSetType("Set");
-	private static SetType t_Set_UniqueCollection_T = createSetType("Set");
-	private static SetType t_Set = createSetType("Set");
-	private static Class t_Set_flatten_T2 = createClass("T2");
-	private static Class t_Set_selectByKind_TT = createClass("TT");
-	private static Class t_Set_selectByType_TT = createClass("TT");
-	private static Class t_Set_T = createClass("T");
-	private static Class t_Type = createClass("Type");
-	private static CollectionType t_UniqueCollection_Tuple = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_Tuple_1 = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_Bag_T = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_Bag_T_1 = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_Bag_T_2 = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_Bag_T_3 = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_Collection_T = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_EnumerationLiteral = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_OclAny = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_OclElement = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_OclSelf = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_OclSelf_1 = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_OclSelf_2 = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_OclSelf_3 = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_OclSelf_4 = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_OclSelf_5 = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_OrderedSet_flatten_T2 = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_OrderedSet_selectByKind_TT = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_OrderedSet_selectByType_TT = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_OrderedSet_T = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_Sequence_T = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_Sequence_T_1 = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_Sequence_T_2 = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_Set_flatten_T2 = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_Set_selectByKind_TT = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_Set_selectByType_TT = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_Set_T = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_UniqueCollection_T = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection_UniqueCollection_T_1 = createCollectionType("UniqueCollection");
-	private static CollectionType t_UniqueCollection = createCollectionType("UniqueCollection");
-	private static Class t_UniqueCollection_T = createClass("T");
-	private static AnyType t_$$ = createAnyType("$$");
-	
-	private static Parameter pa_Boolean__lt__gt__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_Boolean__eq__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_Boolean_and_b = createParameter("b", t_Boolean);
-	private static Parameter pa_Boolean_implies_b = createParameter("b", t_Boolean);
-	private static Parameter pa_Boolean_or_b = createParameter("b", t_Boolean);
-	private static Parameter pa_Boolean_xor_b = createParameter("b", t_Boolean);
-	private static Parameter pa_Integer__mul__i = createParameter("i", t_OclSelf);
-	private static Parameter pa_Integer__add__i = createParameter("i", t_OclSelf);
-	private static Parameter pa_Integer__sub__i = createParameter("i", t_OclSelf);
-	private static Parameter pa_Integer__div__i = createParameter("i", t_OclSelf);
-	private static Parameter pa_Integer_compareTo_that = createParameter("that", t_OclSelf);
-	private static Parameter pa_Integer_div_i = createParameter("i", t_Integer);
-	private static Parameter pa_Integer_max_i = createParameter("i", t_OclSelf);
-	private static Parameter pa_Integer_min_i = createParameter("i", t_OclSelf);
-	private static Parameter pa_Integer_mod_i = createParameter("i", t_Integer);
-	private static Parameter pa_Real__mul__r = createParameter("r", t_OclSelf);
-	private static Parameter pa_Real__add__r = createParameter("r", t_OclSelf);
-	private static Parameter pa_Real__sub__r = createParameter("r", t_OclSelf);
-	private static Parameter pa_Real__div__r = createParameter("r", t_OclSelf);
-	private static Parameter pa_Real__lt__r = createParameter("r", t_OclSelf);
-	private static Parameter pa_Real__lt__eq__r = createParameter("r", t_OclSelf);
-	private static Parameter pa_Real__lt__gt__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_Real__eq__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_Real__gt__r = createParameter("r", t_OclSelf);
-	private static Parameter pa_Real__gt__eq__r = createParameter("r", t_OclSelf);
-	private static Parameter pa_Real_compareTo_that = createParameter("that", t_OclSelf);
-	private static Parameter pa_Real_max_r = createParameter("r", t_OclSelf);
-	private static Parameter pa_Real_min_r = createParameter("r", t_OclSelf);
-	private static Parameter pa_String__add__s = createParameter("s", t_String);
-	private static Parameter pa_String__lt__s = createParameter("s", t_OclSelf);
-	private static Parameter pa_String__lt__eq__s = createParameter("s", t_OclSelf);
-	private static Parameter pa_String__lt__gt__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_String__eq__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_String__gt__s = createParameter("s", t_OclSelf);
-	private static Parameter pa_String__gt__eq__s = createParameter("s", t_OclSelf);
-	private static Parameter pa_String_at_i = createParameter("i", t_Integer);
-	private static Parameter pa_String_compareTo_that = createParameter("that", t_OclSelf);
-	private static Parameter pa_String_concat_s = createParameter("s", t_String);
-	private static Parameter pa_String_equalsIgnoreCase_s = createParameter("s", t_String);
-	private static Parameter pa_String_indexOf_s = createParameter("s", t_String);
-	private static Parameter pa_String_substring_lower = createParameter("lower", t_Integer);
-	private static Parameter pa_String_substring_upper = createParameter("upper", t_Integer);
-	private static Parameter pa_UnlimitedNatural_oclAsType_type = createParameter("type", t_AnyClassifier_UnlimitedNatural_oclAsType_TT);
-	private static Parameter pa_Bag__lt__gt__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_Bag__eq__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_Bag_closure_body = createParameter("body", t_Lambda_Bag_T_5);
-	private static Parameter pa_Bag_closure_i = createParameter("i", t_Bag_T);
-	private static Parameter pa_Bag_collectNested_body = createParameter("body", t_Lambda_Bag_T_2);
-	private static Parameter pa_Bag_collectNested_i = createParameter("i", t_Bag_T);
-	private static Parameter pa_Bag_collect_body = createParameter("body", t_Lambda_Bag_T_3);
-	private static Parameter pa_Bag_collect_i = createParameter("i", t_Bag_T);
-	private static Parameter pa_Bag_excluding_object = createParameter("object", t_OclAny);
-	private static Parameter pa_Bag_including_object = createParameter("object", t_Bag_T);
-	private static Parameter pa_Bag_intersection_bag = createParameter("bag", t_Collection_Bag_T);
-	private static Parameter pa_Bag_intersection_s = createParameter("s", t_UniqueCollection_Bag_T_3);
-	private static Parameter pa_Bag_reject_body = createParameter("body", t_Lambda_Bag_T_1);
-	private static Parameter pa_Bag_reject_i = createParameter("i", t_Bag_T);
-	private static Parameter pa_Bag_select_body = createParameter("body", t_Lambda_Bag_T);
-	private static Parameter pa_Bag_select_i = createParameter("i", t_Bag_T);
-	private static Parameter pa_Bag_selectByKind_type = createParameter("type", t_AnyClassifier_Bag_selectByKind_TT);
-	private static Parameter pa_Bag_selectByType_type = createParameter("type", t_AnyClassifier_Bag_selectByType_TT);
-	private static Parameter pa_Bag_sortedBy_body = createParameter("body", t_Lambda_Bag_T_4);
-	private static Parameter pa_Bag_sortedBy_i = createParameter("i", t_Bag_T);
-	private static Parameter pa_Bag_union_bag = createParameter("bag", t_Collection_Bag_T);
-	private static Parameter pa_Bag_union_s = createParameter("s", t_UniqueCollection_Bag_T_3);
-	private static Parameter pa_Collection__lt__gt__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_Collection__eq__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_Collection_any_body = createParameter("body", t_Lambda_Collection_T_4);
-	private static Parameter pa_Collection_any_i = createParameter("i", t_Collection_T);
-	private static Parameter pa_Collection_collectNested_body = createParameter("body", t_Lambda_Collection_T_8);
-	private static Parameter pa_Collection_collectNested_i = createParameter("i", t_Collection_T);
-	private static Parameter pa_Collection_collect_body = createParameter("body", t_Lambda_Collection_T_9);
-	private static Parameter pa_Collection_collect_i = createParameter("i", t_Collection_T);
-	private static Parameter pa_Collection_count_object = createParameter("object", t_OclAny);
-	private static Parameter pa_Collection_excludes_object = createParameter("object", t_OclAny);
-	private static Parameter pa_Collection_excludesAll_c2 = createParameter("c2", t_Collection_Collection_excludesAll_T2);
-	private static Parameter pa_Collection_excluding_object = createParameter("object", t_OclAny);
-	private static Parameter pa_Collection_exists_body = createParameter("body", t_Lambda_Collection_T_7);
-	private static Parameter pa_Collection_exists_i = createParameter("i", t_Collection_T);
-	private static Parameter pa_Collection_exists_j = createParameter("j", t_Collection_T);
-	private static Parameter pa_Collection_exists_body_1 = createParameter("body", t_Lambda_Collection_T_5);
-	private static Parameter pa_Collection_exists_i_1 = createParameter("i", t_Collection_T);
-	private static Parameter pa_Collection_forAll_body = createParameter("body", t_Lambda_Collection_T);
-	private static Parameter pa_Collection_forAll_i = createParameter("i", t_Collection_T);
-	private static Parameter pa_Collection_forAll_j = createParameter("j", t_Collection_T);
-	private static Parameter pa_Collection_forAll_body_1 = createParameter("body", t_Lambda_Collection_T_1);
-	private static Parameter pa_Collection_forAll_i_1 = createParameter("i", t_Collection_T);
-	private static Parameter pa_Collection_includes_object = createParameter("object", t_OclAny);
-	private static Parameter pa_Collection_includesAll_c2 = createParameter("c2", t_Collection_Collection_includesAll_T2);
-	private static Parameter pa_Collection_including_object = createParameter("object", t_Collection_T);
-	private static Parameter pa_Collection_isUnique_body = createParameter("body", t_Lambda_Collection_T_11);
-	private static Parameter pa_Collection_isUnique_i = createParameter("i", t_Collection_T);
-	private static Parameter pa_Collection_iterate_acc = createParameter("acc", t_Collection_iterate_Tacc);
-	private static Parameter pa_Collection_iterate_body = createParameter("body", t_Lambda_Collection_T_10);
-	private static Parameter pa_Collection_iterate_i = createParameter("i", t_Collection_T);
-	private static Parameter pa_Collection_one_body = createParameter("body", t_Lambda_Collection_T_3);
-	private static Parameter pa_Collection_one_i = createParameter("i", t_Collection_T);
-	private static Parameter pa_Collection_product_c2 = createParameter("c2", t_Collection_Collection_product_T2);
-	private static Parameter pa_Collection_reject_body = createParameter("body", t_Lambda_Collection_T_6);
-	private static Parameter pa_Collection_reject_i = createParameter("i", t_Collection_T);
-	private static Parameter pa_Collection_select_body = createParameter("body", t_Lambda_Collection_T_2);
-	private static Parameter pa_Collection_select_i = createParameter("i", t_Collection_T);
-	private static Parameter pa_Collection_selectByKind_type = createParameter("type", t_AnyClassifier_Collection_selectByKind_TT);
-	private static Parameter pa_Collection_selectByType_type = createParameter("type", t_AnyClassifier_Collection_selectByType_TT);
-	private static Parameter pa_Collection_sortedBy_body = createParameter("body", t_Lambda_Collection_T_12);
-	private static Parameter pa_Collection_sortedBy_i = createParameter("i", t_Collection_T);
-	private static Parameter pa_OclAny__lt__gt__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_OclAny__eq__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_OclAny_oclAsType_type = createParameter("type", t_AnyClassifier_OclAny_oclAsType_TT);
-	private static Parameter pa_OclAny_oclIsInState_statespec = createParameter("statespec", t_OclState);
-	private static Parameter pa_OclAny_oclIsKindOf_type = createParameter("type", t_AnyClassifier_OclAny_oclIsKindOf_T);
-	private static Parameter pa_OclAny_oclIsTypeOf_type = createParameter("type", t_AnyClassifier_OclAny_oclIsTypeOf_T);
-	private static Parameter pa_OclComparable_compareTo_that = createParameter("that", t_OclSelf);
-	private static Parameter pa_OclInvalid__lt__gt__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_OclInvalid__eq__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_OclSummable_sum_that = createParameter("that", t_OclSelf);
-	private static Parameter pa_OclTuple__lt__gt__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_OclTuple__eq__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_OclType_conformsTo_type2 = createParameter("type2", t_OclType);
-	private static Parameter pa_OclVoid__lt__gt__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_OclVoid__eq__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_OclVoid_and_b = createParameter("b", t_Boolean);
-	private static Parameter pa_OclVoid_implies_b = createParameter("b", t_Boolean);
-	private static Parameter pa_OclVoid_or_b = createParameter("b", t_Boolean);
-	private static Parameter pa_OrderedSet__sub__s = createParameter("s", t_UniqueCollection_OclAny);
-	private static Parameter pa_OrderedSet__lt__gt__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_OrderedSet__eq__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_OrderedSet_append_object = createParameter("object", t_OrderedSet_T);
-	private static Parameter pa_OrderedSet_excluding_object = createParameter("object", t_OclAny);
-	private static Parameter pa_OrderedSet_including_object = createParameter("object", t_OrderedSet_T);
-	private static Parameter pa_OrderedSet_insertAt_index = createParameter("index", t_Integer);
-	private static Parameter pa_OrderedSet_insertAt_object = createParameter("object", t_OrderedSet_T);
-	private static Parameter pa_OrderedSet_intersection_o = createParameter("o", t_Collection_OrderedSet_T_1);
-	private static Parameter pa_OrderedSet_prepend_object = createParameter("object", t_OrderedSet_T);
-	private static Parameter pa_OrderedSet_reject_body = createParameter("body", t_Lambda_OrderedSet_T);
-	private static Parameter pa_OrderedSet_reject_i = createParameter("i", t_OrderedSet_T);
-	private static Parameter pa_OrderedSet_select_body = createParameter("body", t_Lambda_OrderedSet_T_1);
-	private static Parameter pa_OrderedSet_select_i = createParameter("i", t_OrderedSet_T);
-	private static Parameter pa_OrderedSet_selectByKind_type = createParameter("type", t_AnyClassifier_OrderedSet_selectByKind_TT);
-	private static Parameter pa_OrderedSet_selectByType_type = createParameter("type", t_AnyClassifier_OrderedSet_selectByType_TT);
-	private static Parameter pa_OrderedSet_sortedBy_body = createParameter("body", t_Lambda_OrderedSet_T_2);
-	private static Parameter pa_OrderedSet_sortedBy_i = createParameter("i", t_OrderedSet_T);
-	private static Parameter pa_OrderedSet_subOrderedSet_lower = createParameter("lower", t_Integer);
-	private static Parameter pa_OrderedSet_subOrderedSet_upper = createParameter("upper", t_Integer);
-	private static Parameter pa_OrderedSet_union_o = createParameter("o", t_Sequence_OrderedSet_T);
-	private static Parameter pa_Sequence__lt__gt__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_Sequence__eq__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_Sequence_append_object = createParameter("object", t_Sequence_T);
-	private static Parameter pa_Sequence_at_index = createParameter("index", t_Integer);
-	private static Parameter pa_Sequence_closure_body = createParameter("body", t_Lambda_Sequence_T_3);
-	private static Parameter pa_Sequence_closure_i = createParameter("i", t_Sequence_T);
-	private static Parameter pa_Sequence_collectNested_body = createParameter("body", t_Lambda_Sequence_T_4);
-	private static Parameter pa_Sequence_collectNested_i = createParameter("i", t_Sequence_T);
-	private static Parameter pa_Sequence_collect_body = createParameter("body", t_Lambda_Sequence_T_5);
-	private static Parameter pa_Sequence_collect_i = createParameter("i", t_Sequence_T);
-	private static Parameter pa_Sequence_excluding_object = createParameter("object", t_OclAny);
-	private static Parameter pa_Sequence_including_object = createParameter("object", t_Sequence_T);
-	private static Parameter pa_Sequence_indexOf_obj = createParameter("obj", t_OclAny);
-	private static Parameter pa_Sequence_insertAt_index = createParameter("index", t_Integer);
-	private static Parameter pa_Sequence_insertAt_object = createParameter("object", t_Sequence_T);
-	private static Parameter pa_Sequence_intersection_c = createParameter("c", t_Collection_Sequence_T_1);
-	private static Parameter pa_Sequence_intersection_s = createParameter("s", t_UniqueCollection_Sequence_T_2);
-	private static Parameter pa_Sequence_prepend_object = createParameter("object", t_Sequence_T);
-	private static Parameter pa_Sequence_reject_body = createParameter("body", t_Lambda_Sequence_T_1);
-	private static Parameter pa_Sequence_reject_i = createParameter("i", t_Sequence_T);
-	private static Parameter pa_Sequence_select_body = createParameter("body", t_Lambda_Sequence_T);
-	private static Parameter pa_Sequence_select_i = createParameter("i", t_Sequence_T);
-	private static Parameter pa_Sequence_selectByKind_type = createParameter("type", t_AnyClassifier_Sequence_selectByKind_TT);
-	private static Parameter pa_Sequence_selectByType_type = createParameter("type", t_AnyClassifier_Sequence_selectByType_TT);
-	private static Parameter pa_Sequence_sortedBy_body = createParameter("body", t_Lambda_Sequence_T_2);
-	private static Parameter pa_Sequence_sortedBy_i = createParameter("i", t_Sequence_T);
-	private static Parameter pa_Sequence_subSequence_lower = createParameter("lower", t_Integer);
-	private static Parameter pa_Sequence_subSequence_upper = createParameter("upper", t_Integer);
-	private static Parameter pa_Sequence_union_s = createParameter("s", t_Sequence);
-	private static Parameter pa_Set__sub__s = createParameter("s", t_UniqueCollection_OclAny);
-	private static Parameter pa_Set__lt__gt__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_Set__eq__object2 = createParameter("object2", t_OclSelf);
-	private static Parameter pa_Set_excluding_object = createParameter("object", t_OclAny);
-	private static Parameter pa_Set_including_object = createParameter("object", t_Set_T);
-	private static Parameter pa_Set_intersection_s = createParameter("s", t_Collection_Set_T_1);
-	private static Parameter pa_Set_reject_body = createParameter("body", t_Lambda_Set_T_1);
-	private static Parameter pa_Set_reject_i = createParameter("i", t_Set_T);
-	private static Parameter pa_Set_select_body = createParameter("body", t_Lambda_Set_T);
-	private static Parameter pa_Set_select_i = createParameter("i", t_Set_T);
-	private static Parameter pa_Set_selectByKind_type = createParameter("type", t_AnyClassifier_Set_selectByKind_TT);
-	private static Parameter pa_Set_selectByType_type = createParameter("type", t_AnyClassifier_Set_selectByType_TT);
-	private static Parameter pa_Set_sortedBy_body = createParameter("body", t_Lambda_Set_T_2);
-	private static Parameter pa_Set_sortedBy_i = createParameter("i", t_Set_T);
-	private static Parameter pa_Set_union_s = createParameter("s", t_Collection_Set_T_1);
-	private static Parameter pa_UniqueCollection__sub__s = createParameter("s", t_UniqueCollection_OclAny);
-	private static Parameter pa_UniqueCollection_sortedBy_body = createParameter("body", t_Lambda_UniqueCollection_T);
-	private static Parameter pa_UniqueCollection_sortedBy_i = createParameter("i", t_UniqueCollection_T);
-	private static Parameter pa_UniqueCollection_symmetricDifference_s = createParameter("s", t_UniqueCollection_OclAny);
-	private static Parameter pa_UniqueCollection_union_s = createParameter("s", t_Collection_UniqueCollection_T);
-	
-	private static Iteration it_Bag_closure = createIteration("closure", t_Set_Bag_T, "org.eclipse.ocl.examples.library.iterator.ClosureIteration", org.eclipse.ocl.examples.library.iterator.ClosureIteration.INSTANCE, pa_Bag_closure_body, pa_Bag_closure_i);
-	private static Iteration it_Bag_collectNested = createIteration("collectNested", t_Bag, "org.eclipse.ocl.examples.library.iterator.CollectNestedIteration", org.eclipse.ocl.examples.library.iterator.CollectNestedIteration.INSTANCE, pa_Bag_collectNested_body, pa_Bag_collectNested_i);
-	private static Iteration it_Bag_collect = createIteration("collect", t_Bag_Bag_collect_V, "org.eclipse.ocl.examples.library.iterator.CollectIteration", org.eclipse.ocl.examples.library.iterator.CollectIteration.INSTANCE, pa_Bag_collect_body, pa_Bag_collect_i);
-	private static Iteration it_Bag_reject = createIteration("reject", t_Bag, "org.eclipse.ocl.examples.library.iterator.RejectIteration", org.eclipse.ocl.examples.library.iterator.RejectIteration.INSTANCE, pa_Bag_reject_body, pa_Bag_reject_i);
-	private static Iteration it_Bag_select = createIteration("select", t_Bag, "org.eclipse.ocl.examples.library.iterator.SelectIteration", org.eclipse.ocl.examples.library.iterator.SelectIteration.INSTANCE, pa_Bag_select_body, pa_Bag_select_i);
-	private static Iteration it_Bag_sortedBy = createIteration("sortedBy", t_Sequence_Bag_T, "org.eclipse.ocl.examples.library.iterator.SortedByIteration", org.eclipse.ocl.examples.library.iterator.SortedByIteration.INSTANCE, pa_Bag_sortedBy_body, pa_Bag_sortedBy_i);
-	private static Iteration it_Collection_any = createIteration("any", t_Collection_T, "org.eclipse.ocl.examples.library.iterator.AnyIteration", org.eclipse.ocl.examples.library.iterator.AnyIteration.INSTANCE, pa_Collection_any_body, pa_Collection_any_i);
-	private static Iteration it_Collection_collectNested = createIteration("collectNested", t_Collection, "org.eclipse.ocl.examples.library.iterator.CollectNestedIteration", org.eclipse.ocl.examples.library.iterator.CollectNestedIteration.INSTANCE, pa_Collection_collectNested_body, pa_Collection_collectNested_i);
-	private static Iteration it_Collection_collect = createIteration("collect", t_Collection_Collection_collect_V, "org.eclipse.ocl.examples.library.iterator.CollectIteration", org.eclipse.ocl.examples.library.iterator.CollectIteration.INSTANCE, pa_Collection_collect_body, pa_Collection_collect_i);
-	private static Iteration it_Collection_exists = createIteration("exists", t_Boolean, "org.eclipse.ocl.examples.library.iterator.ExistsIteration", org.eclipse.ocl.examples.library.iterator.ExistsIteration.INSTANCE, pa_Collection_exists_body, pa_Collection_exists_j, pa_Collection_exists_i);
-	private static Iteration it_Collection_exists_1 = createIteration("exists", t_Boolean, "org.eclipse.ocl.examples.library.iterator.ExistsIteration", org.eclipse.ocl.examples.library.iterator.ExistsIteration.INSTANCE, pa_Collection_exists_body_1, pa_Collection_exists_i_1);
-	private static Iteration it_Collection_forAll = createIteration("forAll", t_Boolean, "org.eclipse.ocl.examples.library.iterator.ForAllIteration", org.eclipse.ocl.examples.library.iterator.ForAllIteration.INSTANCE, pa_Collection_forAll_body, pa_Collection_forAll_j, pa_Collection_forAll_i);
-	private static Iteration it_Collection_forAll_1 = createIteration("forAll", t_Boolean, "org.eclipse.ocl.examples.library.iterator.ForAllIteration", org.eclipse.ocl.examples.library.iterator.ForAllIteration.INSTANCE, pa_Collection_forAll_body_1, pa_Collection_forAll_i_1);
-	private static Iteration it_Collection_isUnique = createIteration("isUnique", t_Boolean, "org.eclipse.ocl.examples.library.iterator.IsUniqueIteration", org.eclipse.ocl.examples.library.iterator.IsUniqueIteration.INSTANCE, pa_Collection_isUnique_body, pa_Collection_isUnique_i);
-	private static Iteration it_Collection_iterate = createIteration("iterate", t_Collection_iterate_Tacc, "org.eclipse.ocl.examples.library.iterator.IterateIteration", org.eclipse.ocl.examples.library.iterator.IterateIteration.INSTANCE, pa_Collection_iterate_body, pa_Collection_iterate_i);
-	private static Iteration it_Collection_one = createIteration("one", t_Boolean, "org.eclipse.ocl.examples.library.iterator.OneIteration", org.eclipse.ocl.examples.library.iterator.OneIteration.INSTANCE, pa_Collection_one_body, pa_Collection_one_i);
-	private static Iteration it_Collection_reject = createIteration("reject", t_Collection, "org.eclipse.ocl.examples.library.iterator.RejectIteration", org.eclipse.ocl.examples.library.iterator.RejectIteration.INSTANCE, pa_Collection_reject_body, pa_Collection_reject_i);
-	private static Iteration it_Collection_select = createIteration("select", t_Collection, "org.eclipse.ocl.examples.library.iterator.SelectIteration", org.eclipse.ocl.examples.library.iterator.SelectIteration.INSTANCE, pa_Collection_select_body, pa_Collection_select_i);
-	private static Iteration it_Collection_sortedBy = createIteration("sortedBy", t_Sequence_Collection_T, "org.eclipse.ocl.examples.library.iterator.SortedByIteration", org.eclipse.ocl.examples.library.iterator.SortedByIteration.INSTANCE, pa_Collection_sortedBy_body, pa_Collection_sortedBy_i);
-	private static Iteration it_OrderedSet_reject = createIteration("reject", t_OrderedSet, "org.eclipse.ocl.examples.library.iterator.RejectIteration", org.eclipse.ocl.examples.library.iterator.RejectIteration.INSTANCE, pa_OrderedSet_reject_body, pa_OrderedSet_reject_i);
-	private static Iteration it_OrderedSet_select = createIteration("select", t_OrderedSet, "org.eclipse.ocl.examples.library.iterator.SelectIteration", org.eclipse.ocl.examples.library.iterator.SelectIteration.INSTANCE, pa_OrderedSet_select_body, pa_OrderedSet_select_i);
-	private static Iteration it_OrderedSet_sortedBy = createIteration("sortedBy", t_OrderedSet, "org.eclipse.ocl.examples.library.iterator.SortedByIteration", org.eclipse.ocl.examples.library.iterator.SortedByIteration.INSTANCE, pa_OrderedSet_sortedBy_body, pa_OrderedSet_sortedBy_i);
-	private static Iteration it_Sequence_closure = createIteration("closure", t_OrderedSet_Sequence_T, "org.eclipse.ocl.examples.library.iterator.ClosureIteration", org.eclipse.ocl.examples.library.iterator.ClosureIteration.INSTANCE, pa_Sequence_closure_body, pa_Sequence_closure_i);
-	private static Iteration it_Sequence_collectNested = createIteration("collectNested", t_Sequence, "org.eclipse.ocl.examples.library.iterator.CollectNestedIteration", org.eclipse.ocl.examples.library.iterator.CollectNestedIteration.INSTANCE, pa_Sequence_collectNested_body, pa_Sequence_collectNested_i);
-	private static Iteration it_Sequence_collect = createIteration("collect", t_Sequence_Sequence_collect_V, "org.eclipse.ocl.examples.library.iterator.CollectIteration", org.eclipse.ocl.examples.library.iterator.CollectIteration.INSTANCE, pa_Sequence_collect_body, pa_Sequence_collect_i);
-	private static Iteration it_Sequence_reject = createIteration("reject", t_Sequence, "org.eclipse.ocl.examples.library.iterator.RejectIteration", org.eclipse.ocl.examples.library.iterator.RejectIteration.INSTANCE, pa_Sequence_reject_body, pa_Sequence_reject_i);
-	private static Iteration it_Sequence_select = createIteration("select", t_Sequence, "org.eclipse.ocl.examples.library.iterator.SelectIteration", org.eclipse.ocl.examples.library.iterator.SelectIteration.INSTANCE, pa_Sequence_select_body, pa_Sequence_select_i);
-	private static Iteration it_Sequence_sortedBy = createIteration("sortedBy", t_Sequence, "org.eclipse.ocl.examples.library.iterator.SortedByIteration", org.eclipse.ocl.examples.library.iterator.SortedByIteration.INSTANCE, pa_Sequence_sortedBy_body, pa_Sequence_sortedBy_i);
-	private static Iteration it_Set_reject = createIteration("reject", t_Set, "org.eclipse.ocl.examples.library.iterator.RejectIteration", org.eclipse.ocl.examples.library.iterator.RejectIteration.INSTANCE, pa_Set_reject_body, pa_Set_reject_i);
-	private static Iteration it_Set_select = createIteration("select", t_Set, "org.eclipse.ocl.examples.library.iterator.SelectIteration", org.eclipse.ocl.examples.library.iterator.SelectIteration.INSTANCE, pa_Set_select_body, pa_Set_select_i);
-	private static Iteration it_Set_sortedBy = createIteration("sortedBy", t_OrderedSet_Set_T, "org.eclipse.ocl.examples.library.iterator.SortedByIteration", org.eclipse.ocl.examples.library.iterator.SortedByIteration.INSTANCE, pa_Set_sortedBy_body, pa_Set_sortedBy_i);
-	private static Iteration it_UniqueCollection_sortedBy = createIteration("sortedBy", t_OrderedSet_UniqueCollection_T, "org.eclipse.ocl.examples.library.iterator.SortedByIteration", org.eclipse.ocl.examples.library.iterator.SortedByIteration.INSTANCE, pa_UniqueCollection_sortedBy_body, pa_UniqueCollection_sortedBy_i);
-	
-	private static Operation op_Boolean__lt__gt_ = createOperation("<>", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE, pa_Boolean__lt__gt__object2);
-	private static Operation op_Boolean__eq_ = createOperation("=", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE, pa_Boolean__eq__object2);
-	private static Operation op_Boolean_allInstances = createOperation("allInstances", t_Set_OclSelf, "org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation", org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation.INSTANCE);
-	private static Operation op_Boolean_and = createOperation("and", t_Boolean, "org.eclipse.ocl.examples.library.logical.BooleanAndOperation", org.eclipse.ocl.examples.library.logical.BooleanAndOperation.INSTANCE, pa_Boolean_and_b);
-	private static Operation op_Boolean_implies = createOperation("implies", t_Boolean, "org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation", org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation.INSTANCE, pa_Boolean_implies_b);
-	private static Operation op_Boolean_not = createOperation("not", t_Boolean, "org.eclipse.ocl.examples.library.logical.BooleanNotOperation", org.eclipse.ocl.examples.library.logical.BooleanNotOperation.INSTANCE);
-	private static Operation op_Boolean_or = createOperation("or", t_Boolean, "org.eclipse.ocl.examples.library.logical.BooleanOrOperation", org.eclipse.ocl.examples.library.logical.BooleanOrOperation.INSTANCE, pa_Boolean_or_b);
-	private static Operation op_Boolean_toString = createOperation("toString", t_String, "org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation.INSTANCE);
-	private static Operation op_Boolean_xor = createOperation("xor", t_Boolean, "org.eclipse.ocl.examples.library.logical.BooleanXorOperation", org.eclipse.ocl.examples.library.logical.BooleanXorOperation.INSTANCE, pa_Boolean_xor_b);
-	private static Operation op_Integer__mul_ = createOperation("*", t_Integer, "org.eclipse.ocl.examples.library.numeric.NumericTimesOperation", org.eclipse.ocl.examples.library.numeric.NumericTimesOperation.INSTANCE, pa_Integer__mul__i);
-	private static Operation op_Integer__add_ = createOperation("+", t_Integer, "org.eclipse.ocl.examples.library.integer.IntegerPlusOperation", org.eclipse.ocl.examples.library.integer.IntegerPlusOperation.INSTANCE, pa_Integer__add__i);
-	private static Operation op_Integer__sub_ = createOperation("-", t_Integer, "org.eclipse.ocl.examples.library.numeric.NumericNegateOperation", org.eclipse.ocl.examples.library.numeric.NumericNegateOperation.INSTANCE);
-	private static Operation op_Integer__sub__1 = createOperation("-", t_Integer, "org.eclipse.ocl.examples.library.integer.IntegerMinusOperation", org.eclipse.ocl.examples.library.integer.IntegerMinusOperation.INSTANCE, pa_Integer__sub__i);
-	private static Operation op_Integer__div_ = createOperation("/", t_Real, "org.eclipse.ocl.examples.library.numeric.NumericDivideOperation", org.eclipse.ocl.examples.library.numeric.NumericDivideOperation.INSTANCE, pa_Integer__div__i);
-	private static Operation op_Integer_abs = createOperation("abs", t_Integer, "org.eclipse.ocl.examples.library.numeric.NumericAbsOperation", org.eclipse.ocl.examples.library.numeric.NumericAbsOperation.INSTANCE);
-	private static Operation op_Integer_compareTo = createOperation("compareTo", t_Integer, "org.eclipse.ocl.examples.library.integer.IntegerCompareToOperation", org.eclipse.ocl.examples.library.integer.IntegerCompareToOperation.INSTANCE, pa_Integer_compareTo_that);
-	private static Operation op_Integer_div = createOperation("div", t_Integer, "org.eclipse.ocl.examples.library.numeric.NumericDivOperation", org.eclipse.ocl.examples.library.numeric.NumericDivOperation.INSTANCE, pa_Integer_div_i);
-	private static Operation op_Integer_max = createOperation("max", t_Integer, "org.eclipse.ocl.examples.library.numeric.NumericMaxOperation", org.eclipse.ocl.examples.library.numeric.NumericMaxOperation.INSTANCE, pa_Integer_max_i);
-	private static Operation op_Integer_min = createOperation("min", t_Integer, "org.eclipse.ocl.examples.library.numeric.NumericMinOperation", org.eclipse.ocl.examples.library.numeric.NumericMinOperation.INSTANCE, pa_Integer_min_i);
-	private static Operation op_Integer_mod = createOperation("mod", t_Integer, "org.eclipse.ocl.examples.library.numeric.NumericModOperation", org.eclipse.ocl.examples.library.numeric.NumericModOperation.INSTANCE, pa_Integer_mod_i);
-	private static Operation op_Integer_toString = createOperation("toString", t_String, "org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation.INSTANCE);
-	private static Operation op_Real__mul_ = createOperation("*", t_Real, "org.eclipse.ocl.examples.library.numeric.NumericTimesOperation", org.eclipse.ocl.examples.library.numeric.NumericTimesOperation.INSTANCE, pa_Real__mul__r);
-	private static Operation op_Real__add_ = createOperation("+", t_Real, "org.eclipse.ocl.examples.library.real.RealPlusOperation", org.eclipse.ocl.examples.library.real.RealPlusOperation.INSTANCE, pa_Real__add__r);
-	private static Operation op_Real__sub_ = createOperation("-", t_Real, "org.eclipse.ocl.examples.library.numeric.NumericNegateOperation", org.eclipse.ocl.examples.library.numeric.NumericNegateOperation.INSTANCE);
-	private static Operation op_Real__sub__1 = createOperation("-", t_Real, "org.eclipse.ocl.examples.library.real.RealMinusOperation", org.eclipse.ocl.examples.library.real.RealMinusOperation.INSTANCE, pa_Real__sub__r);
-	private static Operation op_Real__div_ = createOperation("/", t_Real, "org.eclipse.ocl.examples.library.numeric.NumericDivideOperation", org.eclipse.ocl.examples.library.numeric.NumericDivideOperation.INSTANCE, pa_Real__div__r);
-	private static Operation op_Real__lt_ = createOperation("<", t_Boolean, "org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation", org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation.INSTANCE, pa_Real__lt__r);
-	private static Operation op_Real__lt__eq_ = createOperation("<=", t_Boolean, "org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation", org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation.INSTANCE, pa_Real__lt__eq__r);
-	private static Operation op_Real__lt__gt_ = createOperation("<>", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE, pa_Real__lt__gt__object2);
-	private static Operation op_Real__eq_ = createOperation("=", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE, pa_Real__eq__object2);
-	private static Operation op_Real__gt_ = createOperation(">", t_Boolean, "org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation", org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation.INSTANCE, pa_Real__gt__r);
-	private static Operation op_Real__gt__eq_ = createOperation(">=", t_Boolean, "org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation", org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation.INSTANCE, pa_Real__gt__eq__r);
-	private static Operation op_Real_abs = createOperation("abs", t_Real, "org.eclipse.ocl.examples.library.numeric.NumericAbsOperation", org.eclipse.ocl.examples.library.numeric.NumericAbsOperation.INSTANCE);
-	private static Operation op_Real_compareTo = createOperation("compareTo", t_Integer, "org.eclipse.ocl.examples.library.real.RealCompareToOperation", org.eclipse.ocl.examples.library.real.RealCompareToOperation.INSTANCE, pa_Real_compareTo_that);
-	private static Operation op_Real_floor = createOperation("floor", t_Integer, "org.eclipse.ocl.examples.library.numeric.NumericFloorOperation", org.eclipse.ocl.examples.library.numeric.NumericFloorOperation.INSTANCE);
-	private static Operation op_Real_max = createOperation("max", t_Real, "org.eclipse.ocl.examples.library.numeric.NumericMaxOperation", org.eclipse.ocl.examples.library.numeric.NumericMaxOperation.INSTANCE, pa_Real_max_r);
-	private static Operation op_Real_min = createOperation("min", t_Real, "org.eclipse.ocl.examples.library.numeric.NumericMinOperation", org.eclipse.ocl.examples.library.numeric.NumericMinOperation.INSTANCE, pa_Real_min_r);
-	private static Operation op_Real_round = createOperation("round", t_Integer, "org.eclipse.ocl.examples.library.numeric.NumericRoundOperation", org.eclipse.ocl.examples.library.numeric.NumericRoundOperation.INSTANCE);
-	private static Operation op_Real_toString = createOperation("toString", t_String, "org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation.INSTANCE);
-	private static Operation op_String__add_ = createOperation("+", t_String, "org.eclipse.ocl.examples.library.string.StringConcatOperation", org.eclipse.ocl.examples.library.string.StringConcatOperation.INSTANCE, pa_String__add__s);
-	private static Operation op_String__lt_ = createOperation("<", t_Boolean, "org.eclipse.ocl.examples.library.string.StringLessThanOperation", org.eclipse.ocl.examples.library.string.StringLessThanOperation.INSTANCE, pa_String__lt__s);
-	private static Operation op_String__lt__eq_ = createOperation("<=", t_Boolean, "org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation", org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation.INSTANCE, pa_String__lt__eq__s);
-	private static Operation op_String__lt__gt_ = createOperation("<>", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE, pa_String__lt__gt__object2);
-	private static Operation op_String__eq_ = createOperation("=", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE, pa_String__eq__object2);
-	private static Operation op_String__gt_ = createOperation(">", t_Boolean, "org.eclipse.ocl.examples.library.string.StringGreaterThanOperation", org.eclipse.ocl.examples.library.string.StringGreaterThanOperation.INSTANCE, pa_String__gt__s);
-	private static Operation op_String__gt__eq_ = createOperation(">=", t_Boolean, "org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation", org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation.INSTANCE, pa_String__gt__eq__s);
-	private static Operation op_String_at = createOperation("at", t_String, "org.eclipse.ocl.examples.library.string.StringAtOperation", org.eclipse.ocl.examples.library.string.StringAtOperation.INSTANCE, pa_String_at_i);
-	private static Operation op_String_characters = createOperation("characters", t_Sequence_String, "org.eclipse.ocl.examples.library.string.StringCharactersOperation", org.eclipse.ocl.examples.library.string.StringCharactersOperation.INSTANCE);
-	private static Operation op_String_compareTo = createOperation("compareTo", t_Integer, "org.eclipse.ocl.examples.library.string.StringCompareToOperation", org.eclipse.ocl.examples.library.string.StringCompareToOperation.INSTANCE, pa_String_compareTo_that);
-	private static Operation op_String_concat = createOperation("concat", t_String, "org.eclipse.ocl.examples.library.string.StringConcatOperation", org.eclipse.ocl.examples.library.string.StringConcatOperation.INSTANCE, pa_String_concat_s);
-	private static Operation op_String_equalsIgnoreCase = createOperation("equalsIgnoreCase", t_Boolean, "org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation", org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation.INSTANCE, pa_String_equalsIgnoreCase_s);
-	private static Operation op_String_indexOf = createOperation("indexOf", t_Integer, "org.eclipse.ocl.examples.library.string.StringIndexOfOperation", org.eclipse.ocl.examples.library.string.StringIndexOfOperation.INSTANCE, pa_String_indexOf_s);
-	private static Operation op_String_size = createOperation("size", t_Integer, "org.eclipse.ocl.examples.library.string.StringSizeOperation", org.eclipse.ocl.examples.library.string.StringSizeOperation.INSTANCE);
-	private static Operation op_String_substring = createOperation("substring", t_String, "org.eclipse.ocl.examples.library.string.StringSubstringOperation", org.eclipse.ocl.examples.library.string.StringSubstringOperation.INSTANCE, pa_String_substring_lower, pa_String_substring_upper);
-	private static Operation op_String_toBoolean = createOperation("toBoolean", t_Boolean, "org.eclipse.ocl.examples.library.string.StringToBooleanOperation", org.eclipse.ocl.examples.library.string.StringToBooleanOperation.INSTANCE);
-	private static Operation op_String_toInteger = createOperation("toInteger", t_Integer, "org.eclipse.ocl.examples.library.string.StringToIntegerOperation", org.eclipse.ocl.examples.library.string.StringToIntegerOperation.INSTANCE);
-	private static Operation op_String_toLower = createOperation("toLower", t_String, "org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation", org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation.INSTANCE);
-	private static Operation op_String_toLowerCase = createOperation("toLowerCase", t_String, "org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation", org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation.INSTANCE);
-	private static Operation op_String_toReal = createOperation("toReal", t_Real, "org.eclipse.ocl.examples.library.string.StringToRealOperation", org.eclipse.ocl.examples.library.string.StringToRealOperation.INSTANCE);
-	private static Operation op_String_toString = createOperation("toString", t_String, "org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation.INSTANCE);
-	private static Operation op_String_toUpper = createOperation("toUpper", t_String, "org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation", org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation.INSTANCE);
-	private static Operation op_String_toUpperCase = createOperation("toUpperCase", t_String, "org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation", org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation.INSTANCE);
-	private static Operation op_UnlimitedNatural_oclAsType = createOperation("oclAsType", t_UnlimitedNatural_oclAsType_TT, "org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation", org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation.INSTANCE, pa_UnlimitedNatural_oclAsType_type);
-	private static Operation op_Bag__lt__gt_ = createOperation("<>", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE, pa_Bag__lt__gt__object2);
-	private static Operation op_Bag__eq_ = createOperation("=", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE, pa_Bag__eq__object2);
-	private static Operation op_Bag_excluding = createOperation("excluding", t_Bag, "org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation", org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation.INSTANCE, pa_Bag_excluding_object);
-	private static Operation op_Bag_flatten = createOperation("flatten", t_Bag_Bag_flatten_T2, "org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation", org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation.INSTANCE);
-	private static Operation op_Bag_including = createOperation("including", t_Bag, "org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation", org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation.INSTANCE, pa_Bag_including_object);
-	private static Operation op_Bag_intersection = createOperation("intersection", t_Bag, "org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation.INSTANCE, pa_Bag_intersection_bag);
-	private static Operation op_Bag_intersection_1 = createOperation("intersection", t_Set_Bag_T, "org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation.INSTANCE, pa_Bag_intersection_s);
-	private static Operation op_Bag_selectByKind = createOperation("selectByKind", t_Bag_Bag_selectByKind_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation.INSTANCE, pa_Bag_selectByKind_type);
-	private static Operation op_Bag_selectByType = createOperation("selectByType", t_Bag_Bag_selectByType_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation.INSTANCE, pa_Bag_selectByType_type);
-	private static Operation op_Bag_union = createOperation("union", t_Bag, "org.eclipse.ocl.examples.library.collection.CollectionUnionOperation", org.eclipse.ocl.examples.library.collection.CollectionUnionOperation.INSTANCE, pa_Bag_union_bag);
-	private static Operation op_Bag_union_1 = createOperation("union", t_Set_Bag_T, "org.eclipse.ocl.examples.library.collection.CollectionUnionOperation", org.eclipse.ocl.examples.library.collection.CollectionUnionOperation.INSTANCE, pa_Bag_union_s);
-	private static Operation op_Class_oclType = createOperation("oclType", t_ClassClassifier_OclSelf, "org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation.INSTANCE);
-	private static Operation op_Collection__lt__gt_ = createOperation("<>", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE, pa_Collection__lt__gt__object2);
-	private static Operation op_Collection__eq_ = createOperation("=", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE, pa_Collection__eq__object2);
-	private static Operation op_Collection_asBag = createOperation("asBag", t_Bag_Collection_T, "org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation", org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation.INSTANCE);
-	private static Operation op_Collection_asOrderedSet = createOperation("asOrderedSet", t_OrderedSet_Collection_T, "org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation", org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation.INSTANCE);
-	private static Operation op_Collection_asSequence = createOperation("asSequence", t_Sequence_Collection_T, "org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation", org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation.INSTANCE);
-	private static Operation op_Collection_asSet = createOperation("asSet", t_Set_Collection_T, "org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation", org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation.INSTANCE);
-	private static Operation op_Collection_count = createOperation("count", t_Integer, "org.eclipse.ocl.examples.library.collection.CollectionCountOperation", org.eclipse.ocl.examples.library.collection.CollectionCountOperation.INSTANCE, pa_Collection_count_object);
-	private static Operation op_Collection_excludes = createOperation("excludes", t_Boolean, "org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation", org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation.INSTANCE, pa_Collection_excludes_object);
-	private static Operation op_Collection_excludesAll = createOperation("excludesAll", t_Boolean, "org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation", org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation.INSTANCE, pa_Collection_excludesAll_c2);
-	private static Operation op_Collection_excluding = createOperation("excluding", t_Collection, "org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation", org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation.INSTANCE, pa_Collection_excluding_object);
-	private static Operation op_Collection_flatten = createOperation("flatten", t_Collection_Collection_flatten_T2, "org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation", org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation.INSTANCE);
-	private static Operation op_Collection_includes = createOperation("includes", t_Boolean, "org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation", org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation.INSTANCE, pa_Collection_includes_object);
-	private static Operation op_Collection_includesAll = createOperation("includesAll", t_Boolean, "org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation", org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation.INSTANCE, pa_Collection_includesAll_c2);
-	private static Operation op_Collection_including = createOperation("including", t_Collection, "org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation", org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation.INSTANCE, pa_Collection_including_object);
-	private static Operation op_Collection_isEmpty = createOperation("isEmpty", t_Boolean, "org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation", org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation.INSTANCE);
-	private static Operation op_Collection_max = createOperation("max", t_Collection_T, "org.eclipse.ocl.examples.library.collection.CollectionMaxOperation", org.eclipse.ocl.examples.library.collection.CollectionMaxOperation.INSTANCE);
-	private static Operation op_Collection_min = createOperation("min", t_Collection_T, "org.eclipse.ocl.examples.library.collection.CollectionMinOperation", org.eclipse.ocl.examples.library.collection.CollectionMinOperation.INSTANCE);
-	private static Operation op_Collection_notEmpty = createOperation("notEmpty", t_Boolean, "org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation", org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation.INSTANCE);
-	private static Operation op_Collection_oclType = createOperation("oclType", t_CollectionClassifier_Collection_T_OclSelf, "org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation.INSTANCE);
-	private static Operation op_Collection_product = createOperation("product", t_Set_Tuple, "org.eclipse.ocl.examples.library.collection.CollectionProductOperation", org.eclipse.ocl.examples.library.collection.CollectionProductOperation.INSTANCE, pa_Collection_product_c2);
-	private static Operation op_Collection_selectByKind = createOperation("selectByKind", t_Collection_Collection_selectByKind_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation.INSTANCE, pa_Collection_selectByKind_type);
-	private static Operation op_Collection_selectByType = createOperation("selectByType", t_Collection_Collection_selectByType_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation.INSTANCE, pa_Collection_selectByType_type);
-	private static Operation op_Collection_size = createOperation("size", t_Integer, "org.eclipse.ocl.examples.library.collection.CollectionSizeOperation", org.eclipse.ocl.examples.library.collection.CollectionSizeOperation.INSTANCE);
-	private static Operation op_Collection_sum = createOperation("sum", t_Collection_T, "org.eclipse.ocl.examples.library.collection.CollectionSumOperation", org.eclipse.ocl.examples.library.collection.CollectionSumOperation.INSTANCE);
-	private static Operation op_Enumeration_allInstances = createOperation("allInstances", t_Set_OclSelf, "org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation", org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation.INSTANCE);
-	private static Operation op_Enumeration_oclType = createOperation("oclType", t_EnumerationClassifier_OclSelf, "org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation.INSTANCE);
-	private static Operation op_OclAny__lt__gt_ = createOperation("<>", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE, pa_OclAny__lt__gt__object2);
-	private static Operation op_OclAny__eq_ = createOperation("=", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE, pa_OclAny__eq__object2);
-	private static Operation op_OclAny_oclAsSet = createOperation("oclAsSet", t_Set_OclSelf, "org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation.INSTANCE);
-	private static Operation op_OclAny_oclAsType = createOperation("oclAsType", t_OclAny_oclAsType_TT, "org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation.INSTANCE, pa_OclAny_oclAsType_type);
-	private static Operation op_OclAny_oclIsInState = createOperation("oclIsInState", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation.INSTANCE, pa_OclAny_oclIsInState_statespec);
-	private static Operation op_OclAny_oclIsInvalid = createOperation("oclIsInvalid", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation.INSTANCE);
-	private static Operation op_OclAny_oclIsKindOf = createOperation("oclIsKindOf", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation.INSTANCE, pa_OclAny_oclIsKindOf_type);
-	private static Operation op_OclAny_oclIsNew = createOperation("oclIsNew", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
-	private static Operation op_OclAny_oclIsTypeOf = createOperation("oclIsTypeOf", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation.INSTANCE, pa_OclAny_oclIsTypeOf_type);
-	private static Operation op_OclAny_oclIsUndefined = createOperation("oclIsUndefined", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation.INSTANCE);
-	private static Operation op_OclAny_oclType = createOperation("oclType", t_AnyClassifier_OclSelf, "org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation.INSTANCE);
-	private static Operation op_OclComparable_compareTo = createOperation("compareTo", t_Integer, null, null, pa_OclComparable_compareTo_that);
-	private static Operation op_OclElement_allInstances = createOperation("allInstances", t_Set_OclSelf, "org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation", org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation.INSTANCE);
-	private static Operation op_OclElement_oclContainer = createOperation("oclContainer", t_OclElement, "org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation", org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation.INSTANCE);
-	private static Operation op_OclElement_oclContents = createOperation("oclContents", t_Set_OclElement, "org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation", org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation.INSTANCE);
-	private static Operation op_OclInvalid__lt__gt_ = createOperation("<>", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE, pa_OclInvalid__lt__gt__object2);
-	private static Operation op_OclInvalid__eq_ = createOperation("=", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE, pa_OclInvalid__eq__object2);
-	private static Operation op_OclInvalid_allInstances = createOperation("allInstances", t_Set_OclSelf, "org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation", org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation.INSTANCE);
-	private static Operation op_OclInvalid_oclBadOperation = createOperation("oclBadOperation", t_OclInvalid, null, null);
-	private static Operation op_OclInvalid_toString = createOperation("toString", t_String, "org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation.INSTANCE);
-	private static Operation op_OclMessage_hasReturned = createOperation("hasReturned", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
-	private static Operation op_OclMessage_isOperationCall = createOperation("isOperationCall", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
-	private static Operation op_OclMessage_isSignalSent = createOperation("isSignalSent", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
-	private static Operation op_OclMessage_result = createOperation("result", t_OclAny, "org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
-	private static Operation op_OclSummable_sum = createOperation("sum", t_OclSelf, null, null, pa_OclSummable_sum_that);
-	private static Operation op_OclSummable_zero = createOperation("zero", t_OclSelf, null, null);
-	private static Operation op_OclTuple__lt__gt_ = createOperation("<>", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE, pa_OclTuple__lt__gt__object2);
-	private static Operation op_OclTuple__eq_ = createOperation("=", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE, pa_OclTuple__eq__object2);
-	private static Operation op_OclType_conformsTo = createOperation("conformsTo", t_Boolean, "org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation", org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation.INSTANCE, pa_OclType_conformsTo_type2);
-	private static Operation op_OclVoid__lt__gt_ = createOperation("<>", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE, pa_OclVoid__lt__gt__object2);
-	private static Operation op_OclVoid__eq_ = createOperation("=", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE, pa_OclVoid__eq__object2);
-	private static Operation op_OclVoid_allInstances = createOperation("allInstances", t_Set_OclSelf, "org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation", org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation.INSTANCE);
-	private static Operation op_OclVoid_and = createOperation("and", t_Boolean, "org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation", org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation.INSTANCE, pa_OclVoid_and_b);
-	private static Operation op_OclVoid_implies = createOperation("implies", t_Boolean, "org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation", org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation.INSTANCE, pa_OclVoid_implies_b);
-	private static Operation op_OclVoid_or = createOperation("or", t_Boolean, "org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation", org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation.INSTANCE, pa_OclVoid_or_b);
-	private static Operation op_OclVoid_toString = createOperation("toString", t_String, "org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation.INSTANCE);
-	private static Operation op_OrderedSet__sub_ = createOperation("-", t_OrderedSet, "org.eclipse.ocl.examples.library.collection.SetMinusOperation", org.eclipse.ocl.examples.library.collection.SetMinusOperation.INSTANCE, pa_OrderedSet__sub__s);
-	private static Operation op_OrderedSet__lt__gt_ = createOperation("<>", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE, pa_OrderedSet__lt__gt__object2);
-	private static Operation op_OrderedSet__eq_ = createOperation("=", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE, pa_OrderedSet__eq__object2);
-	private static Operation op_OrderedSet_append = createOperation("append", t_OrderedSet, "org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation.INSTANCE, pa_OrderedSet_append_object);
-	private static Operation op_OrderedSet_excluding = createOperation("excluding", t_OrderedSet, "org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation", org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation.INSTANCE, pa_OrderedSet_excluding_object);
-	private static Operation op_OrderedSet_flatten = createOperation("flatten", t_OrderedSet_OrderedSet_flatten_T2, "org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation", org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation.INSTANCE);
-	private static Operation op_OrderedSet_including = createOperation("including", t_OrderedSet, "org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation", org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation.INSTANCE, pa_OrderedSet_including_object);
-	private static Operation op_OrderedSet_insertAt = createOperation("insertAt", t_OrderedSet, "org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation.INSTANCE, pa_OrderedSet_insertAt_index, pa_OrderedSet_insertAt_object);
-	private static Operation op_OrderedSet_intersection = createOperation("intersection", t_OrderedSet, "org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation.INSTANCE, pa_OrderedSet_intersection_o);
-	private static Operation op_OrderedSet_prepend = createOperation("prepend", t_OrderedSet, "org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation.INSTANCE, pa_OrderedSet_prepend_object);
-	private static Operation op_OrderedSet_reverse = createOperation("reverse", t_OrderedSet, "org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation.INSTANCE);
-	private static Operation op_OrderedSet_selectByKind = createOperation("selectByKind", t_OrderedSet_OrderedSet_selectByKind_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation.INSTANCE, pa_OrderedSet_selectByKind_type);
-	private static Operation op_OrderedSet_selectByType = createOperation("selectByType", t_OrderedSet_OrderedSet_selectByType_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation.INSTANCE, pa_OrderedSet_selectByType_type);
-	private static Operation op_OrderedSet_subOrderedSet = createOperation("subOrderedSet", t_OrderedSet, "org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation", org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation.INSTANCE, pa_OrderedSet_subOrderedSet_lower, pa_OrderedSet_subOrderedSet_upper);
-	private static Operation op_OrderedSet_union = createOperation("union", t_OrderedSet, "org.eclipse.ocl.examples.library.collection.CollectionUnionOperation", org.eclipse.ocl.examples.library.collection.CollectionUnionOperation.INSTANCE, pa_OrderedSet_union_o);
-	private static Operation op_Sequence__lt__gt_ = createOperation("<>", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE, pa_Sequence__lt__gt__object2);
-	private static Operation op_Sequence__eq_ = createOperation("=", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE, pa_Sequence__eq__object2);
-	private static Operation op_Sequence_append = createOperation("append", t_Sequence, "org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation.INSTANCE, pa_Sequence_append_object);
-	private static Operation op_Sequence_at = createOperation("at", t_Sequence_T, "org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation.INSTANCE, pa_Sequence_at_index);
-	private static Operation op_Sequence_excluding = createOperation("excluding", t_Sequence, "org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation", org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation.INSTANCE, pa_Sequence_excluding_object);
-	private static Operation op_Sequence_first = createOperation("first", t_Sequence_T, "org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation.INSTANCE);
-	private static Operation op_Sequence_flatten = createOperation("flatten", t_Sequence_Sequence_flatten_T2, "org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation", org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation.INSTANCE);
-	private static Operation op_Sequence_including = createOperation("including", t_Sequence, "org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation", org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation.INSTANCE, pa_Sequence_including_object);
-	private static Operation op_Sequence_indexOf = createOperation("indexOf", t_Integer, "org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation.INSTANCE, pa_Sequence_indexOf_obj);
-	private static Operation op_Sequence_insertAt = createOperation("insertAt", t_Sequence, "org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation.INSTANCE, pa_Sequence_insertAt_index, pa_Sequence_insertAt_object);
-	private static Operation op_Sequence_intersection = createOperation("intersection", t_Bag_Sequence_T, "org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation.INSTANCE, pa_Sequence_intersection_c);
-	private static Operation op_Sequence_intersection_1 = createOperation("intersection", t_OrderedSet_Sequence_T, "org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation.INSTANCE, pa_Sequence_intersection_s);
-	private static Operation op_Sequence_last = createOperation("last", t_Sequence_T, "org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation.INSTANCE);
-	private static Operation op_Sequence_prepend = createOperation("prepend", t_Sequence, "org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation.INSTANCE, pa_Sequence_prepend_object);
-	private static Operation op_Sequence_reverse = createOperation("reverse", t_Sequence, "org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation.INSTANCE);
-	private static Operation op_Sequence_selectByKind = createOperation("selectByKind", t_Sequence_Sequence_selectByKind_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation.INSTANCE, pa_Sequence_selectByKind_type);
-	private static Operation op_Sequence_selectByType = createOperation("selectByType", t_Sequence_Sequence_selectByType_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation.INSTANCE, pa_Sequence_selectByType_type);
-	private static Operation op_Sequence_subSequence = createOperation("subSequence", t_Sequence, "org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation", org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation.INSTANCE, pa_Sequence_subSequence_lower, pa_Sequence_subSequence_upper);
-	private static Operation op_Sequence_union = createOperation("union", t_Sequence, "org.eclipse.ocl.examples.library.collection.CollectionUnionOperation", org.eclipse.ocl.examples.library.collection.CollectionUnionOperation.INSTANCE, pa_Sequence_union_s);
-	private static Operation op_Set__sub_ = createOperation("-", t_Set, "org.eclipse.ocl.examples.library.collection.SetMinusOperation", org.eclipse.ocl.examples.library.collection.SetMinusOperation.INSTANCE, pa_Set__sub__s);
-	private static Operation op_Set__lt__gt_ = createOperation("<>", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE, pa_Set__lt__gt__object2);
-	private static Operation op_Set__eq_ = createOperation("=", t_Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE, pa_Set__eq__object2);
-	private static Operation op_Set_excluding = createOperation("excluding", t_Set, "org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation", org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation.INSTANCE, pa_Set_excluding_object);
-	private static Operation op_Set_flatten = createOperation("flatten", t_Set_Set_flatten_T2, "org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation", org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation.INSTANCE);
-	private static Operation op_Set_including = createOperation("including", t_Set, "org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation", org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation.INSTANCE, pa_Set_including_object);
-	private static Operation op_Set_intersection = createOperation("intersection", t_Set, "org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation.INSTANCE, pa_Set_intersection_s);
-	private static Operation op_Set_selectByKind = createOperation("selectByKind", t_Set_Set_selectByKind_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation.INSTANCE, pa_Set_selectByKind_type);
-	private static Operation op_Set_selectByType = createOperation("selectByType", t_Set_Set_selectByType_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation.INSTANCE, pa_Set_selectByType_type);
-	private static Operation op_Set_union = createOperation("union", t_Set, "org.eclipse.ocl.examples.library.collection.CollectionUnionOperation", org.eclipse.ocl.examples.library.collection.CollectionUnionOperation.INSTANCE, pa_Set_union_s);
-	private static Operation op_UniqueCollection__sub_ = createOperation("-", t_UniqueCollection, "org.eclipse.ocl.examples.library.collection.SetMinusOperation", org.eclipse.ocl.examples.library.collection.SetMinusOperation.INSTANCE, pa_UniqueCollection__sub__s);
-	private static Operation op_UniqueCollection_symmetricDifference = createOperation("symmetricDifference", t_Set_UniqueCollection_T, "org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation", org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation.INSTANCE, pa_UniqueCollection_symmetricDifference_s);
-	private static Operation op_UniqueCollection_union = createOperation("union", t_Set_UniqueCollection_T, "org.eclipse.ocl.examples.library.collection.CollectionUnionOperation", org.eclipse.ocl.examples.library.collection.CollectionUnionOperation.INSTANCE, pa_UniqueCollection_union_s);
-	
-	private static Property pr_Tuple_first = createProperty("first", t_Collection_T, null, null);
-	private static Property pr_Tuple_first_1 = createProperty("first", t_Collection_T, null, null);
-	private static Property pr_Tuple_first_2 = createProperty("first", t_Collection_T, null, null);
-	private static Property pr_Tuple_first_3 = createProperty("first", t_Collection_T, null, null);
-	private static Property pr_Tuple_second = createProperty("second", t_Collection_product_T2, null, null);
-	private static Property pr_Tuple_second_1 = createProperty("second", t_Collection_product_T2, null, null);
-	private static Property pr_Tuple_second_2 = createProperty("second", t_Collection_product_T2, null, null);
-	private static Property pr_Tuple_second_3 = createProperty("second", t_Collection_product_T2, null, null);
-	private static Property pr_CollectionClassifier_elementType = createProperty("elementType", t_CollectionClassifier_E, "org.eclipse.ocl.examples.library.collection.CollectionClassifierElementTypeProperty", org.eclipse.ocl.examples.library.collection.CollectionClassifierElementTypeProperty.INSTANCE);
-	private static Property pr_EnumerationClassifier_ownedLiteral = createProperty("ownedLiteral", t_OrderedSet_EnumerationLiteral, "org.eclipse.ocl.examples.library.enumeration.EnumerationClassifierOwnedLiteralProperty", org.eclipse.ocl.examples.library.enumeration.EnumerationClassifierOwnedLiteralProperty.INSTANCE);
-	private static Property pr_OclInvalid_oclBadProperty = createProperty("oclBadProperty", t_OclInvalid, null, null);
-	
-	private static TypeTemplateParameter tp_UnlimitedNatural_oclAsType = createTypeTemplateParameter(t_UnlimitedNatural_oclAsType_TT);
-	private static TypeTemplateParameter tp_AnyClassifier = createTypeTemplateParameter(t_AnyClassifier_T);
-	private static TypeTemplateParameter tp_Bag_collectNested = createTypeTemplateParameter(t_Bag_collectNested_V);
-	private static TypeTemplateParameter tp_Bag_collect = createTypeTemplateParameter(t_Bag_collect_V);
-	private static TypeTemplateParameter tp_Bag_flatten = createTypeTemplateParameter(t_Bag_flatten_T2);
-	private static TypeTemplateParameter tp_Bag_selectByKind = createTypeTemplateParameter(t_Bag_selectByKind_TT);
-	private static TypeTemplateParameter tp_Bag_selectByType = createTypeTemplateParameter(t_Bag_selectByType_TT);
-	private static TypeTemplateParameter tp_Bag = createTypeTemplateParameter(t_Bag_T);
-	private static TypeTemplateParameter tp_ClassClassifier = createTypeTemplateParameter(t_ClassClassifier_T);
-	private static TypeTemplateParameter tp_CollectionClassifier = createTypeTemplateParameter(t_CollectionClassifier_E);
-	private static TypeTemplateParameter tp_CollectionClassifier_1 = createTypeTemplateParameter(t_CollectionClassifier_T);
-	private static TypeTemplateParameter tp_Collection_collectNested = createTypeTemplateParameter(t_Collection_collectNested_V);
-	private static TypeTemplateParameter tp_Collection_collect = createTypeTemplateParameter(t_Collection_collect_V);
-	private static TypeTemplateParameter tp_Collection_excludesAll = createTypeTemplateParameter(t_Collection_excludesAll_T2);
-	private static TypeTemplateParameter tp_Collection_flatten = createTypeTemplateParameter(t_Collection_flatten_T2);
-	private static TypeTemplateParameter tp_Collection_includesAll = createTypeTemplateParameter(t_Collection_includesAll_T2);
-	private static TypeTemplateParameter tp_Collection_iterate = createTypeTemplateParameter(t_Collection_iterate_Tacc);
-	private static TypeTemplateParameter tp_Collection_product = createTypeTemplateParameter(t_Collection_product_T2);
-	private static TypeTemplateParameter tp_Collection_selectByKind = createTypeTemplateParameter(t_Collection_selectByKind_TT);
-	private static TypeTemplateParameter tp_Collection_selectByType = createTypeTemplateParameter(t_Collection_selectByType_TT);
-	private static TypeTemplateParameter tp_Collection = createTypeTemplateParameter(t_Collection_T);
-	private static TypeTemplateParameter tp_EnumerationClassifier = createTypeTemplateParameter(t_EnumerationClassifier_T);
-	private static TypeTemplateParameter tp_OclAny_oclAsType = createTypeTemplateParameter(t_OclAny_oclAsType_TT);
-	private static TypeTemplateParameter tp_OclAny_oclIsKindOf = createTypeTemplateParameter(t_OclAny_oclIsKindOf_T);
-	private static TypeTemplateParameter tp_OclAny_oclIsTypeOf = createTypeTemplateParameter(t_OclAny_oclIsTypeOf_T);
-	private static TypeTemplateParameter tp_OrderedSet_flatten = createTypeTemplateParameter(t_OrderedSet_flatten_T2);
-	private static TypeTemplateParameter tp_OrderedSet_selectByKind = createTypeTemplateParameter(t_OrderedSet_selectByKind_TT);
-	private static TypeTemplateParameter tp_OrderedSet_selectByType = createTypeTemplateParameter(t_OrderedSet_selectByType_TT);
-	private static TypeTemplateParameter tp_OrderedSet = createTypeTemplateParameter(t_OrderedSet_T);
-	private static TypeTemplateParameter tp_Sequence_collectNested = createTypeTemplateParameter(t_Sequence_collectNested_V);
-	private static TypeTemplateParameter tp_Sequence_collect = createTypeTemplateParameter(t_Sequence_collect_V);
-	private static TypeTemplateParameter tp_Sequence_flatten = createTypeTemplateParameter(t_Sequence_flatten_T2);
-	private static TypeTemplateParameter tp_Sequence_selectByKind = createTypeTemplateParameter(t_Sequence_selectByKind_TT);
-	private static TypeTemplateParameter tp_Sequence_selectByType = createTypeTemplateParameter(t_Sequence_selectByType_TT);
-	private static TypeTemplateParameter tp_Sequence = createTypeTemplateParameter(t_Sequence_T);
-	private static TypeTemplateParameter tp_Set_flatten = createTypeTemplateParameter(t_Set_flatten_T2);
-	private static TypeTemplateParameter tp_Set_selectByKind = createTypeTemplateParameter(t_Set_selectByKind_TT);
-	private static TypeTemplateParameter tp_Set_selectByType = createTypeTemplateParameter(t_Set_selectByType_TT);
-	private static TypeTemplateParameter tp_Set = createTypeTemplateParameter(t_Set_T);
-	private static TypeTemplateParameter tp_UniqueCollection = createTypeTemplateParameter(t_UniqueCollection_T);
-	
-	private static TemplateSignature ts_UnlimitedNatural_oclAsType = createTemplateSignature(op_UnlimitedNatural_oclAsType, tp_UnlimitedNatural_oclAsType);
-	private static TemplateSignature ts_AnyClassifier = createTemplateSignature(t_AnyClassifier, tp_AnyClassifier);
-	private static TemplateSignature ts_Bag = createTemplateSignature(t_Bag, tp_Bag);
-	private static TemplateSignature ts_Bag_collectNested = createTemplateSignature(it_Bag_collectNested, tp_Bag_collectNested);
-	private static TemplateSignature ts_Bag_collect = createTemplateSignature(it_Bag_collect, tp_Bag_collect);
-	private static TemplateSignature ts_Bag_flatten = createTemplateSignature(op_Bag_flatten, tp_Bag_flatten);
-	private static TemplateSignature ts_Bag_selectByKind = createTemplateSignature(op_Bag_selectByKind, tp_Bag_selectByKind);
-	private static TemplateSignature ts_Bag_selectByType = createTemplateSignature(op_Bag_selectByType, tp_Bag_selectByType);
-	private static TemplateSignature ts_ClassClassifier = createTemplateSignature(t_ClassClassifier, tp_ClassClassifier);
-	private static TemplateSignature ts_CollectionClassifier = createTemplateSignature(t_CollectionClassifier, tp_CollectionClassifier_1, tp_CollectionClassifier);
-	private static TemplateSignature ts_Collection = createTemplateSignature(t_Collection, tp_Collection);
-	private static TemplateSignature ts_Collection_collectNested = createTemplateSignature(it_Collection_collectNested, tp_Collection_collectNested);
-	private static TemplateSignature ts_Collection_collect = createTemplateSignature(it_Collection_collect, tp_Collection_collect);
-	private static TemplateSignature ts_Collection_excludesAll = createTemplateSignature(op_Collection_excludesAll, tp_Collection_excludesAll);
-	private static TemplateSignature ts_Collection_flatten = createTemplateSignature(op_Collection_flatten, tp_Collection_flatten);
-	private static TemplateSignature ts_Collection_includesAll = createTemplateSignature(op_Collection_includesAll, tp_Collection_includesAll);
-	private static TemplateSignature ts_Collection_iterate = createTemplateSignature(it_Collection_iterate, tp_Collection_iterate);
-	private static TemplateSignature ts_Collection_product = createTemplateSignature(op_Collection_product, tp_Collection_product);
-	private static TemplateSignature ts_Collection_selectByKind = createTemplateSignature(op_Collection_selectByKind, tp_Collection_selectByKind);
-	private static TemplateSignature ts_Collection_selectByType = createTemplateSignature(op_Collection_selectByType, tp_Collection_selectByType);
-	private static TemplateSignature ts_EnumerationClassifier = createTemplateSignature(t_EnumerationClassifier, tp_EnumerationClassifier);
-	private static TemplateSignature ts_OclAny_oclAsType = createTemplateSignature(op_OclAny_oclAsType, tp_OclAny_oclAsType);
-	private static TemplateSignature ts_OclAny_oclIsKindOf = createTemplateSignature(op_OclAny_oclIsKindOf, tp_OclAny_oclIsKindOf);
-	private static TemplateSignature ts_OclAny_oclIsTypeOf = createTemplateSignature(op_OclAny_oclIsTypeOf, tp_OclAny_oclIsTypeOf);
-	private static TemplateSignature ts_OrderedSet = createTemplateSignature(t_OrderedSet, tp_OrderedSet);
-	private static TemplateSignature ts_OrderedSet_flatten = createTemplateSignature(op_OrderedSet_flatten, tp_OrderedSet_flatten);
-	private static TemplateSignature ts_OrderedSet_selectByKind = createTemplateSignature(op_OrderedSet_selectByKind, tp_OrderedSet_selectByKind);
-	private static TemplateSignature ts_OrderedSet_selectByType = createTemplateSignature(op_OrderedSet_selectByType, tp_OrderedSet_selectByType);
-	private static TemplateSignature ts_Sequence = createTemplateSignature(t_Sequence, tp_Sequence);
-	private static TemplateSignature ts_Sequence_collectNested = createTemplateSignature(it_Sequence_collectNested, tp_Sequence_collectNested);
-	private static TemplateSignature ts_Sequence_collect = createTemplateSignature(it_Sequence_collect, tp_Sequence_collect);
-	private static TemplateSignature ts_Sequence_flatten = createTemplateSignature(op_Sequence_flatten, tp_Sequence_flatten);
-	private static TemplateSignature ts_Sequence_selectByKind = createTemplateSignature(op_Sequence_selectByKind, tp_Sequence_selectByKind);
-	private static TemplateSignature ts_Sequence_selectByType = createTemplateSignature(op_Sequence_selectByType, tp_Sequence_selectByType);
-	private static TemplateSignature ts_Set = createTemplateSignature(t_Set, tp_Set);
-	private static TemplateSignature ts_Set_flatten = createTemplateSignature(op_Set_flatten, tp_Set_flatten);
-	private static TemplateSignature ts_Set_selectByKind = createTemplateSignature(op_Set_selectByKind, tp_Set_selectByKind);
-	private static TemplateSignature ts_Set_selectByType = createTemplateSignature(op_Set_selectByType, tp_Set_selectByType);
-	private static TemplateSignature ts_UniqueCollection = createTemplateSignature(t_UniqueCollection, tp_UniqueCollection);
-	
-	private static Package pk_$$ = createPackage("$$", null, null);
-	
-	private static TemplateParameterSubstitution tps_AnyClassifier_OclInvalid = createTemplateParameterSubstitution(tp_AnyClassifier, t_OclInvalid);
-	private static TemplateParameterSubstitution tps_AnyClassifier_OrderedSet_selectByType_TT = createTemplateParameterSubstitution(tp_AnyClassifier, t_OrderedSet_selectByType_TT);
-	private static TemplateParameterSubstitution tps_AnyClassifier_Set_selectByType_TT = createTemplateParameterSubstitution(tp_AnyClassifier, t_Set_selectByType_TT);
-	private static TemplateParameterSubstitution tps_AnyClassifier_Sequence_selectByType_TT = createTemplateParameterSubstitution(tp_AnyClassifier, t_Sequence_selectByType_TT);
-	private static TemplateParameterSubstitution tps_AnyClassifier_Sequence_selectByKind_TT = createTemplateParameterSubstitution(tp_AnyClassifier, t_Sequence_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_AnyClassifier_Collection_selectByType_TT = createTemplateParameterSubstitution(tp_AnyClassifier, t_Collection_selectByType_TT);
-	private static TemplateParameterSubstitution tps_AnyClassifier_Bag_selectByType_TT = createTemplateParameterSubstitution(tp_AnyClassifier, t_Bag_selectByType_TT);
-	private static TemplateParameterSubstitution tps_AnyClassifier_OclAny_oclIsTypeOf_T = createTemplateParameterSubstitution(tp_AnyClassifier, t_OclAny_oclIsTypeOf_T);
-	private static TemplateParameterSubstitution tps_AnyClassifier_EnumerationClassifier_T = createTemplateParameterSubstitution(tp_AnyClassifier, t_EnumerationClassifier_T);
-	private static TemplateParameterSubstitution tps_AnyClassifier_OclSelf = createTemplateParameterSubstitution(tp_AnyClassifier, t_OclSelf);
-	private static TemplateParameterSubstitution tps_AnyClassifier_OclVoid = createTemplateParameterSubstitution(tp_AnyClassifier, t_OclVoid);
-	private static TemplateParameterSubstitution tps_AnyClassifier_OrderedSet_selectByKind_TT = createTemplateParameterSubstitution(tp_AnyClassifier, t_OrderedSet_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_AnyClassifier_OclAny_oclIsKindOf_T = createTemplateParameterSubstitution(tp_AnyClassifier, t_OclAny_oclIsKindOf_T);
-	private static TemplateParameterSubstitution tps_AnyClassifier_OclInvalid_1 = createTemplateParameterSubstitution(tp_AnyClassifier, t_OclInvalid);
-	private static TemplateParameterSubstitution tps_AnyClassifier_CollectionClassifier_T = createTemplateParameterSubstitution(tp_AnyClassifier, t_CollectionClassifier_T);
-	private static TemplateParameterSubstitution tps_AnyClassifier_ClassClassifier_T = createTemplateParameterSubstitution(tp_AnyClassifier, t_ClassClassifier_T);
-	private static TemplateParameterSubstitution tps_AnyClassifier_Bag_selectByKind_TT = createTemplateParameterSubstitution(tp_AnyClassifier, t_Bag_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_AnyClassifier_OclAny_oclAsType_TT = createTemplateParameterSubstitution(tp_AnyClassifier, t_OclAny_oclAsType_TT);
-	private static TemplateParameterSubstitution tps_AnyClassifier_Collection_selectByKind_TT = createTemplateParameterSubstitution(tp_AnyClassifier, t_Collection_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_AnyClassifier_UnlimitedNatural_oclAsType_TT = createTemplateParameterSubstitution(tp_AnyClassifier, t_UnlimitedNatural_oclAsType_TT);
-	private static TemplateParameterSubstitution tps_AnyClassifier_Set_selectByKind_TT = createTemplateParameterSubstitution(tp_AnyClassifier, t_Set_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_Bag_UniqueCollection_T = createTemplateParameterSubstitution(tp_Bag, t_UniqueCollection_T);
-	private static TemplateParameterSubstitution tps_Bag_Set_flatten_T2 = createTemplateParameterSubstitution(tp_Bag, t_Set_flatten_T2);
-	private static TemplateParameterSubstitution tps_Bag_Bag_selectByKind_TT = createTemplateParameterSubstitution(tp_Bag, t_Bag_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_Bag_Bag_selectByType_TT = createTemplateParameterSubstitution(tp_Bag, t_Bag_selectByType_TT);
-	private static TemplateParameterSubstitution tps_Bag_OclSelf = createTemplateParameterSubstitution(tp_Bag, t_OclSelf);
-	private static TemplateParameterSubstitution tps_Bag_Sequence_T = createTemplateParameterSubstitution(tp_Bag, t_Sequence_T);
-	private static TemplateParameterSubstitution tps_Bag_UniqueCollection_T_1 = createTemplateParameterSubstitution(tp_Bag, t_UniqueCollection_T);
-	private static TemplateParameterSubstitution tps_Bag_Set_T = createTemplateParameterSubstitution(tp_Bag, t_Set_T);
-	private static TemplateParameterSubstitution tps_Bag_Tuple = createTemplateParameterSubstitution(tp_Bag, t_Tuple);
-	private static TemplateParameterSubstitution tps_Bag_Bag_T = createTemplateParameterSubstitution(tp_Bag, t_Bag_T);
-	private static TemplateParameterSubstitution tps_Bag_OclSelf_1 = createTemplateParameterSubstitution(tp_Bag, t_OclSelf);
-	private static TemplateParameterSubstitution tps_Bag_OclElement = createTemplateParameterSubstitution(tp_Bag, t_OclElement);
-	private static TemplateParameterSubstitution tps_Bag_OclSelf_2 = createTemplateParameterSubstitution(tp_Bag, t_OclSelf);
-	private static TemplateParameterSubstitution tps_Bag_OclSelf_3 = createTemplateParameterSubstitution(tp_Bag, t_OclSelf);
-	private static TemplateParameterSubstitution tps_Bag_Bag_T_1 = createTemplateParameterSubstitution(tp_Bag, t_Bag_T);
-	private static TemplateParameterSubstitution tps_Bag_Bag_flatten_T2 = createTemplateParameterSubstitution(tp_Bag, t_Bag_flatten_T2);
-	private static TemplateParameterSubstitution tps_Bag_Tuple_1 = createTemplateParameterSubstitution(tp_Bag, t_Tuple);
-	private static TemplateParameterSubstitution tps_Bag_OclSelf_4 = createTemplateParameterSubstitution(tp_Bag, t_OclSelf);
-	private static TemplateParameterSubstitution tps_Bag_Collection_T = createTemplateParameterSubstitution(tp_Bag, t_Collection_T);
-	private static TemplateParameterSubstitution tps_Bag_Bag_collect_V = createTemplateParameterSubstitution(tp_Bag, t_Bag_collect_V);
-	private static TemplateParameterSubstitution tps_Bag_Set_selectByKind_TT = createTemplateParameterSubstitution(tp_Bag, t_Set_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_Bag_Bag_T_2 = createTemplateParameterSubstitution(tp_Bag, t_Bag_T);
-	private static TemplateParameterSubstitution tps_Bag_OclSelf_5 = createTemplateParameterSubstitution(tp_Bag, t_OclSelf);
-	private static TemplateParameterSubstitution tps_Bag_Bag_T_3 = createTemplateParameterSubstitution(tp_Bag, t_Bag_T);
-	private static TemplateParameterSubstitution tps_Bag_Set_selectByType_TT = createTemplateParameterSubstitution(tp_Bag, t_Set_selectByType_TT);
-	private static TemplateParameterSubstitution tps_ClassClassifier_OclSelf = createTemplateParameterSubstitution(tp_ClassClassifier, t_OclSelf);
-	private static TemplateParameterSubstitution tps_ClassClassifier_OclVoid = createTemplateParameterSubstitution(tp_ClassClassifier, t_OclVoid);
-	private static TemplateParameterSubstitution tps_ClassClassifier_OclInvalid = createTemplateParameterSubstitution(tp_ClassClassifier, t_OclInvalid);
-	private static TemplateParameterSubstitution tps_CollectionClassifier_Collection_T_OclSelf = createTemplateParameterSubstitution(tp_CollectionClassifier, t_Collection_T);
-	private static TemplateParameterSubstitution tps_CollectionClassifier_Collection_T_OclSelf_1 = createTemplateParameterSubstitution(tp_CollectionClassifier_1, t_OclSelf);
-	private static TemplateParameterSubstitution tps_Collection_UniqueCollection_T = createTemplateParameterSubstitution(tp_Collection, t_UniqueCollection_T);
-	private static TemplateParameterSubstitution tps_Collection_Tuple = createTemplateParameterSubstitution(tp_Collection, t_Tuple_3);
-	private static TemplateParameterSubstitution tps_Collection_OrderedSet_T = createTemplateParameterSubstitution(tp_Collection, t_OrderedSet_T);
-	private static TemplateParameterSubstitution tps_Collection_EnumerationLiteral = createTemplateParameterSubstitution(tp_Collection, t_EnumerationLiteral);
-	private static TemplateParameterSubstitution tps_Collection_Bag_selectByKind_TT = createTemplateParameterSubstitution(tp_Collection, t_Bag_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_Collection_Integer = createTemplateParameterSubstitution(tp_Collection, t_Integer);
-	private static TemplateParameterSubstitution tps_Collection_Collection_T = createTemplateParameterSubstitution(tp_Collection, t_Collection_T);
-	private static TemplateParameterSubstitution tps_Collection_Set_selectByKind_TT = createTemplateParameterSubstitution(tp_Collection, t_Set_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_Collection_Set_selectByType_TT = createTemplateParameterSubstitution(tp_Collection, t_Set_selectByType_TT);
-	private static TemplateParameterSubstitution tps_Collection_Bag_T = createTemplateParameterSubstitution(tp_Collection, t_Bag_T);
-	private static TemplateParameterSubstitution tps_Collection_OrderedSet_T_1 = createTemplateParameterSubstitution(tp_Collection, t_OrderedSet_T);
-	private static TemplateParameterSubstitution tps_Collection_Bag_collect_V = createTemplateParameterSubstitution(tp_Collection, t_Bag_collect_V);
-	private static TemplateParameterSubstitution tps_Collection_Set_T = createTemplateParameterSubstitution(tp_Collection, t_Set_T);
-	private static TemplateParameterSubstitution tps_Collection_OclAny = createTemplateParameterSubstitution(tp_Collection, t_OclAny);
-	private static TemplateParameterSubstitution tps_Collection_Set_T_1 = createTemplateParameterSubstitution(tp_Collection, t_Set_T);
-	private static TemplateParameterSubstitution tps_Collection_Bag_T_1 = createTemplateParameterSubstitution(tp_Collection, t_Bag_T);
-	private static TemplateParameterSubstitution tps_Collection_Collection_excludesAll_T2 = createTemplateParameterSubstitution(tp_Collection, t_Collection_excludesAll_T2);
-	private static TemplateParameterSubstitution tps_Collection_Collection_includesAll_T2 = createTemplateParameterSubstitution(tp_Collection, t_Collection_includesAll_T2);
-	private static TemplateParameterSubstitution tps_Collection_OrderedSet_flatten_T2 = createTemplateParameterSubstitution(tp_Collection, t_OrderedSet_flatten_T2);
-	private static TemplateParameterSubstitution tps_Collection_Collection_selectByKind_TT = createTemplateParameterSubstitution(tp_Collection, t_Collection_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_Collection_OclSelf = createTemplateParameterSubstitution(tp_Collection, t_OclSelf);
-	private static TemplateParameterSubstitution tps_Collection_Sequence_selectByKind_TT = createTemplateParameterSubstitution(tp_Collection, t_Sequence_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_Collection_Sequence_flatten_T2 = createTemplateParameterSubstitution(tp_Collection, t_Sequence_flatten_T2);
-	private static TemplateParameterSubstitution tps_Collection_Sequence_selectByType_TT = createTemplateParameterSubstitution(tp_Collection, t_Sequence_selectByType_TT);
-	private static TemplateParameterSubstitution tps_Collection_Sequence_collect_V = createTemplateParameterSubstitution(tp_Collection, t_Sequence_collect_V);
-	private static TemplateParameterSubstitution tps_Collection_Collection_flatten_T2 = createTemplateParameterSubstitution(tp_Collection, t_Collection_flatten_T2);
-	private static TemplateParameterSubstitution tps_Collection_Sequence_T = createTemplateParameterSubstitution(tp_Collection, t_Sequence_T);
-	private static TemplateParameterSubstitution tps_Collection_Collection_selectByType_TT = createTemplateParameterSubstitution(tp_Collection, t_Collection_selectByType_TT);
-	private static TemplateParameterSubstitution tps_Collection_Bag_selectByType_TT = createTemplateParameterSubstitution(tp_Collection, t_Bag_selectByType_TT);
-	private static TemplateParameterSubstitution tps_Collection_OclAny_1 = createTemplateParameterSubstitution(tp_Collection, t_OclAny);
-	private static TemplateParameterSubstitution tps_Collection_Collection_collect_V = createTemplateParameterSubstitution(tp_Collection, t_Collection_collect_V);
-	private static TemplateParameterSubstitution tps_Collection_OclElement = createTemplateParameterSubstitution(tp_Collection, t_OclElement);
-	private static TemplateParameterSubstitution tps_Collection_Tuple_1 = createTemplateParameterSubstitution(tp_Collection, t_Tuple_3);
-	private static TemplateParameterSubstitution tps_Collection_Collection_T_1 = createTemplateParameterSubstitution(tp_Collection, t_Collection_T);
-	private static TemplateParameterSubstitution tps_Collection_Sequence_T_1 = createTemplateParameterSubstitution(tp_Collection, t_Sequence_T);
-	private static TemplateParameterSubstitution tps_Collection_Bag_T_2 = createTemplateParameterSubstitution(tp_Collection, t_Bag_T);
-	private static TemplateParameterSubstitution tps_Collection_OclAny_2 = createTemplateParameterSubstitution(tp_Collection, t_OclAny);
-	private static TemplateParameterSubstitution tps_Collection_String = createTemplateParameterSubstitution(tp_Collection, t_String);
-	private static TemplateParameterSubstitution tps_Collection_UniqueCollection_T_1 = createTemplateParameterSubstitution(tp_Collection, t_UniqueCollection_T);
-	private static TemplateParameterSubstitution tps_Collection_OrderedSet_selectByKind_TT = createTemplateParameterSubstitution(tp_Collection, t_OrderedSet_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_Collection_OrderedSet_selectByType_TT = createTemplateParameterSubstitution(tp_Collection, t_OrderedSet_selectByType_TT);
-	private static TemplateParameterSubstitution tps_Collection_OclAny_3 = createTemplateParameterSubstitution(tp_Collection, t_OclAny);
-	private static TemplateParameterSubstitution tps_Collection_Collection_T_2 = createTemplateParameterSubstitution(tp_Collection, t_Collection_T);
-	private static TemplateParameterSubstitution tps_Collection_Collection_product_T2 = createTemplateParameterSubstitution(tp_Collection, t_Collection_product_T2);
-	private static TemplateParameterSubstitution tps_Collection_Set_flatten_T2 = createTemplateParameterSubstitution(tp_Collection, t_Set_flatten_T2);
-	private static TemplateParameterSubstitution tps_Collection_Bag_flatten_T2 = createTemplateParameterSubstitution(tp_Collection, t_Bag_flatten_T2);
-	private static TemplateParameterSubstitution tps_EnumerationClassifier_OclSelf = createTemplateParameterSubstitution(tp_EnumerationClassifier, t_OclSelf);
-	private static TemplateParameterSubstitution tps_OrderedSet_OrderedSet_selectByKind_TT = createTemplateParameterSubstitution(tp_OrderedSet, t_OrderedSet_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_OrderedSet_Set_T = createTemplateParameterSubstitution(tp_OrderedSet, t_Set_T);
-	private static TemplateParameterSubstitution tps_OrderedSet_Sequence_T = createTemplateParameterSubstitution(tp_OrderedSet, t_Sequence_T);
-	private static TemplateParameterSubstitution tps_OrderedSet_OrderedSet_flatten_T2 = createTemplateParameterSubstitution(tp_OrderedSet, t_OrderedSet_flatten_T2);
-	private static TemplateParameterSubstitution tps_OrderedSet_UniqueCollection_T = createTemplateParameterSubstitution(tp_OrderedSet, t_UniqueCollection_T);
-	private static TemplateParameterSubstitution tps_OrderedSet_OrderedSet_selectByType_TT = createTemplateParameterSubstitution(tp_OrderedSet, t_OrderedSet_selectByType_TT);
-	private static TemplateParameterSubstitution tps_OrderedSet_EnumerationLiteral = createTemplateParameterSubstitution(tp_OrderedSet, t_EnumerationLiteral);
-	private static TemplateParameterSubstitution tps_OrderedSet_Collection_T = createTemplateParameterSubstitution(tp_OrderedSet, t_Collection_T);
-	private static TemplateParameterSubstitution tps_Sequence_Bag_T = createTemplateParameterSubstitution(tp_Sequence, t_Bag_T);
-	private static TemplateParameterSubstitution tps_Sequence_Collection_T = createTemplateParameterSubstitution(tp_Sequence, t_Collection_T);
-	private static TemplateParameterSubstitution tps_Sequence_OrderedSet_selectByType_TT = createTemplateParameterSubstitution(tp_Sequence, t_OrderedSet_selectByType_TT);
-	private static TemplateParameterSubstitution tps_Sequence_Sequence_T = createTemplateParameterSubstitution(tp_Sequence, t_Sequence_T);
-	private static TemplateParameterSubstitution tps_Sequence_OrderedSet_T = createTemplateParameterSubstitution(tp_Sequence, t_OrderedSet_T);
-	private static TemplateParameterSubstitution tps_Sequence_Sequence_T_1 = createTemplateParameterSubstitution(tp_Sequence, t_Sequence_T);
-	private static TemplateParameterSubstitution tps_Sequence_Sequence_collect_V = createTemplateParameterSubstitution(tp_Sequence, t_Sequence_collect_V);
-	private static TemplateParameterSubstitution tps_Sequence_Sequence_flatten_T2 = createTemplateParameterSubstitution(tp_Sequence, t_Sequence_flatten_T2);
-	private static TemplateParameterSubstitution tps_Sequence_OrderedSet_flatten_T2 = createTemplateParameterSubstitution(tp_Sequence, t_OrderedSet_flatten_T2);
-	private static TemplateParameterSubstitution tps_Sequence_Sequence_selectByKind_TT = createTemplateParameterSubstitution(tp_Sequence, t_Sequence_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_Sequence_String = createTemplateParameterSubstitution(tp_Sequence, t_String);
-	private static TemplateParameterSubstitution tps_Sequence_OrderedSet_selectByKind_TT = createTemplateParameterSubstitution(tp_Sequence, t_OrderedSet_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_Sequence_UniqueCollection_T = createTemplateParameterSubstitution(tp_Sequence, t_UniqueCollection_T);
-	private static TemplateParameterSubstitution tps_Sequence_Sequence_T_2 = createTemplateParameterSubstitution(tp_Sequence, t_Sequence_T);
-	private static TemplateParameterSubstitution tps_Sequence_EnumerationLiteral = createTemplateParameterSubstitution(tp_Sequence, t_EnumerationLiteral);
-	private static TemplateParameterSubstitution tps_Sequence_Set_T = createTemplateParameterSubstitution(tp_Sequence, t_Set_T);
-	private static TemplateParameterSubstitution tps_Sequence_Integer = createTemplateParameterSubstitution(tp_Sequence, t_Integer);
-	private static TemplateParameterSubstitution tps_Sequence_Sequence_selectByType_TT = createTemplateParameterSubstitution(tp_Sequence, t_Sequence_selectByType_TT);
-	private static TemplateParameterSubstitution tps_Set_Collection_T = createTemplateParameterSubstitution(tp_Set, t_Collection_T);
-	private static TemplateParameterSubstitution tps_Set_Set_selectByKind_TT = createTemplateParameterSubstitution(tp_Set, t_Set_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_Set_Set_selectByType_TT = createTemplateParameterSubstitution(tp_Set, t_Set_selectByType_TT);
-	private static TemplateParameterSubstitution tps_Set_UniqueCollection_T = createTemplateParameterSubstitution(tp_Set, t_UniqueCollection_T);
-	private static TemplateParameterSubstitution tps_Set_Bag_T = createTemplateParameterSubstitution(tp_Set, t_Bag_T);
-	private static TemplateParameterSubstitution tps_Set_OclElement = createTemplateParameterSubstitution(tp_Set, t_OclElement);
-	private static TemplateParameterSubstitution tps_Set_Tuple = createTemplateParameterSubstitution(tp_Set, t_Tuple);
-	private static TemplateParameterSubstitution tps_Set_Set_flatten_T2 = createTemplateParameterSubstitution(tp_Set, t_Set_flatten_T2);
-	private static TemplateParameterSubstitution tps_Set_OclSelf = createTemplateParameterSubstitution(tp_Set, t_OclSelf);
-	private static TemplateParameterSubstitution tps_UniqueCollection_EnumerationLiteral = createTemplateParameterSubstitution(tp_UniqueCollection, t_EnumerationLiteral);
-	private static TemplateParameterSubstitution tps_UniqueCollection_Collection_T = createTemplateParameterSubstitution(tp_UniqueCollection, t_Collection_T);
-	private static TemplateParameterSubstitution tps_UniqueCollection_OrderedSet_flatten_T2 = createTemplateParameterSubstitution(tp_UniqueCollection, t_OrderedSet_flatten_T2);
-	private static TemplateParameterSubstitution tps_UniqueCollection_OclSelf = createTemplateParameterSubstitution(tp_UniqueCollection, t_OclSelf);
-	private static TemplateParameterSubstitution tps_UniqueCollection_OrderedSet_selectByKind_TT = createTemplateParameterSubstitution(tp_UniqueCollection, t_OrderedSet_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_UniqueCollection_OclSelf_1 = createTemplateParameterSubstitution(tp_UniqueCollection, t_OclSelf);
-	private static TemplateParameterSubstitution tps_UniqueCollection_Set_selectByKind_TT = createTemplateParameterSubstitution(tp_UniqueCollection, t_Set_selectByKind_TT);
-	private static TemplateParameterSubstitution tps_UniqueCollection_OclElement = createTemplateParameterSubstitution(tp_UniqueCollection, t_OclElement);
-	private static TemplateParameterSubstitution tps_UniqueCollection_OclSelf_2 = createTemplateParameterSubstitution(tp_UniqueCollection, t_OclSelf);
-	private static TemplateParameterSubstitution tps_UniqueCollection_OclSelf_3 = createTemplateParameterSubstitution(tp_UniqueCollection, t_OclSelf);
-	private static TemplateParameterSubstitution tps_UniqueCollection_Sequence_T = createTemplateParameterSubstitution(tp_UniqueCollection, t_Sequence_T);
-	private static TemplateParameterSubstitution tps_UniqueCollection_UniqueCollection_T = createTemplateParameterSubstitution(tp_UniqueCollection, t_UniqueCollection_T);
-	private static TemplateParameterSubstitution tps_UniqueCollection_Set_T = createTemplateParameterSubstitution(tp_UniqueCollection, t_Set_T);
-	private static TemplateParameterSubstitution tps_UniqueCollection_OclSelf_4 = createTemplateParameterSubstitution(tp_UniqueCollection, t_OclSelf);
-	private static TemplateParameterSubstitution tps_UniqueCollection_Set_selectByType_TT = createTemplateParameterSubstitution(tp_UniqueCollection, t_Set_selectByType_TT);
-	private static TemplateParameterSubstitution tps_UniqueCollection_Bag_T = createTemplateParameterSubstitution(tp_UniqueCollection, t_Bag_T);
-	private static TemplateParameterSubstitution tps_UniqueCollection_Tuple = createTemplateParameterSubstitution(tp_UniqueCollection, t_Tuple);
-	private static TemplateParameterSubstitution tps_UniqueCollection_Sequence_T_1 = createTemplateParameterSubstitution(tp_UniqueCollection, t_Sequence_T);
-	private static TemplateParameterSubstitution tps_UniqueCollection_Set_flatten_T2 = createTemplateParameterSubstitution(tp_UniqueCollection, t_Set_flatten_T2);
-	private static TemplateParameterSubstitution tps_UniqueCollection_Bag_T_1 = createTemplateParameterSubstitution(tp_UniqueCollection, t_Bag_T);
-	private static TemplateParameterSubstitution tps_UniqueCollection_Bag_T_2 = createTemplateParameterSubstitution(tp_UniqueCollection, t_Bag_T);
-	private static TemplateParameterSubstitution tps_UniqueCollection_OrderedSet_T = createTemplateParameterSubstitution(tp_UniqueCollection, t_OrderedSet_T);
-	private static TemplateParameterSubstitution tps_UniqueCollection_OrderedSet_selectByType_TT = createTemplateParameterSubstitution(tp_UniqueCollection, t_OrderedSet_selectByType_TT);
-	private static TemplateParameterSubstitution tps_UniqueCollection_Bag_T_3 = createTemplateParameterSubstitution(tp_UniqueCollection, t_Bag_T);
-	private static TemplateParameterSubstitution tps_UniqueCollection_OclAny = createTemplateParameterSubstitution(tp_UniqueCollection, t_OclAny);
-	private static TemplateParameterSubstitution tps_UniqueCollection_UniqueCollection_T_1 = createTemplateParameterSubstitution(tp_UniqueCollection, t_UniqueCollection_T);
-	private static TemplateParameterSubstitution tps_UniqueCollection_Sequence_T_2 = createTemplateParameterSubstitution(tp_UniqueCollection, t_Sequence_T);
-	private static TemplateParameterSubstitution tps_UniqueCollection_OclSelf_5 = createTemplateParameterSubstitution(tp_UniqueCollection, t_OclSelf);
-	private static TemplateParameterSubstitution tps_UniqueCollection_Tuple_1 = createTemplateParameterSubstitution(tp_UniqueCollection, t_Tuple);
-	
-	private static TemplateBinding tb_AnyClassifier_Set_selectByKind_TT = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_Set_selectByKind_TT);
-	private static TemplateBinding tb_AnyClassifier_OrderedSet_selectByKind_TT = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_OrderedSet_selectByKind_TT);
-	private static TemplateBinding tb_AnyClassifier_Sequence_selectByType_TT = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_Sequence_selectByType_TT);
-	private static TemplateBinding tb_AnyClassifier_OclVoid = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_OclVoid);
-	private static TemplateBinding tb_AnyClassifier_Set_selectByType_TT = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_Set_selectByType_TT);
-	private static TemplateBinding tb_AnyClassifier_ClassClassifier_T = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_ClassClassifier_T);
-	private static TemplateBinding tb_AnyClassifier_CollectionClassifier_T = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_CollectionClassifier_T);
-	private static TemplateBinding tb_AnyClassifier_Bag_selectByKind_TT = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_Bag_selectByKind_TT);
-	private static TemplateBinding tb_AnyClassifier_Sequence_selectByKind_TT = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_Sequence_selectByKind_TT);
-	private static TemplateBinding tb_AnyClassifier_Collection_selectByType_TT = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_Collection_selectByType_TT);
-	private static TemplateBinding tb_AnyClassifier_OclSelf = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_OclSelf);
-	private static TemplateBinding tb_AnyClassifier_OclInvalid = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_OclInvalid_1);
-	private static TemplateBinding tb_AnyClassifier_Bag_selectByType_TT = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_Bag_selectByType_TT);
-	private static TemplateBinding tb_AnyClassifier_OclAny_oclAsType_TT = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_OclAny_oclAsType_TT);
-	private static TemplateBinding tb_AnyClassifier_OclInvalid_1 = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_OclInvalid);
-	private static TemplateBinding tb_AnyClassifier_Collection_selectByKind_TT = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_Collection_selectByKind_TT);
-	private static TemplateBinding tb_AnyClassifier_OclAny_oclIsTypeOf_T = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_OclAny_oclIsTypeOf_T);
-	private static TemplateBinding tb_AnyClassifier_UnlimitedNatural_oclAsType_TT = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_UnlimitedNatural_oclAsType_TT);
-	private static TemplateBinding tb_AnyClassifier_OclAny_oclIsKindOf_T = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_OclAny_oclIsKindOf_T);
-	private static TemplateBinding tb_AnyClassifier_OrderedSet_selectByType_TT = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_OrderedSet_selectByType_TT);
-	private static TemplateBinding tb_AnyClassifier_EnumerationClassifier_T = createTemplateBinding(ts_AnyClassifier, tps_AnyClassifier_EnumerationClassifier_T);
-	private static TemplateBinding tb_Bag_Set_T = createTemplateBinding(ts_Bag, tps_Bag_Set_T);
-	private static TemplateBinding tb_Bag_OclSelf = createTemplateBinding(ts_Bag, tps_Bag_OclSelf_2);
-	private static TemplateBinding tb_Bag_Bag_T = createTemplateBinding(ts_Bag, tps_Bag_Bag_T_3);
-	private static TemplateBinding tb_Bag_Tuple = createTemplateBinding(ts_Bag, tps_Bag_Tuple);
-	private static TemplateBinding tb_Bag_Bag_selectByType_TT = createTemplateBinding(ts_Bag, tps_Bag_Bag_selectByType_TT);
-	private static TemplateBinding tb_Bag_Set_selectByKind_TT = createTemplateBinding(ts_Bag, tps_Bag_Set_selectByKind_TT);
-	private static TemplateBinding tb_Bag_UniqueCollection_T = createTemplateBinding(ts_Bag, tps_Bag_UniqueCollection_T_1);
-	private static TemplateBinding tb_Bag_Tuple_1 = createTemplateBinding(ts_Bag, tps_Bag_Tuple_1);
-	private static TemplateBinding tb_Bag_Bag_T_1 = createTemplateBinding(ts_Bag, tps_Bag_Bag_T);
-	private static TemplateBinding tb_Bag_OclSelf_1 = createTemplateBinding(ts_Bag, tps_Bag_OclSelf_1);
-	private static TemplateBinding tb_Bag_Bag_selectByKind_TT = createTemplateBinding(ts_Bag, tps_Bag_Bag_selectByKind_TT);
-	private static TemplateBinding tb_Bag_OclSelf_2 = createTemplateBinding(ts_Bag, tps_Bag_OclSelf);
-	private static TemplateBinding tb_Bag_Bag_flatten_T2 = createTemplateBinding(ts_Bag, tps_Bag_Bag_flatten_T2);
-	private static TemplateBinding tb_Bag_OclSelf_3 = createTemplateBinding(ts_Bag, tps_Bag_OclSelf_5);
-	private static TemplateBinding tb_Bag_Bag_collect_V = createTemplateBinding(ts_Bag, tps_Bag_Bag_collect_V);
-	private static TemplateBinding tb_Bag_OclSelf_4 = createTemplateBinding(ts_Bag, tps_Bag_OclSelf_4);
-	private static TemplateBinding tb_Bag_Collection_T = createTemplateBinding(ts_Bag, tps_Bag_Collection_T);
-	private static TemplateBinding tb_Bag_Bag_T_2 = createTemplateBinding(ts_Bag, tps_Bag_Bag_T_1);
-	private static TemplateBinding tb_Bag_UniqueCollection_T_1 = createTemplateBinding(ts_Bag, tps_Bag_UniqueCollection_T);
-	private static TemplateBinding tb_Bag_Sequence_T = createTemplateBinding(ts_Bag, tps_Bag_Sequence_T);
-	private static TemplateBinding tb_Bag_OclElement = createTemplateBinding(ts_Bag, tps_Bag_OclElement);
-	private static TemplateBinding tb_Bag_Bag_T_3 = createTemplateBinding(ts_Bag, tps_Bag_Bag_T_2);
-	private static TemplateBinding tb_Bag_OclSelf_5 = createTemplateBinding(ts_Bag, tps_Bag_OclSelf_3);
-	private static TemplateBinding tb_Bag_Set_selectByType_TT = createTemplateBinding(ts_Bag, tps_Bag_Set_selectByType_TT);
-	private static TemplateBinding tb_Bag_Set_flatten_T2 = createTemplateBinding(ts_Bag, tps_Bag_Set_flatten_T2);
-	private static TemplateBinding tb_ClassClassifier_OclSelf = createTemplateBinding(ts_ClassClassifier, tps_ClassClassifier_OclSelf);
-	private static TemplateBinding tb_ClassClassifier_OclInvalid = createTemplateBinding(ts_ClassClassifier, tps_ClassClassifier_OclInvalid);
-	private static TemplateBinding tb_ClassClassifier_OclVoid = createTemplateBinding(ts_ClassClassifier, tps_ClassClassifier_OclVoid);
-	private static TemplateBinding tb_CollectionClassifier_Collection_T_OclSelf = createTemplateBinding(ts_CollectionClassifier, tps_CollectionClassifier_Collection_T_OclSelf, tps_CollectionClassifier_Collection_T_OclSelf_1);
-	private static TemplateBinding tb_Collection_OrderedSet_selectByKind_TT = createTemplateBinding(ts_Collection, tps_Collection_OrderedSet_selectByKind_TT);
-	private static TemplateBinding tb_Collection_Bag_selectByType_TT = createTemplateBinding(ts_Collection, tps_Collection_Bag_selectByType_TT);
-	private static TemplateBinding tb_Collection_Collection_product_T2 = createTemplateBinding(ts_Collection, tps_Collection_Collection_product_T2);
-	private static TemplateBinding tb_Collection_Sequence_collect_V = createTemplateBinding(ts_Collection, tps_Collection_Sequence_collect_V);
-	private static TemplateBinding tb_Collection_Bag_flatten_T2 = createTemplateBinding(ts_Collection, tps_Collection_Bag_flatten_T2);
-	private static TemplateBinding tb_Collection_OrderedSet_T = createTemplateBinding(ts_Collection, tps_Collection_OrderedSet_T);
-	private static TemplateBinding tb_Collection_Bag_selectByKind_TT = createTemplateBinding(ts_Collection, tps_Collection_Bag_selectByKind_TT);
-	private static TemplateBinding tb_Collection_OclElement = createTemplateBinding(ts_Collection, tps_Collection_OclElement);
-	private static TemplateBinding tb_Collection_Sequence_T = createTemplateBinding(ts_Collection, tps_Collection_Sequence_T);
-	private static TemplateBinding tb_Collection_Set_selectByType_TT = createTemplateBinding(ts_Collection, tps_Collection_Set_selectByType_TT);
-	private static TemplateBinding tb_Collection_Tuple = createTemplateBinding(ts_Collection, tps_Collection_Tuple_1);
-	private static TemplateBinding tb_Collection_Tuple_1 = createTemplateBinding(ts_Collection, tps_Collection_Tuple);
-	private static TemplateBinding tb_Collection_Collection_selectByKind_TT = createTemplateBinding(ts_Collection, tps_Collection_Collection_selectByKind_TT);
-	private static TemplateBinding tb_Collection_UniqueCollection_T = createTemplateBinding(ts_Collection, tps_Collection_UniqueCollection_T_1);
-	private static TemplateBinding tb_Collection_OrderedSet_T_1 = createTemplateBinding(ts_Collection, tps_Collection_OrderedSet_T_1);
-	private static TemplateBinding tb_Collection_OclAny = createTemplateBinding(ts_Collection, tps_Collection_OclAny_3);
-	private static TemplateBinding tb_Collection_Sequence_selectByKind_TT = createTemplateBinding(ts_Collection, tps_Collection_Sequence_selectByKind_TT);
-	private static TemplateBinding tb_Collection_Collection_includesAll_T2 = createTemplateBinding(ts_Collection, tps_Collection_Collection_includesAll_T2);
-	private static TemplateBinding tb_Collection_Sequence_selectByType_TT = createTemplateBinding(ts_Collection, tps_Collection_Sequence_selectByType_TT);
-	private static TemplateBinding tb_Collection_Set_T = createTemplateBinding(ts_Collection, tps_Collection_Set_T_1);
-	private static TemplateBinding tb_Collection_Set_flatten_T2 = createTemplateBinding(ts_Collection, tps_Collection_Set_flatten_T2);
-	private static TemplateBinding tb_Collection_EnumerationLiteral = createTemplateBinding(ts_Collection, tps_Collection_EnumerationLiteral);
-	private static TemplateBinding tb_Collection_OrderedSet_flatten_T2 = createTemplateBinding(ts_Collection, tps_Collection_OrderedSet_flatten_T2);
-	private static TemplateBinding tb_Collection_Bag_T = createTemplateBinding(ts_Collection, tps_Collection_Bag_T_1);
-	private static TemplateBinding tb_Collection_Collection_T = createTemplateBinding(ts_Collection, tps_Collection_Collection_T);
-	private static TemplateBinding tb_Collection_Collection_T_1 = createTemplateBinding(ts_Collection, tps_Collection_Collection_T_2);
-	private static TemplateBinding tb_Collection_OclAny_1 = createTemplateBinding(ts_Collection, tps_Collection_OclAny);
-	private static TemplateBinding tb_Collection_Collection_T_2 = createTemplateBinding(ts_Collection, tps_Collection_Collection_T_1);
-	private static TemplateBinding tb_Collection_Set_T_1 = createTemplateBinding(ts_Collection, tps_Collection_Set_T);
-	private static TemplateBinding tb_Collection_Bag_T_1 = createTemplateBinding(ts_Collection, tps_Collection_Bag_T_2);
-	private static TemplateBinding tb_Collection_Collection_flatten_T2 = createTemplateBinding(ts_Collection, tps_Collection_Collection_flatten_T2);
-	private static TemplateBinding tb_Collection_UniqueCollection_T_1 = createTemplateBinding(ts_Collection, tps_Collection_UniqueCollection_T);
-	private static TemplateBinding tb_Collection_OclAny_2 = createTemplateBinding(ts_Collection, tps_Collection_OclAny_1);
-	private static TemplateBinding tb_Collection_String = createTemplateBinding(ts_Collection, tps_Collection_String);
-	private static TemplateBinding tb_Collection_Sequence_flatten_T2 = createTemplateBinding(ts_Collection, tps_Collection_Sequence_flatten_T2);
-	private static TemplateBinding tb_Collection_OclAny_3 = createTemplateBinding(ts_Collection, tps_Collection_OclAny_2);
-	private static TemplateBinding tb_Collection_Bag_T_2 = createTemplateBinding(ts_Collection, tps_Collection_Bag_T);
-	private static TemplateBinding tb_Collection_Set_selectByKind_TT = createTemplateBinding(ts_Collection, tps_Collection_Set_selectByKind_TT);
-	private static TemplateBinding tb_Collection_OclSelf = createTemplateBinding(ts_Collection, tps_Collection_OclSelf);
-	private static TemplateBinding tb_Collection_OrderedSet_selectByType_TT = createTemplateBinding(ts_Collection, tps_Collection_OrderedSet_selectByType_TT);
-	private static TemplateBinding tb_Collection_Collection_excludesAll_T2 = createTemplateBinding(ts_Collection, tps_Collection_Collection_excludesAll_T2);
-	private static TemplateBinding tb_Collection_Collection_selectByType_TT = createTemplateBinding(ts_Collection, tps_Collection_Collection_selectByType_TT);
-	private static TemplateBinding tb_Collection_Integer = createTemplateBinding(ts_Collection, tps_Collection_Integer);
-	private static TemplateBinding tb_Collection_Sequence_T_1 = createTemplateBinding(ts_Collection, tps_Collection_Sequence_T_1);
-	private static TemplateBinding tb_Collection_Collection_collect_V = createTemplateBinding(ts_Collection, tps_Collection_Collection_collect_V);
-	private static TemplateBinding tb_Collection_Bag_collect_V = createTemplateBinding(ts_Collection, tps_Collection_Bag_collect_V);
-	private static TemplateBinding tb_EnumerationClassifier_OclSelf = createTemplateBinding(ts_EnumerationClassifier, tps_EnumerationClassifier_OclSelf);
-	private static TemplateBinding tb_OrderedSet_Sequence_T = createTemplateBinding(ts_OrderedSet, tps_OrderedSet_Sequence_T);
-	private static TemplateBinding tb_OrderedSet_OrderedSet_flatten_T2 = createTemplateBinding(ts_OrderedSet, tps_OrderedSet_OrderedSet_flatten_T2);
-	private static TemplateBinding tb_OrderedSet_Set_T = createTemplateBinding(ts_OrderedSet, tps_OrderedSet_Set_T);
-	private static TemplateBinding tb_OrderedSet_UniqueCollection_T = createTemplateBinding(ts_OrderedSet, tps_OrderedSet_UniqueCollection_T);
-	private static TemplateBinding tb_OrderedSet_OrderedSet_selectByKind_TT = createTemplateBinding(ts_OrderedSet, tps_OrderedSet_OrderedSet_selectByKind_TT);
-	private static TemplateBinding tb_OrderedSet_EnumerationLiteral = createTemplateBinding(ts_OrderedSet, tps_OrderedSet_EnumerationLiteral);
-	private static TemplateBinding tb_OrderedSet_Collection_T = createTemplateBinding(ts_OrderedSet, tps_OrderedSet_Collection_T);
-	private static TemplateBinding tb_OrderedSet_OrderedSet_selectByType_TT = createTemplateBinding(ts_OrderedSet, tps_OrderedSet_OrderedSet_selectByType_TT);
-	private static TemplateBinding tb_Sequence_EnumerationLiteral = createTemplateBinding(ts_Sequence, tps_Sequence_EnumerationLiteral);
-	private static TemplateBinding tb_Sequence_UniqueCollection_T = createTemplateBinding(ts_Sequence, tps_Sequence_UniqueCollection_T);
-	private static TemplateBinding tb_Sequence_Sequence_T = createTemplateBinding(ts_Sequence, tps_Sequence_Sequence_T_2);
-	private static TemplateBinding tb_Sequence_Integer = createTemplateBinding(ts_Sequence, tps_Sequence_Integer);
-	private static TemplateBinding tb_Sequence_String = createTemplateBinding(ts_Sequence, tps_Sequence_String);
-	private static TemplateBinding tb_Sequence_Sequence_selectByKind_TT = createTemplateBinding(ts_Sequence, tps_Sequence_Sequence_selectByKind_TT);
-	private static TemplateBinding tb_Sequence_Sequence_collect_V = createTemplateBinding(ts_Sequence, tps_Sequence_Sequence_collect_V);
-	private static TemplateBinding tb_Sequence_Collection_T = createTemplateBinding(ts_Sequence, tps_Sequence_Collection_T);
-	private static TemplateBinding tb_Sequence_Set_T = createTemplateBinding(ts_Sequence, tps_Sequence_Set_T);
-	private static TemplateBinding tb_Sequence_Bag_T = createTemplateBinding(ts_Sequence, tps_Sequence_Bag_T);
-	private static TemplateBinding tb_Sequence_OrderedSet_T = createTemplateBinding(ts_Sequence, tps_Sequence_OrderedSet_T);
-	private static TemplateBinding tb_Sequence_Sequence_T_1 = createTemplateBinding(ts_Sequence, tps_Sequence_Sequence_T_1);
-	private static TemplateBinding tb_Sequence_OrderedSet_selectByKind_TT = createTemplateBinding(ts_Sequence, tps_Sequence_OrderedSet_selectByKind_TT);
-	private static TemplateBinding tb_Sequence_Sequence_flatten_T2 = createTemplateBinding(ts_Sequence, tps_Sequence_Sequence_flatten_T2);
-	private static TemplateBinding tb_Sequence_OrderedSet_flatten_T2 = createTemplateBinding(ts_Sequence, tps_Sequence_OrderedSet_flatten_T2);
-	private static TemplateBinding tb_Sequence_OrderedSet_selectByType_TT = createTemplateBinding(ts_Sequence, tps_Sequence_OrderedSet_selectByType_TT);
-	private static TemplateBinding tb_Sequence_Sequence_T_2 = createTemplateBinding(ts_Sequence, tps_Sequence_Sequence_T);
-	private static TemplateBinding tb_Sequence_Sequence_selectByType_TT = createTemplateBinding(ts_Sequence, tps_Sequence_Sequence_selectByType_TT);
-	private static TemplateBinding tb_Set_Set_selectByKind_TT = createTemplateBinding(ts_Set, tps_Set_Set_selectByKind_TT);
-	private static TemplateBinding tb_Set_Tuple = createTemplateBinding(ts_Set, tps_Set_Tuple);
-	private static TemplateBinding tb_Set_OclElement = createTemplateBinding(ts_Set, tps_Set_OclElement);
-	private static TemplateBinding tb_Set_UniqueCollection_T = createTemplateBinding(ts_Set, tps_Set_UniqueCollection_T);
-	private static TemplateBinding tb_Set_Set_flatten_T2 = createTemplateBinding(ts_Set, tps_Set_Set_flatten_T2);
-	private static TemplateBinding tb_Set_Bag_T = createTemplateBinding(ts_Set, tps_Set_Bag_T);
-	private static TemplateBinding tb_Set_Set_selectByType_TT = createTemplateBinding(ts_Set, tps_Set_Set_selectByType_TT);
-	private static TemplateBinding tb_Set_Collection_T = createTemplateBinding(ts_Set, tps_Set_Collection_T);
-	private static TemplateBinding tb_Set_OclSelf = createTemplateBinding(ts_Set, tps_Set_OclSelf);
-	private static TemplateBinding tb_UniqueCollection_Bag_T = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_Bag_T_1);
-	private static TemplateBinding tb_UniqueCollection_OclSelf = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_OclSelf_1);
-	private static TemplateBinding tb_UniqueCollection_Set_flatten_T2 = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_Set_flatten_T2);
-	private static TemplateBinding tb_UniqueCollection_OclElement = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_OclElement);
-	private static TemplateBinding tb_UniqueCollection_OrderedSet_selectByType_TT = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_OrderedSet_selectByType_TT);
-	private static TemplateBinding tb_UniqueCollection_Tuple = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_Tuple);
-	private static TemplateBinding tb_UniqueCollection_UniqueCollection_T = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_UniqueCollection_T_1);
-	private static TemplateBinding tb_UniqueCollection_Sequence_T = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_Sequence_T_1);
-	private static TemplateBinding tb_UniqueCollection_Sequence_T_1 = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_Sequence_T_2);
-	private static TemplateBinding tb_UniqueCollection_OclSelf_1 = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_OclSelf_2);
-	private static TemplateBinding tb_UniqueCollection_Sequence_T_2 = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_Sequence_T);
-	private static TemplateBinding tb_UniqueCollection_UniqueCollection_T_1 = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_UniqueCollection_T);
-	private static TemplateBinding tb_UniqueCollection_OclAny = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_OclAny);
-	private static TemplateBinding tb_UniqueCollection_Set_selectByType_TT = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_Set_selectByType_TT);
-	private static TemplateBinding tb_UniqueCollection_Bag_T_1 = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_Bag_T_3);
-	private static TemplateBinding tb_UniqueCollection_OrderedSet_T = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_OrderedSet_T);
-	private static TemplateBinding tb_UniqueCollection_EnumerationLiteral = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_EnumerationLiteral);
-	private static TemplateBinding tb_UniqueCollection_OclSelf_2 = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_OclSelf);
-	private static TemplateBinding tb_UniqueCollection_OclSelf_3 = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_OclSelf_3);
-	private static TemplateBinding tb_UniqueCollection_OclSelf_4 = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_OclSelf_4);
-	private static TemplateBinding tb_UniqueCollection_Set_T = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_Set_T);
-	private static TemplateBinding tb_UniqueCollection_Set_selectByKind_TT = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_Set_selectByKind_TT);
-	private static TemplateBinding tb_UniqueCollection_Bag_T_2 = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_Bag_T);
-	private static TemplateBinding tb_UniqueCollection_Collection_T = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_Collection_T);
-	private static TemplateBinding tb_UniqueCollection_OrderedSet_selectByKind_TT = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_OrderedSet_selectByKind_TT);
-	private static TemplateBinding tb_UniqueCollection_Bag_T_3 = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_Bag_T_2);
-	private static TemplateBinding tb_UniqueCollection_OclSelf_5 = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_OclSelf_5);
-	private static TemplateBinding tb_UniqueCollection_OrderedSet_flatten_T2 = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_OrderedSet_flatten_T2);
-	private static TemplateBinding tb_UniqueCollection_Tuple_1 = createTemplateBinding(ts_UniqueCollection, tps_UniqueCollection_Tuple_1);
-	
-
 	/**
 	 * Return the default OCL standard Library. 
 	 *  This static definition auto-generated from /org.eclipse.ocl.examples.library/model/OCL-2.4.oclstdlib
@@ -1398,7 +66,8 @@
 	 */
 	public static OCLstdlib getDefault() {
 		if (INSTANCE == null) {
-			Library library = create("ocl", "ocl", "http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib");
+			Contents contents = new Contents();
+			Library library = contents.create("ocl", "ocl", "http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib");
 			INSTANCE = new OCLstdlib(STDLIB_URI, library);
 		}
 		return INSTANCE;
@@ -1441,2991 +110,3080 @@
 	}
 	
 	/**
+	 *	Construct a copy of the OCL Standard Library with specified resource URI,
+	 *  and package name, prefix and namespace URI.
+	 */
+	public static OCLstdlib create(String uri, String name, String nsPrefix, String nsURI) {
+		Contents contents = new Contents();
+		Library library = contents.create(name, nsPrefix, nsURI);
+		return new OCLstdlib(uri, library);
+	}
+	
+	/**
 	 *	Construct an OCL Standard Library with specified resource URI and library content.
 	 */
 	public OCLstdlib(String uri, Library library) {
 		super(URI.createURI(uri));
 		getContents().add(library);
 	}
-	
-	/**
-	 *	Construct a copy of the OCL Standard Library with specified resource URI,
-	 *  and package name, prefix and namespace URI.
-	 */
-	public static OCLstdlib create(String uri, String name, String nsPrefix, String nsURI) {
-		@SuppressWarnings("serial")
-		EcoreUtil.Copier copier = new EcoreUtil.Copier(true, false)
-		{
-			@Override
-			protected void copyReference(EReference eReference, EObject eObject, EObject copyEObject) {
-				Object eGet = eObject.eGet(eReference);
-				if (eGet instanceof SubsetSupersetEObjectEList) {
-					if (eReference == PivotPackage.Literals.TEMPLATE_SIGNATURE__PARAMETER) {
-						return;	// Avoid doubling up on TEMPLATE_SIGNATURE__OWNED_PARAMETER
-					}
-					System.out.println(eReference.getContainerClass().getName() + "::" + eReference.getName());
-				}
-				super.copyReference(eReference, eObject, copyEObject);
-			}			
-		};
-		Library library = (Library) copier.copy(getDefault().getContents().get(0));
-		copier.copyReferences();
-		library.setName(name);
-		library.setNsPrefix(nsPrefix);
-		library.setNsURI(nsURI);
-		return new OCLstdlib(uri, library);
-	}
 
-	private static Library create(String name, String nsPrefix, String nsURI)
+	protected static class Contents extends AbstractContents
 	{
-		Library library = createLibrary("ocl", nsPrefix, nsURI);
-		List<Precedence> ownedPrecedences = library.getOwnedPrecedences();
-		ownedPrecedences.add(prec_NAVIGATION);
-		ownedPrecedences.add(prec_UNARY);
-		ownedPrecedences.add(prec_MULTIPLICATIVE);
-		ownedPrecedences.add(prec_ADDITIVE);
-		ownedPrecedences.add(prec_RELATIONAL);
-		ownedPrecedences.add(prec_EQUALITY);
-		ownedPrecedences.add(prec_AND);
-		ownedPrecedences.add(prec_OR);
-		ownedPrecedences.add(prec_XOR);
-		ownedPrecedences.add(prec_IMPLIES);
-		//
-		// ocl::Boolean
-		//
-		t_Boolean.getSuperClasses().add(t_OclAny);
-		//
-		// ocl::Boolean::<>()
-		//
-		op_Boolean__lt__gt_.setPrecedence(prec_EQUALITY);
-		op_Boolean__lt__gt_.getOwnedComments().add(co_Returns_32_oclT_9);
-		t_Boolean.getOwnedOperations().add(op_Boolean__lt__gt_);
-		//
-		// ocl::Boolean::=()
-		//
-		op_Boolean__eq_.setPrecedence(prec_EQUALITY);
-		op_Boolean__eq_.getOwnedComments().add(co_Returns_32_oclT_10);
-		t_Boolean.getOwnedOperations().add(op_Boolean__eq_);
-		//
-		// ocl::Boolean::allInstances()
-		//
-		op_Boolean_allInstances.setIsStatic(true);
-		op_Boolean_allInstances.getOwnedComments().add(co_Returns_32_oclT);
-		t_Boolean.getOwnedOperations().add(op_Boolean_allInstances);
-		//
-		// ocl::Boolean::and()
-		//
-		op_Boolean_and.setPrecedence(prec_AND);
-		op_Boolean_and.getOwnedComments().add(co_True_32_if_32_both);
-		t_Boolean.getOwnedOperations().add(op_Boolean_and);
-		//
-		// ocl::Boolean::implies()
-		//
-		op_Boolean_implies.setPrecedence(prec_IMPLIES);
-		op_Boolean_implies.getOwnedComments().add(co_True_32_if_32_oclT_11);
-		t_Boolean.getOwnedOperations().add(op_Boolean_implies);
-		//
-		// ocl::Boolean::not()
-		//
-		op_Boolean_not.setPrecedence(prec_UNARY);
-		op_Boolean_not.getOwnedComments().add(co_True_32_if_32_oclT_12);
-		t_Boolean.getOwnedOperations().add(op_Boolean_not);
-		//
-		// ocl::Boolean::or()
-		//
-		op_Boolean_or.setPrecedence(prec_OR);
-		op_Boolean_or.getOwnedComments().add(co_True_32_if_32_eith_1);
-		t_Boolean.getOwnedOperations().add(op_Boolean_or);
-		//
-		// ocl::Boolean::toString()
-		//
-		op_Boolean_toString.getOwnedComments().add(co_Converts_32_ocl_4);
-		t_Boolean.getOwnedOperations().add(op_Boolean_toString);
-		//
-		// ocl::Boolean::xor()
-		//
-		op_Boolean_xor.setPrecedence(prec_XOR);
-		op_Boolean_xor.getOwnedComments().add(co_True_32_if_32_eith);
-		t_Boolean.getOwnedOperations().add(op_Boolean_xor);
-		t_Boolean.getOwnedComments().add(co_The_32_standard);
-		library.getOwnedTypes().add(t_Boolean);
-		//
-		// ocl::Integer
-		//
-		t_Integer.getSuperClasses().add(t_Real);
-		//
-		// ocl::Integer::*()
-		//
-		op_Integer__mul_.setPrecedence(prec_MULTIPLICATIVE);
-		op_Integer__mul_.getOwnedComments().add(co_The_32_value_32_of_4);
-		t_Integer.getOwnedOperations().add(op_Integer__mul_);
-		//
-		// ocl::Integer::+()
-		//
-		op_Integer__add_.setPrecedence(prec_ADDITIVE);
-		op_Integer__add_.getOwnedComments().add(co_The_32_value_32_of_2);
-		t_Integer.getOwnedOperations().add(op_Integer__add_);
-		//
-		// ocl::Integer::-()
-		//
-		op_Integer__sub_.setPrecedence(prec_UNARY);
-		op_Integer__sub_.getOwnedComments().add(co_The_32_negative);
-		t_Integer.getOwnedOperations().add(op_Integer__sub_);
-		//
-		// ocl::Integer::-()
-		//
-		op_Integer__sub__1.setPrecedence(prec_ADDITIVE);
-		op_Integer__sub__1.getOwnedComments().add(co_The_32_value_32_of_6);
-		t_Integer.getOwnedOperations().add(op_Integer__sub__1);
-		//
-		// ocl::Integer::/()
-		//
-		op_Integer__div_.setPrecedence(prec_MULTIPLICATIVE);
-		op_Integer__div_.getOwnedComments().add(co_The_32_value_32_of);
-		t_Integer.getOwnedOperations().add(op_Integer__div_);
-		//
-		// ocl::Integer::abs()
-		//
-		op_Integer_abs.getOwnedComments().add(co_The_32_absolute_1);
-		t_Integer.getOwnedOperations().add(op_Integer_abs);
-		//
-		// ocl::Integer::compareTo()
-		//
-		op_Integer_compareTo.getOwnedComments().add(co_The_32_comparis_1);
-		t_Integer.getOwnedOperations().add(op_Integer_compareTo);
-		//
-		// ocl::Integer::div()
-		//
-		op_Integer_div.getOwnedComments().add(co_The_32_number_32_o_2);
-		t_Integer.getOwnedOperations().add(op_Integer_div);
-		//
-		// ocl::Integer::max()
-		//
-		op_Integer_max.getOwnedComments().add(co_The_32_maximum_32_);
-		t_Integer.getOwnedOperations().add(op_Integer_max);
-		//
-		// ocl::Integer::min()
-		//
-		op_Integer_min.getOwnedComments().add(co_The_32_minimum_32_);
-		t_Integer.getOwnedOperations().add(op_Integer_min);
-		//
-		// ocl::Integer::mod()
-		//
-		op_Integer_mod.getOwnedComments().add(co_The_32_result_32_i);
-		t_Integer.getOwnedOperations().add(op_Integer_mod);
-		//
-		// ocl::Integer::toString()
-		//
-		op_Integer_toString.getOwnedComments().add(co_Converts_32_ocl_3);
-		t_Integer.getOwnedOperations().add(op_Integer_toString);
-		t_Integer.getOwnedComments().add(co_The_32_standard_3);
-		library.getOwnedTypes().add(t_Integer);
-		//
-		// ocl::Real
-		//
-		t_Real.getSuperClasses().add(t_OclComparable);
-		t_Real.getSuperClasses().add(t_OclSummable);
-		//
-		// ocl::Real::*()
-		//
-		op_Real__mul_.setPrecedence(prec_MULTIPLICATIVE);
-		op_Real__mul_.getOwnedComments().add(co_The_32_value_32_of_5);
-		t_Real.getOwnedOperations().add(op_Real__mul_);
-		//
-		// ocl::Real::+()
-		//
-		op_Real__add_.setPrecedence(prec_ADDITIVE);
-		op_Real__add_.getOwnedComments().add(co_The_32_value_32_of_3);
-		t_Real.getOwnedOperations().add(op_Real__add_);
-		//
-		// ocl::Real::-()
-		//
-		op_Real__sub__1.setPrecedence(prec_ADDITIVE);
-		op_Real__sub__1.getOwnedComments().add(co_The_32_value_32_of_7);
-		t_Real.getOwnedOperations().add(op_Real__sub__1);
-		//
-		// ocl::Real::-()
-		//
-		op_Real__sub_.setPrecedence(prec_UNARY);
-		op_Real__sub_.getOwnedComments().add(co_The_32_negative_1);
-		t_Real.getOwnedOperations().add(op_Real__sub_);
-		//
-		// ocl::Real::/()
-		//
-		op_Real__div_.setPrecedence(prec_MULTIPLICATIVE);
-		op_Real__div_.getOwnedComments().add(co_The_32_value_32_of_1);
-		t_Real.getOwnedOperations().add(op_Real__div_);
-		//
-		// ocl::Real::<()
-		//
-		op_Real__lt_.setPrecedence(prec_RELATIONAL);
-		op_Real__lt_.getOwnedComments().add(co_True_32_if_32_oclT_9);
-		t_Real.getOwnedOperations().add(op_Real__lt_);
-		//
-		// ocl::Real::<=()
-		//
-		op_Real__lt__eq_.setPrecedence(prec_RELATIONAL);
-		op_Real__lt__eq_.getOwnedComments().add(co_True_32_if_32_oclT_7);
-		t_Real.getOwnedOperations().add(op_Real__lt__eq_);
-		//
-		// ocl::Real::<>()
-		//
-		op_Real__lt__gt_.setPrecedence(prec_EQUALITY);
-		op_Real__lt__gt_.getOwnedComments().add(co_Returns_32_oclT_11);
-		t_Real.getOwnedOperations().add(op_Real__lt__gt_);
-		//
-		// ocl::Real::=()
-		//
-		op_Real__eq_.setPrecedence(prec_EQUALITY);
-		op_Real__eq_.getOwnedComments().add(co_Returns_32_oclT_12);
-		t_Real.getOwnedOperations().add(op_Real__eq_);
-		//
-		// ocl::Real::>()
-		//
-		op_Real__gt_.setPrecedence(prec_RELATIONAL);
-		op_Real__gt_.getOwnedComments().add(co_True_32_if_32_oclT_5);
-		t_Real.getOwnedOperations().add(op_Real__gt_);
-		//
-		// ocl::Real::>=()
-		//
-		op_Real__gt__eq_.setPrecedence(prec_RELATIONAL);
-		op_Real__gt__eq_.getOwnedComments().add(co_True_32_if_32_oclT_3);
-		t_Real.getOwnedOperations().add(op_Real__gt__eq_);
-		//
-		// ocl::Real::abs()
-		//
-		op_Real_abs.getOwnedComments().add(co_The_32_absolute);
-		t_Real.getOwnedOperations().add(op_Real_abs);
-		//
-		// ocl::Real::compareTo()
-		//
-		op_Real_compareTo.getOwnedComments().add(co_The_32_comparis);
-		t_Real.getOwnedOperations().add(op_Real_compareTo);
-		//
-		// ocl::Real::floor()
-		//
-		op_Real_floor.getOwnedComments().add(co_The_32_largest_32_);
-		t_Real.getOwnedOperations().add(op_Real_floor);
-		//
-		// ocl::Real::max()
-		//
-		op_Real_max.getOwnedComments().add(co_The_32_maximum_32__1);
-		t_Real.getOwnedOperations().add(op_Real_max);
-		//
-		// ocl::Real::min()
-		//
-		op_Real_min.getOwnedComments().add(co_The_32_minimum_32__1);
-		t_Real.getOwnedOperations().add(op_Real_min);
-		//
-		// ocl::Real::round()
-		//
-		op_Real_round.getOwnedComments().add(co_The_32_integer_32_);
-		t_Real.getOwnedOperations().add(op_Real_round);
-		//
-		// ocl::Real::toString()
-		//
-		op_Real_toString.getOwnedComments().add(co_Converts_32_ocl_2);
-		t_Real.getOwnedOperations().add(op_Real_toString);
-		t_Real.getOwnedComments().add(co_The_32_standard_4);
-		library.getOwnedTypes().add(t_Real);
-		//
-		// ocl::String
-		//
-		t_String.getSuperClasses().add(t_OclComparable);
-		t_String.getSuperClasses().add(t_OclSummable);
-		//
-		// ocl::String::+()
-		//
-		op_String__add_.setPrecedence(prec_ADDITIVE);
-		op_String__add_.getOwnedComments().add(co_The_32_concaten);
-		t_String.getOwnedOperations().add(op_String__add_);
-		//
-		// ocl::String::<()
-		//
-		op_String__lt_.setPrecedence(prec_RELATIONAL);
-		op_String__lt_.getOwnedComments().add(co_True_32_if_32_oclT_10);
-		t_String.getOwnedOperations().add(op_String__lt_);
-		//
-		// ocl::String::<=()
-		//
-		op_String__lt__eq_.setPrecedence(prec_RELATIONAL);
-		op_String__lt__eq_.getOwnedComments().add(co_True_32_if_32_oclT_8);
-		t_String.getOwnedOperations().add(op_String__lt__eq_);
-		//
-		// ocl::String::<>()
-		//
-		op_String__lt__gt_.setPrecedence(prec_EQUALITY);
-		t_String.getOwnedOperations().add(op_String__lt__gt_);
-		//
-		// ocl::String::=()
-		//
-		op_String__eq_.setPrecedence(prec_EQUALITY);
-		t_String.getOwnedOperations().add(op_String__eq_);
-		//
-		// ocl::String::>()
-		//
-		op_String__gt_.setPrecedence(prec_RELATIONAL);
-		op_String__gt_.getOwnedComments().add(co_True_32_if_32_oclT_6);
-		t_String.getOwnedOperations().add(op_String__gt_);
-		//
-		// ocl::String::>=()
-		//
-		op_String__gt__eq_.setPrecedence(prec_RELATIONAL);
-		op_String__gt__eq_.getOwnedComments().add(co_True_32_if_32_oclT_4);
-		t_String.getOwnedOperations().add(op_String__gt__eq_);
-		//
-		// ocl::String::at()
-		//
-		op_String_at.getOwnedComments().add(co_Queries_32_the_32_);
-		t_String.getOwnedOperations().add(op_String_at);
-		//
-		// ocl::String::characters()
-		//
-		op_String_characters.getOwnedComments().add(co_Obtains_32_the_32_);
-		t_String.getOwnedOperations().add(op_String_characters);
-		//
-		// ocl::String::compareTo()
-		//
-		op_String_compareTo.getOwnedComments().add(co_The_32_comparis_2);
-		t_String.getOwnedOperations().add(op_String_compareTo);
-		//
-		// ocl::String::concat()
-		//
-		op_String_concat.getOwnedComments().add(co_The_32_concaten_1);
-		t_String.getOwnedOperations().add(op_String_concat);
-		//
-		// ocl::String::equalsIgnoreCase()
-		//
-		op_String_equalsIgnoreCase.getOwnedComments().add(co_Queries_32_whet);
-		t_String.getOwnedOperations().add(op_String_equalsIgnoreCase);
-		//
-		// ocl::String::indexOf()
-		//
-		op_String_indexOf.getOwnedComments().add(co_Queries_32_the_32__1);
-		t_String.getOwnedOperations().add(op_String_indexOf);
-		//
-		// ocl::String::size()
-		//
-		op_String_size.getOwnedComments().add(co_The_32_number_32_o);
-		t_String.getOwnedOperations().add(op_String_size);
-		//
-		// ocl::String::substring()
-		//
-		op_String_substring.getOwnedComments().add(co_The_32_sub_sub_stri);
-		t_String.getOwnedOperations().add(op_String_substring);
-		//
-		// ocl::String::toBoolean()
-		//
-		op_String_toBoolean.getOwnedComments().add(co_Converts_32_ocl_1);
-		t_String.getOwnedOperations().add(op_String_toBoolean);
-		//
-		// ocl::String::toInteger()
-		//
-		op_String_toInteger.getOwnedComments().add(co_Converts_32_ocl_5);
-		t_String.getOwnedOperations().add(op_String_toInteger);
-		//
-		// ocl::String::toLower()
-		//
-		op_String_toLower.getOwnedComments().add(co_This_32_is_32_a_32_de);
-		t_String.getOwnedOperations().add(op_String_toLower);
-		//
-		// ocl::String::toLowerCase()
-		//
-		op_String_toLowerCase.getOwnedComments().add(co_Converts_32_ocl_6);
-		t_String.getOwnedOperations().add(op_String_toLowerCase);
-		//
-		// ocl::String::toReal()
-		//
-		op_String_toReal.getOwnedComments().add(co_Converts_32_ocl);
-		t_String.getOwnedOperations().add(op_String_toReal);
-		//
-		// ocl::String::toString()
-		//
-		op_String_toString.getOwnedComments().add(co_Returns_32_oclT_6);
-		t_String.getOwnedOperations().add(op_String_toString);
-		//
-		// ocl::String::toUpper()
-		//
-		op_String_toUpper.getOwnedComments().add(co_This_32_is_32_a_32_de_1);
-		t_String.getOwnedOperations().add(op_String_toUpper);
-		//
-		// ocl::String::toUpperCase()
-		//
-		op_String_toUpperCase.getOwnedComments().add(co_Converts_32_ocl_7);
-		t_String.getOwnedOperations().add(op_String_toUpperCase);
-		t_String.getOwnedComments().add(co_The_32_standard_5);
-		library.getOwnedTypes().add(t_String);
-		//
-		// ocl::UnlimitedNatural
-		//
-		t_UnlimitedNatural.getSuperClasses().add(t_Integer);
-		//
-		// ocl::UnlimitedNatural::oclAsType()
-		//
-		op_UnlimitedNatural_oclAsType.getOwnedComments().add(co_Evaluates_32_to_1);
-		t_UnlimitedNatural.getOwnedOperations().add(op_UnlimitedNatural_oclAsType);
-		t_UnlimitedNatural.getOwnedComments().add(co_The_32_standard_6);
-		library.getOwnedTypes().add(t_UnlimitedNatural);
-		//
-		// ocl::AnyClassifier
-		//
-		t_AnyClassifier.setInstanceType(t_AnyClassifier_T);
-		t_AnyClassifier.getSuperClasses().add(t_Class);
-		t_AnyClassifier.getSuperClasses().add(t_OclType);
-		library.getOwnedTypes().add(t_AnyClassifier);
-		//
-		// ocl::Bag
-		//
-		t_Bag.setElementType(t_Bag_T);
-		t_Bag.getSuperClasses().add(t_Collection_Bag_T);
-		//
-		// ocl::Bag::<>()
-		//
-		op_Bag__lt__gt_.setPrecedence(prec_EQUALITY);
-		t_Bag.getOwnedOperations().add(op_Bag__lt__gt_);
-		//
-		// ocl::Bag::=()
-		//
-		op_Bag__eq_.setPrecedence(prec_EQUALITY);
-		op_Bag__eq_.getOwnedComments().add(co_True_32_if_32_oclT);
-		t_Bag.getOwnedOperations().add(op_Bag__eq_);
-		//
-		// ocl::Bag::closure()
-		//
-		it_Bag_closure.getOwnedComments().add(co_The_32_closure_32__1);
-		t_Bag.getOwnedOperations().add(it_Bag_closure);
-		//
-		// ocl::Bag::collect()
-		//
-		t_Bag.getOwnedOperations().add(it_Bag_collect);
-		//
-		// ocl::Bag::collectNested()
-		//
-		it_Bag_collectNested.getOwnedComments().add(co_The_32_Bag_32_of_32_e);
-		t_Bag.getOwnedOperations().add(it_Bag_collectNested);
-		//
-		// ocl::Bag::excluding()
-		//
-		op_Bag_excluding.getOwnedComments().add(co_The_32_bag_32_cont);
-		t_Bag.getOwnedOperations().add(op_Bag_excluding);
-		//
-		// ocl::Bag::flatten()
-		//
-		op_Bag_flatten.getOwnedComments().add(co_Redefines_32_th);
-		t_Bag.getOwnedOperations().add(op_Bag_flatten);
-		//
-		// ocl::Bag::including()
-		//
-		op_Bag_including.getOwnedComments().add(co_The_32_bag_32_cont_1);
-		t_Bag.getOwnedOperations().add(op_Bag_including);
-		//
-		// ocl::Bag::intersection()
-		//
-		op_Bag_intersection.getOwnedComments().add(co_The_32_intersec_1);
-		t_Bag.getOwnedOperations().add(op_Bag_intersection);
-		//
-		// ocl::Bag::intersection()
-		//
-		op_Bag_intersection_1.getOwnedComments().add(co_The_32_intersec_3);
-		t_Bag.getOwnedOperations().add(op_Bag_intersection_1);
-		//
-		// ocl::Bag::reject()
-		//
-		it_Bag_reject.getOwnedComments().add(co_The_32_sub_sub_bag_32_);
-		t_Bag.getOwnedOperations().add(it_Bag_reject);
-		//
-		// ocl::Bag::select()
-		//
-		it_Bag_select.getOwnedComments().add(co_The_32_sub_sub_bag_32__1);
-		t_Bag.getOwnedOperations().add(it_Bag_select);
-		//
-		// ocl::Bag::selectByKind()
-		//
-		t_Bag.getOwnedOperations().add(op_Bag_selectByKind);
-		//
-		// ocl::Bag::selectByType()
-		//
-		t_Bag.getOwnedOperations().add(op_Bag_selectByType);
-		//
-		// ocl::Bag::sortedBy()
-		//
-		it_Bag_sortedBy.getOwnedComments().add(co_Results_32_in_32_t_2);
-		t_Bag.getOwnedOperations().add(it_Bag_sortedBy);
-		//
-		// ocl::Bag::union()
-		//
-		op_Bag_union.getOwnedComments().add(co_The_32_union_32_of);
-		t_Bag.getOwnedOperations().add(op_Bag_union);
-		//
-		// ocl::Bag::union()
-		//
-		op_Bag_union_1.getOwnedComments().add(co_The_32_union_32_of_1);
-		t_Bag.getOwnedOperations().add(op_Bag_union_1);
-		t_Bag.getOwnedComments().add(co_A_32_bag_32_is_32_a_32_c);
-		library.getOwnedTypes().add(t_Bag);
-		//
-		// ocl::Class
-		//
-		t_Class.getSuperClasses().add(t_OclAny);
-		//
-		// ocl::Class::oclType()
-		//
-		op_Class_oclType.getOwnedComments().add(co_Evaluates_32_to_13);
-		t_Class.getOwnedOperations().add(op_Class_oclType);
-		library.getOwnedTypes().add(t_Class);
-		//
-		// ocl::ClassClassifier
-		//
-		t_ClassClassifier.setInstanceType(t_ClassClassifier_T);
-		t_ClassClassifier.getSuperClasses().add(t_AnyClassifier_ClassClassifier_T);
-		library.getOwnedTypes().add(t_ClassClassifier);
-		//
-		// ocl::CollectionClassifier
-		//
-		t_CollectionClassifier.setInstanceType(t_CollectionClassifier_T);
-		t_CollectionClassifier.getSuperClasses().add(t_AnyClassifier_CollectionClassifier_T);
-		//
-		// ocl::CollectionClassifier::elementType
-		//
-		pr_CollectionClassifier_elementType.setIsResolveProxies(true);
-		pr_CollectionClassifier_elementType.getOwnedComments().add(co_Evaluates_32_to_9);
-		t_CollectionClassifier.getOwnedAttributes().add(pr_CollectionClassifier_elementType);
-		library.getOwnedTypes().add(t_CollectionClassifier);
-		//
-		// ocl::Collection
-		//
-		t_Collection.setElementType(t_Collection_T);
-		t_Collection.getSuperClasses().add(t_OclAny);
-		//
-		// ocl::Collection::<>()
-		//
-		op_Collection__lt__gt_.setPrecedence(prec_EQUALITY);
-		op_Collection__lt__gt_.getOwnedComments().add(co_True_32_if_32_c_32_is_1);
-		t_Collection.getOwnedOperations().add(op_Collection__lt__gt_);
-		//
-		// ocl::Collection::=()
-		//
-		op_Collection__eq_.setPrecedence(prec_EQUALITY);
-		op_Collection__eq_.getOwnedComments().add(co_True_32_if_32_c_32_is);
-		t_Collection.getOwnedOperations().add(op_Collection__eq_);
-		//
-		// ocl::Collection::any()
-		//
-		it_Collection_any.getOwnedComments().add(co_Returns_32_any_32_);
-		t_Collection.getOwnedOperations().add(it_Collection_any);
-		//
-		// ocl::Collection::asBag()
-		//
-		op_Collection_asBag.getOwnedComments().add(co_The_32_Bag_32_that);
-		t_Collection.getOwnedOperations().add(op_Collection_asBag);
-		//
-		// ocl::Collection::asOrderedSet()
-		//
-		op_Collection_asOrderedSet.getOwnedComments().add(co_An_32_OrderedSe);
-		t_Collection.getOwnedOperations().add(op_Collection_asOrderedSet);
-		//
-		// ocl::Collection::asSequence()
-		//
-		op_Collection_asSequence.getOwnedComments().add(co_Sequence_32_tha);
-		t_Collection.getOwnedOperations().add(op_Collection_asSequence);
-		//
-		// ocl::Collection::asSet()
-		//
-		op_Collection_asSet.getOwnedComments().add(co_The_32_Set_32_cont);
-		t_Collection.getOwnedOperations().add(op_Collection_asSet);
-		//
-		// ocl::Collection::collect()
-		//
-		it_Collection_collect.getOwnedComments().add(co_The_32_Collecti);
-		t_Collection.getOwnedOperations().add(it_Collection_collect);
-		//
-		// ocl::Collection::collectNested()
-		//
-		it_Collection_collectNested.getOwnedComments().add(co_The_32_Collecti_1);
-		t_Collection.getOwnedOperations().add(it_Collection_collectNested);
-		//
-		// ocl::Collection::count()
-		//
-		op_Collection_count.getOwnedComments().add(co_The_32_number_32_o_3);
-		t_Collection.getOwnedOperations().add(op_Collection_count);
-		//
-		// ocl::Collection::excludes()
-		//
-		op_Collection_excludes.getOwnedComments().add(co_True_32_if_32_obje_1);
-		t_Collection.getOwnedOperations().add(op_Collection_excludes);
-		//
-		// ocl::Collection::excludesAll()
-		//
-		op_Collection_excludesAll.getOwnedComments().add(co_Does_32_oclText_1);
-		t_Collection.getOwnedOperations().add(op_Collection_excludesAll);
-		//
-		// ocl::Collection::excluding()
-		//
-		op_Collection_excluding.getOwnedComments().add(co_The_32_collecti);
-		t_Collection.getOwnedOperations().add(op_Collection_excluding);
-		//
-		// ocl::Collection::exists()
-		//
-		it_Collection_exists_1.getOwnedComments().add(co_Results_32_in_32_o_1);
-		t_Collection.getOwnedOperations().add(it_Collection_exists_1);
-		//
-		// ocl::Collection::exists()
-		//
-		t_Collection.getOwnedOperations().add(it_Collection_exists);
-		//
-		// ocl::Collection::flatten()
-		//
-		op_Collection_flatten.getOwnedComments().add(co_If_32_the_32_eleme);
-		t_Collection.getOwnedOperations().add(op_Collection_flatten);
-		//
-		// ocl::Collection::forAll()
-		//
-		it_Collection_forAll_1.getOwnedComments().add(co_Results_32_in_32_o_2);
-		t_Collection.getOwnedOperations().add(it_Collection_forAll_1);
-		//
-		// ocl::Collection::forAll()
-		//
-		t_Collection.getOwnedOperations().add(it_Collection_forAll);
-		//
-		// ocl::Collection::includes()
-		//
-		op_Collection_includes.getOwnedComments().add(co_True_32_if_32_obje);
-		t_Collection.getOwnedOperations().add(op_Collection_includes);
-		//
-		// ocl::Collection::includesAll()
-		//
-		op_Collection_includesAll.getOwnedComments().add(co_Does_32_oclText);
-		t_Collection.getOwnedOperations().add(op_Collection_includesAll);
-		//
-		// ocl::Collection::including()
-		//
-		op_Collection_including.getOwnedComments().add(co_The_32_collecti_1);
-		t_Collection.getOwnedOperations().add(op_Collection_including);
-		//
-		// ocl::Collection::isEmpty()
-		//
-		op_Collection_isEmpty.getOwnedComments().add(co_Is_32_oclText_91_s_1);
-		t_Collection.getOwnedOperations().add(op_Collection_isEmpty);
-		//
-		// ocl::Collection::isUnique()
-		//
-		it_Collection_isUnique.getOwnedComments().add(co_Results_32_in_32_o);
-		t_Collection.getOwnedOperations().add(it_Collection_isUnique);
-		//
-		// ocl::Collection::iterate()
-		//
-		it_Collection_iterate.getOwnedAccumulators().add(pa_Collection_iterate_acc);t_Collection.getOwnedOperations().add(it_Collection_iterate);
-		//
-		// ocl::Collection::max()
-		//
-		op_Collection_max.getOwnedComments().add(co_The_32_element_32_);
-		t_Collection.getOwnedOperations().add(op_Collection_max);
-		//
-		// ocl::Collection::min()
-		//
-		op_Collection_min.getOwnedComments().add(co_The_32_element_32__1);
-		t_Collection.getOwnedOperations().add(op_Collection_min);
-		//
-		// ocl::Collection::notEmpty()
-		//
-		op_Collection_notEmpty.getOwnedComments().add(co_Is_32_oclText_91_s);
-		t_Collection.getOwnedOperations().add(op_Collection_notEmpty);
-		//
-		// ocl::Collection::oclType()
-		//
-		op_Collection_oclType.getOwnedComments().add(co_Evaluates_32_to_12);
-		t_Collection.getOwnedOperations().add(op_Collection_oclType);
-		//
-		// ocl::Collection::one()
-		//
-		it_Collection_one.getOwnedComments().add(co_Results_32_in_32_o_3);
-		t_Collection.getOwnedOperations().add(it_Collection_one);
-		//
-		// ocl::Collection::product()
-		//
-		op_Collection_product.getOwnedComments().add(co_The_32_cartesia);
-		t_Collection.getOwnedOperations().add(op_Collection_product);
-		//
-		// ocl::Collection::reject()
-		//
-		it_Collection_reject.getOwnedComments().add(co_The_32_sub_sub_coll);
-		t_Collection.getOwnedOperations().add(it_Collection_reject);
-		//
-		// ocl::Collection::select()
-		//
-		it_Collection_select.getOwnedComments().add(co_The_32_sub_sub_coll_1);
-		t_Collection.getOwnedOperations().add(it_Collection_select);
-		//
-		// ocl::Collection::selectByKind()
-		//
-		t_Collection.getOwnedOperations().add(op_Collection_selectByKind);
-		//
-		// ocl::Collection::selectByType()
-		//
-		t_Collection.getOwnedOperations().add(op_Collection_selectByType);
-		//
-		// ocl::Collection::size()
-		//
-		op_Collection_size.getOwnedComments().add(co_The_32_number_32_o_1);
-		t_Collection.getOwnedOperations().add(op_Collection_size);
-		//
-		// ocl::Collection::sortedBy()
-		//
-		it_Collection_sortedBy.getOwnedComments().add(co_Results_32_in_32_t);
-		t_Collection.getOwnedOperations().add(it_Collection_sortedBy);
-		//
-		// ocl::Collection::sum()
-		//
-		op_Collection_sum.getOwnedComments().add(co_The_32_addition);
-		t_Collection.getOwnedOperations().add(op_Collection_sum);
-		t_Collection.getOwnedComments().add(co_Collection_32_i);
-		library.getOwnedTypes().add(t_Collection);
-		//
-		// ocl::Enumeration
-		//
-		t_Enumeration.getSuperClasses().add(t_OclAny);
-		//
-		// ocl::Enumeration::allInstances()
-		//
-		op_Enumeration_allInstances.setIsStatic(true);
-		op_Enumeration_allInstances.getOwnedComments().add(co_Return_32_a_32_set);
-		t_Enumeration.getOwnedOperations().add(op_Enumeration_allInstances);
-		//
-		// ocl::Enumeration::oclType()
-		//
-		op_Enumeration_oclType.getOwnedComments().add(co_Evaluates_32_to_10);
-		t_Enumeration.getOwnedOperations().add(op_Enumeration_oclType);
-		t_Enumeration.getOwnedComments().add(co_The_32_Enumerat);
-		library.getOwnedTypes().add(t_Enumeration);
-		//
-		// ocl::EnumerationClassifier
-		//
-		t_EnumerationClassifier.setInstanceType(t_EnumerationClassifier_T);
-		t_EnumerationClassifier.getSuperClasses().add(t_AnyClassifier_EnumerationClassifier_T);
-		//
-		// ocl::EnumerationClassifier::ownedLiteral
-		//
-		pr_EnumerationClassifier_ownedLiteral.setIsResolveProxies(true);
-		pr_EnumerationClassifier_ownedLiteral.getOwnedComments().add(co_Evaluates_32_to_8);
-		t_EnumerationClassifier.getOwnedAttributes().add(pr_EnumerationClassifier_ownedLiteral);
-		t_EnumerationClassifier.getOwnedComments().add(co_The_32_standard_1);
-		library.getOwnedTypes().add(t_EnumerationClassifier);
-		//
-		// ocl::EnumerationLiteral
-		//
-		t_EnumerationLiteral.getSuperClasses().add(t_OclAny);
-		t_EnumerationLiteral.getOwnedComments().add(co_The_32_standard_2);
-		library.getOwnedTypes().add(t_EnumerationLiteral);
-		//
-		// ocl::OclAny
-		//
-		//
-		// ocl::OclAny::<>()
-		//
-		op_OclAny__lt__gt_.setPrecedence(prec_EQUALITY);
-		op_OclAny__lt__gt_.getOwnedComments().add(co_True_32_if_32_oclT_2);
-		t_OclAny.getOwnedOperations().add(op_OclAny__lt__gt_);
-		//
-		// ocl::OclAny::=()
-		//
-		op_OclAny__eq_.setPrecedence(prec_EQUALITY);
-		op_OclAny__eq_.getOwnedComments().add(co_True_32_if_32_oclT_13);
-		t_OclAny.getOwnedOperations().add(op_OclAny__eq_);
-		//
-		// ocl::OclAny::oclAsSet()
-		//
-		op_OclAny_oclAsSet.getOwnedComments().add(co_Returns_32_a_32_Se);
-		t_OclAny.getOwnedOperations().add(op_OclAny_oclAsSet);
-		//
-		// ocl::OclAny::oclAsType()
-		//
-		op_OclAny_oclAsType.getOwnedComments().add(co_Evaluates_32_to);
-		t_OclAny.getOwnedOperations().add(op_OclAny_oclAsType);
-		//
-		// ocl::OclAny::oclIsInState()
-		//
-		op_OclAny_oclIsInState.getOwnedComments().add(co_Evaluates_32_to_6);
-		t_OclAny.getOwnedOperations().add(op_OclAny_oclIsInState);
-		//
-		// ocl::OclAny::oclIsInvalid()
-		//
-		op_OclAny_oclIsInvalid.getOwnedComments().add(co_Evaluates_32_to_4);
-		t_OclAny.getOwnedOperations().add(op_OclAny_oclIsInvalid);
-		//
-		// ocl::OclAny::oclIsKindOf()
-		//
-		op_OclAny_oclIsKindOf.getOwnedComments().add(co_Evaluates_32_to_7);
-		t_OclAny.getOwnedOperations().add(op_OclAny_oclIsKindOf);
-		//
-		// ocl::OclAny::oclIsNew()
-		//
-		op_OclAny_oclIsNew.getOwnedComments().add(co_Can_32_only_32_be_32_);
-		t_OclAny.getOwnedOperations().add(op_OclAny_oclIsNew);
-		//
-		// ocl::OclAny::oclIsTypeOf()
-		//
-		op_OclAny_oclIsTypeOf.getOwnedComments().add(co_Evaluates_32_to_3);
-		t_OclAny.getOwnedOperations().add(op_OclAny_oclIsTypeOf);
-		//
-		// ocl::OclAny::oclIsUndefined()
-		//
-		op_OclAny_oclIsUndefined.getOwnedComments().add(co_Evaluates_32_to_5);
-		t_OclAny.getOwnedOperations().add(op_OclAny_oclIsUndefined);
-		//
-		// ocl::OclAny::oclType()
-		//
-		op_OclAny_oclType.getOwnedComments().add(co_Evaluates_32_to_11);
-		t_OclAny.getOwnedOperations().add(op_OclAny_oclType);
-		t_OclAny.getOwnedComments().add(co_All_32_types_32_in);
-		library.getOwnedTypes().add(t_OclAny);
-		//
-		// ocl::OclComparable
-		//
-		t_OclComparable.getSuperClasses().add(t_OclAny);
-		//
-		// ocl::OclComparable::compareTo()
-		//
-		op_OclComparable_compareTo.getOwnedComments().add(co_Return_32__sub_ve_44__32_);
-		t_OclComparable.getOwnedOperations().add(op_OclComparable_compareTo);
-		t_OclComparable.getOwnedComments().add(co_The_32_type_32_Ocl);
-		library.getOwnedTypes().add(t_OclComparable);
-		//
-		// ocl::OclElement
-		//
-		t_OclElement.getSuperClasses().add(t_OclAny);
-		//
-		// ocl::OclElement::allInstances()
-		//
-		op_OclElement_allInstances.setIsStatic(true);
-		op_OclElement_allInstances.getOwnedComments().add(co_Return_32_a_32_set_1);
-		t_OclElement.getOwnedOperations().add(op_OclElement_allInstances);
-		//
-		// ocl::OclElement::oclContainer()
-		//
-		op_OclElement_oclContainer.getOwnedComments().add(co_Returns_32_the_32__1);
-		t_OclElement.getOwnedOperations().add(op_OclElement_oclContainer);
-		//
-		// ocl::OclElement::oclContents()
-		//
-		op_OclElement_oclContents.getOwnedComments().add(co_Returns_32_the_32_);
-		t_OclElement.getOwnedOperations().add(op_OclElement_oclContents);
-		t_OclElement.getOwnedComments().add(co_The_32_type_32_Ocl_1);
-		library.getOwnedTypes().add(t_OclElement);
-		//
-		// ocl::OclInvalid
-		//
-		t_OclInvalid.getSuperClasses().add(t_OclVoid);
-		//
-		// ocl::OclInvalid::oclBadProperty
-		//
-		pr_OclInvalid_oclBadProperty.setIsResolveProxies(true);
-		t_OclInvalid.getOwnedAttributes().add(pr_OclInvalid_oclBadProperty);
-		//
-		// ocl::OclInvalid::<>()
-		//
-		op_OclInvalid__lt__gt_.setPrecedence(prec_EQUALITY);
-		op_OclInvalid__lt__gt_.getOwnedComments().add(co_Returns_32_oclT_3);
-		t_OclInvalid.getOwnedOperations().add(op_OclInvalid__lt__gt_);
-		//
-		// ocl::OclInvalid::=()
-		//
-		op_OclInvalid__eq_.setPrecedence(prec_EQUALITY);
-		op_OclInvalid__eq_.getOwnedComments().add(co_Returns_32_oclT_2);
-		t_OclInvalid.getOwnedOperations().add(op_OclInvalid__eq_);
-		//
-		// ocl::OclInvalid::allInstances()
-		//
-		op_OclInvalid_allInstances.setIsStatic(true);
-		op_OclInvalid_allInstances.getOwnedComments().add(co_Returns_32_oclT_4);
-		t_OclInvalid.getOwnedOperations().add(op_OclInvalid_allInstances);
-		//
-		// ocl::OclInvalid::oclBadOperation()
-		//
-		t_OclInvalid.getOwnedOperations().add(op_OclInvalid_oclBadOperation);
-		//
-		// ocl::OclInvalid::toString()
-		//
-		op_OclInvalid_toString.getOwnedComments().add(co_Returns_32__39_inv);
-		t_OclInvalid.getOwnedOperations().add(op_OclInvalid_toString);
-		t_OclInvalid.getOwnedComments().add(co_The_32_type_32_Ocl_2);
-		library.getOwnedTypes().add(t_OclInvalid);
-		//
-		// ocl::OclLambda
-		//
-		t_OclLambda.getSuperClasses().add(t_OclAny);
-		t_OclLambda.getOwnedComments().add(co_The_32_type_32_Ocl_3);
-		library.getOwnedTypes().add(t_OclLambda);
-		//
-		// ocl::OclMessage
-		//
-		t_OclMessage.getSuperClasses().add(t_OclAny);
-		//
-		// ocl::OclMessage::hasReturned()
-		//
-		op_OclMessage_hasReturned.getOwnedComments().add(co_True_32_if_32_type);
-		t_OclMessage.getOwnedOperations().add(op_OclMessage_hasReturned);
-		//
-		// ocl::OclMessage::isOperationCall()
-		//
-		op_OclMessage_isOperationCall.getOwnedComments().add(co_Returns_32_oclT_7);
-		t_OclMessage.getOwnedOperations().add(op_OclMessage_isOperationCall);
-		//
-		// ocl::OclMessage::isSignalSent()
-		//
-		op_OclMessage_isSignalSent.getOwnedComments().add(co_Returns_32_oclT_8);
-		t_OclMessage.getOwnedOperations().add(op_OclMessage_isSignalSent);
-		//
-		// ocl::OclMessage::result()
-		//
-		op_OclMessage_result.getOwnedComments().add(co_Returns_32_the_32__2);
-		t_OclMessage.getOwnedOperations().add(op_OclMessage_result);
-		t_OclMessage.getOwnedComments().add(co_OclMessage_10_T);
-		library.getOwnedTypes().add(t_OclMessage);
-		//
-		// ocl::OclSelf
-		//
-		t_OclSelf.getSuperClasses().add(t_OclAny);
-		t_OclSelf.getOwnedComments().add(co_The_32_pseudo_sub_t);
-		library.getOwnedTypes().add(t_OclSelf);
-		//
-		// ocl::OclState
-		//
-		t_OclState.getSuperClasses().add(t_OclAny);
-		library.getOwnedTypes().add(t_OclState);
-		//
-		// ocl::OclSummable
-		//
-		t_OclSummable.getSuperClasses().add(t_OclAny);
-		//
-		// ocl::OclSummable::sum()
-		//
-		op_OclSummable_sum.getOwnedComments().add(co_Return_32_the_32_s);
-		t_OclSummable.getOwnedOperations().add(op_OclSummable_sum);
-		//
-		// ocl::OclSummable::zero()
-		//
-		op_OclSummable_zero.getOwnedComments().add(co_Return_32_the_32__39_);
-		t_OclSummable.getOwnedOperations().add(op_OclSummable_zero);
-		t_OclSummable.getOwnedComments().add(co_The_32_type_32_Ocl_4);
-		library.getOwnedTypes().add(t_OclSummable);
-		//
-		// ocl::OclTuple
-		//
-		t_OclTuple.getSuperClasses().add(t_OclAny);
-		//
-		// ocl::OclTuple::<>()
-		//
-		op_OclTuple__lt__gt_.setPrecedence(prec_EQUALITY);
-		t_OclTuple.getOwnedOperations().add(op_OclTuple__lt__gt_);
-		//
-		// ocl::OclTuple::=()
-		//
-		op_OclTuple__eq_.setPrecedence(prec_EQUALITY);
-		t_OclTuple.getOwnedOperations().add(op_OclTuple__eq_);
-		t_OclTuple.getOwnedComments().add(co_The_32_type_32_Ocl_5);
-		library.getOwnedTypes().add(t_OclTuple);
-		//
-		// ocl::OclType
-		//
-		t_OclType.getSuperClasses().add(t_OclElement);
-		//
-		// ocl::OclType::conformsTo()
-		//
-		op_OclType_conformsTo.getOwnedComments().add(co_Returns_32_true);
-		t_OclType.getOwnedOperations().add(op_OclType_conformsTo);
-		t_OclType.getOwnedComments().add(co_The_32_type_32_Ocl_6);
-		library.getOwnedTypes().add(t_OclType);
-		//
-		// ocl::OclVoid
-		//
-		t_OclVoid.getSuperClasses().add(t_OclAny);
-		//
-		// ocl::OclVoid::<>()
-		//
-		op_OclVoid__lt__gt_.setPrecedence(prec_EQUALITY);
-		t_OclVoid.getOwnedOperations().add(op_OclVoid__lt__gt_);
-		//
-		// ocl::OclVoid::=()
-		//
-		op_OclVoid__eq_.setPrecedence(prec_EQUALITY);
-		op_OclVoid__eq_.getOwnedComments().add(co_Redefines_32_th_3);
-		t_OclVoid.getOwnedOperations().add(op_OclVoid__eq_);
-		//
-		// ocl::OclVoid::allInstances()
-		//
-		op_OclVoid_allInstances.setIsStatic(true);
-		op_OclVoid_allInstances.getOwnedComments().add(co_Returns_32_oclT_1);
-		t_OclVoid.getOwnedOperations().add(op_OclVoid_allInstances);
-		//
-		// ocl::OclVoid::and()
-		//
-		op_OclVoid_and.setPrecedence(prec_AND);
-		t_OclVoid.getOwnedOperations().add(op_OclVoid_and);
-		//
-		// ocl::OclVoid::implies()
-		//
-		op_OclVoid_implies.setPrecedence(prec_IMPLIES);
-		t_OclVoid.getOwnedOperations().add(op_OclVoid_implies);
-		//
-		// ocl::OclVoid::or()
-		//
-		op_OclVoid_or.setPrecedence(prec_OR);
-		t_OclVoid.getOwnedOperations().add(op_OclVoid_or);
-		//
-		// ocl::OclVoid::toString()
-		//
-		op_OclVoid_toString.getOwnedComments().add(co_Returns_32_oclT_5);
-		t_OclVoid.getOwnedOperations().add(op_OclVoid_toString);
-		t_OclVoid.getOwnedComments().add(co_The_32_type_32_Ocl_7);
-		library.getOwnedTypes().add(t_OclVoid);
-		//
-		// ocl::OrderedSet
-		//
-		t_OrderedSet.setElementType(t_OrderedSet_T);
-		t_OrderedSet.getSuperClasses().add(t_Sequence_OrderedSet_T);
-		t_OrderedSet.getSuperClasses().add(t_UniqueCollection_OrderedSet_T);
-		//
-		// ocl::OrderedSet::-()
-		//
-		op_OrderedSet__sub_.setPrecedence(prec_ADDITIVE);
-		op_OrderedSet__sub_.getOwnedComments().add(co_The_32_elements);
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet__sub_);
-		//
-		// ocl::OrderedSet::<>()
-		//
-		op_OrderedSet__lt__gt_.setPrecedence(prec_EQUALITY);
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet__lt__gt_);
-		//
-		// ocl::OrderedSet::=()
-		//
-		op_OrderedSet__eq_.setPrecedence(prec_EQUALITY);
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet__eq_);
-		//
-		// ocl::OrderedSet::append()
-		//
-		op_OrderedSet_append.getOwnedComments().add(co_The_32_set_32_of_32_e);
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet_append);
-		//
-		// ocl::OrderedSet::excluding()
-		//
-		op_OrderedSet_excluding.getOwnedComments().add(co_The_32_ordered_32_);
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet_excluding);
-		//
-		// ocl::OrderedSet::flatten()
-		//
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet_flatten);
-		//
-		// ocl::OrderedSet::including()
-		//
-		op_OrderedSet_including.getOwnedComments().add(co_The_32_ordered_32__3);
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet_including);
-		//
-		// ocl::OrderedSet::insertAt()
-		//
-		op_OrderedSet_insertAt.getOwnedComments().add(co_The_32_ordered_32__2);
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet_insertAt);
-		//
-		// ocl::OrderedSet::intersection()
-		//
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet_intersection);
-		//
-		// ocl::OrderedSet::prepend()
-		//
-		op_OrderedSet_prepend.getOwnedComments().add(co_The_32_sequence_2);
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet_prepend);
-		//
-		// ocl::OrderedSet::reject()
-		//
-		it_OrderedSet_reject.getOwnedComments().add(co_The_32_ordered_32__5);
-		t_OrderedSet.getOwnedOperations().add(it_OrderedSet_reject);
-		//
-		// ocl::OrderedSet::reverse()
-		//
-		op_OrderedSet_reverse.getOwnedComments().add(co_The_32_ordered_32__4);
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet_reverse);
-		//
-		// ocl::OrderedSet::select()
-		//
-		it_OrderedSet_select.getOwnedComments().add(co_The_32_ordered_32__6);
-		t_OrderedSet.getOwnedOperations().add(it_OrderedSet_select);
-		//
-		// ocl::OrderedSet::selectByKind()
-		//
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet_selectByKind);
-		//
-		// ocl::OrderedSet::selectByType()
-		//
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet_selectByType);
-		//
-		// ocl::OrderedSet::sortedBy()
-		//
-		it_OrderedSet_sortedBy.getOwnedComments().add(co_Results_32_in_32_t_3);
-		t_OrderedSet.getOwnedOperations().add(it_OrderedSet_sortedBy);
-		//
-		// ocl::OrderedSet::subOrderedSet()
-		//
-		op_OrderedSet_subOrderedSet.getOwnedComments().add(co_The_32_sub_sub_set_32_);
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet_subOrderedSet);
-		//
-		// ocl::OrderedSet::union()
-		//
-		op_OrderedSet_union.getOwnedComments().add(co_The_32_ordered_32__1);
-		t_OrderedSet.getOwnedOperations().add(op_OrderedSet_union);
-		t_OrderedSet.getOwnedComments().add(co_The_32_OrderedS);
-		library.getOwnedTypes().add(t_OrderedSet);
-		//
-		// ocl::Sequence
-		//
-		t_Sequence.setElementType(t_Sequence_T);
-		t_Sequence.getSuperClasses().add(t_Collection_Sequence_T_1);
-		//
-		// ocl::Sequence::<>()
-		//
-		op_Sequence__lt__gt_.setPrecedence(prec_EQUALITY);
-		t_Sequence.getOwnedOperations().add(op_Sequence__lt__gt_);
-		//
-		// ocl::Sequence::=()
-		//
-		op_Sequence__eq_.setPrecedence(prec_EQUALITY);
-		op_Sequence__eq_.getOwnedComments().add(co_True_32_if_32_oclT_1);
-		t_Sequence.getOwnedOperations().add(op_Sequence__eq_);
-		//
-		// ocl::Sequence::append()
-		//
-		op_Sequence_append.getOwnedComments().add(co_The_32_sequence_8);
-		t_Sequence.getOwnedOperations().add(op_Sequence_append);
-		//
-		// ocl::Sequence::at()
-		//
-		op_Sequence_at.getOwnedComments().add(co_The_32_i_sub_th_32_ele);
-		t_Sequence.getOwnedOperations().add(op_Sequence_at);
-		//
-		// ocl::Sequence::closure()
-		//
-		it_Sequence_closure.getOwnedComments().add(co_The_32_closure_32_);
-		t_Sequence.getOwnedOperations().add(it_Sequence_closure);
-		//
-		// ocl::Sequence::collect()
-		//
-		t_Sequence.getOwnedOperations().add(it_Sequence_collect);
-		//
-		// ocl::Sequence::collectNested()
-		//
-		it_Sequence_collectNested.getOwnedComments().add(co_The_32_sequence_7);
-		t_Sequence.getOwnedOperations().add(it_Sequence_collectNested);
-		//
-		// ocl::Sequence::excluding()
-		//
-		op_Sequence_excluding.getOwnedComments().add(co_The_32_sequence_4);
-		t_Sequence.getOwnedOperations().add(op_Sequence_excluding);
-		//
-		// ocl::Sequence::first()
-		//
-		op_Sequence_first.getOwnedComments().add(co_The_32_first_32_el);
-		t_Sequence.getOwnedOperations().add(op_Sequence_first);
-		//
-		// ocl::Sequence::flatten()
-		//
-		op_Sequence_flatten.getOwnedComments().add(co_Redefines_32_th_1);
-		t_Sequence.getOwnedOperations().add(op_Sequence_flatten);
-		//
-		// ocl::Sequence::including()
-		//
-		op_Sequence_including.getOwnedComments().add(co_The_32_sequence_5);
-		t_Sequence.getOwnedOperations().add(op_Sequence_including);
-		//
-		// ocl::Sequence::indexOf()
-		//
-		op_Sequence_indexOf.getOwnedComments().add(co_The_32_index_32_of);
-		t_Sequence.getOwnedOperations().add(op_Sequence_indexOf);
-		//
-		// ocl::Sequence::insertAt()
-		//
-		op_Sequence_insertAt.getOwnedComments().add(co_The_32_sequence_3);
-		t_Sequence.getOwnedOperations().add(op_Sequence_insertAt);
-		//
-		// ocl::Sequence::intersection()
-		//
-		op_Sequence_intersection.getOwnedComments().add(co_The_32_intersec);
-		t_Sequence.getOwnedOperations().add(op_Sequence_intersection);
-		//
-		// ocl::Sequence::intersection()
-		//
-		op_Sequence_intersection_1.getOwnedComments().add(co_The_32_intersec_4);
-		t_Sequence.getOwnedOperations().add(op_Sequence_intersection_1);
-		//
-		// ocl::Sequence::last()
-		//
-		op_Sequence_last.getOwnedComments().add(co_The_32_last_32_ele);
-		t_Sequence.getOwnedOperations().add(op_Sequence_last);
-		//
-		// ocl::Sequence::prepend()
-		//
-		op_Sequence_prepend.getOwnedComments().add(co_The_32_sequence_1);
-		t_Sequence.getOwnedOperations().add(op_Sequence_prepend);
-		//
-		// ocl::Sequence::reject()
-		//
-		it_Sequence_reject.getOwnedComments().add(co_The_32_subseque);
-		t_Sequence.getOwnedOperations().add(it_Sequence_reject);
-		//
-		// ocl::Sequence::reverse()
-		//
-		op_Sequence_reverse.getOwnedComments().add(co_The_32_sequence_6);
-		t_Sequence.getOwnedOperations().add(op_Sequence_reverse);
-		//
-		// ocl::Sequence::select()
-		//
-		it_Sequence_select.getOwnedComments().add(co_The_32_subseque_1);
-		t_Sequence.getOwnedOperations().add(it_Sequence_select);
-		//
-		// ocl::Sequence::selectByKind()
-		//
-		t_Sequence.getOwnedOperations().add(op_Sequence_selectByKind);
-		//
-		// ocl::Sequence::selectByType()
-		//
-		t_Sequence.getOwnedOperations().add(op_Sequence_selectByType);
-		//
-		// ocl::Sequence::sortedBy()
-		//
-		it_Sequence_sortedBy.getOwnedComments().add(co_Results_32_in_32_t_1);
-		t_Sequence.getOwnedOperations().add(it_Sequence_sortedBy);
-		//
-		// ocl::Sequence::subSequence()
-		//
-		op_Sequence_subSequence.getOwnedComments().add(co_The_32_sub_sub_sequ);
-		t_Sequence.getOwnedOperations().add(op_Sequence_subSequence);
-		//
-		// ocl::Sequence::union()
-		//
-		op_Sequence_union.getOwnedComments().add(co_The_32_sequence);
-		t_Sequence.getOwnedOperations().add(op_Sequence_union);
-		t_Sequence.getOwnedComments().add(co_A_32_sequence_32_i);
-		library.getOwnedTypes().add(t_Sequence);
-		//
-		// ocl::Set
-		//
-		t_Set.setElementType(t_Set_T);
-		t_Set.getSuperClasses().add(t_Bag_Set_T);
-		t_Set.getSuperClasses().add(t_UniqueCollection_Set_T);
-		//
-		// ocl::Set::-()
-		//
-		op_Set__sub_.setPrecedence(prec_ADDITIVE);
-		op_Set__sub_.getOwnedComments().add(co_The_32_elements_2);
-		t_Set.getOwnedOperations().add(op_Set__sub_);
-		//
-		// ocl::Set::<>()
-		//
-		op_Set__lt__gt_.setPrecedence(prec_EQUALITY);
-		t_Set.getOwnedOperations().add(op_Set__lt__gt_);
-		//
-		// ocl::Set::=()
-		//
-		op_Set__eq_.setPrecedence(prec_EQUALITY);
-		op_Set__eq_.getOwnedComments().add(co_Evaluates_32_to_2);
-		t_Set.getOwnedOperations().add(op_Set__eq_);
-		//
-		// ocl::Set::excluding()
-		//
-		op_Set_excluding.getOwnedComments().add(co_The_32_set_32_cont_1);
-		t_Set.getOwnedOperations().add(op_Set_excluding);
-		//
-		// ocl::Set::flatten()
-		//
-		op_Set_flatten.getOwnedComments().add(co_Redefines_32_th_2);
-		t_Set.getOwnedOperations().add(op_Set_flatten);
-		//
-		// ocl::Set::including()
-		//
-		op_Set_including.getOwnedComments().add(co_The_32_set_32_cont);
-		t_Set.getOwnedOperations().add(op_Set_including);
-		//
-		// ocl::Set::intersection()
-		//
-		op_Set_intersection.getOwnedComments().add(co_The_32_intersec_2);
-		t_Set.getOwnedOperations().add(op_Set_intersection);
-		//
-		// ocl::Set::reject()
-		//
-		it_Set_reject.getOwnedComments().add(co_The_32_subset_32_o_1);
-		t_Set.getOwnedOperations().add(it_Set_reject);
-		//
-		// ocl::Set::select()
-		//
-		it_Set_select.getOwnedComments().add(co_The_32_subset_32_o);
-		t_Set.getOwnedOperations().add(it_Set_select);
-		//
-		// ocl::Set::selectByKind()
-		//
-		t_Set.getOwnedOperations().add(op_Set_selectByKind);
-		//
-		// ocl::Set::selectByType()
-		//
-		t_Set.getOwnedOperations().add(op_Set_selectByType);
-		//
-		// ocl::Set::sortedBy()
-		//
-		it_Set_sortedBy.getOwnedComments().add(co_Results_32_in_32_t_5);
-		t_Set.getOwnedOperations().add(it_Set_sortedBy);
-		//
-		// ocl::Set::union()
-		//
-		op_Set_union.getOwnedComments().add(co_The_32_set_32_cons);
-		t_Set.getOwnedOperations().add(op_Set_union);
-		library.getOwnedTypes().add(t_Set);
-		//
-		// ocl::Type
-		//
-		t_Type.getSuperClasses().add(t_OclType);
-		library.getOwnedTypes().add(t_Type);
-		//
-		// ocl::UniqueCollection
-		//
-		t_UniqueCollection.setElementType(t_UniqueCollection_T);
-		t_UniqueCollection.getSuperClasses().add(t_Collection_UniqueCollection_T);
-		//
-		// ocl::UniqueCollection::-()
-		//
-		op_UniqueCollection__sub_.setPrecedence(prec_ADDITIVE);
-		op_UniqueCollection__sub_.getOwnedComments().add(co_The_32_elements_1);
-		t_UniqueCollection.getOwnedOperations().add(op_UniqueCollection__sub_);
-		//
-		// ocl::UniqueCollection::sortedBy()
-		//
-		it_UniqueCollection_sortedBy.getOwnedComments().add(co_Results_32_in_32_t_4);
-		t_UniqueCollection.getOwnedOperations().add(it_UniqueCollection_sortedBy);
-		//
-		// ocl::UniqueCollection::symmetricDifference()
-		//
-		op_UniqueCollection_symmetricDifference.getOwnedComments().add(co_The_32_set_32_cont_2);
-		t_UniqueCollection.getOwnedOperations().add(op_UniqueCollection_symmetricDifference);
-		//
-		// ocl::UniqueCollection::union()
-		//
-		op_UniqueCollection_union.getOwnedComments().add(co_The_32_set_32_cons_1);
-		t_UniqueCollection.getOwnedOperations().add(op_UniqueCollection_union);
-		t_UniqueCollection.getOwnedComments().add(co_The_32_UniqueCo);
-		library.getOwnedTypes().add(t_UniqueCollection);
-		//
-		// ocl::$$
-		//
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Bag_T.setContextType(t_Bag_T);
-		t_Lambda_Bag_T.setResultType(t_Boolean);
-		t_Lambda_Bag_T.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Bag_T);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Bag_T_1.setContextType(t_Bag_T);
-		t_Lambda_Bag_T_1.setResultType(t_Boolean);
-		t_Lambda_Bag_T_1.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Bag_T_1);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Bag_T_2.setContextType(t_Bag_T);
-		t_Lambda_Bag_T_2.setResultType(t_Bag_collectNested_V);
-		t_Lambda_Bag_T_2.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Bag_T_2);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Bag_T_3.setContextType(t_Bag_T);
-		t_Lambda_Bag_T_3.setResultType(t_Bag_collect_V);
-		t_Lambda_Bag_T_3.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Bag_T_3);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Bag_T_4.setContextType(t_Bag_T);
-		t_Lambda_Bag_T_4.setResultType(t_OclAny);
-		t_Lambda_Bag_T_4.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Bag_T_4);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Bag_T_5.setContextType(t_Bag_T);
-		t_Lambda_Bag_T_5.setResultType(t_Set_Bag_T);
-		t_Lambda_Bag_T_5.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Bag_T_5);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Collection_T.setContextType(t_Collection_T);
-		t_Lambda_Collection_T.setResultType(t_Boolean);
-		t_Lambda_Collection_T.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Collection_T);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Collection_T_1.setContextType(t_Collection_T);
-		t_Lambda_Collection_T_1.setResultType(t_Boolean);
-		t_Lambda_Collection_T_1.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Collection_T_1);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Collection_T_2.setContextType(t_Collection_T);
-		t_Lambda_Collection_T_2.setResultType(t_Boolean);
-		t_Lambda_Collection_T_2.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Collection_T_2);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Collection_T_3.setContextType(t_Collection_T);
-		t_Lambda_Collection_T_3.setResultType(t_Boolean);
-		t_Lambda_Collection_T_3.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Collection_T_3);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Collection_T_4.setContextType(t_Collection_T);
-		t_Lambda_Collection_T_4.setResultType(t_Boolean);
-		t_Lambda_Collection_T_4.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Collection_T_4);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Collection_T_5.setContextType(t_Collection_T);
-		t_Lambda_Collection_T_5.setResultType(t_Boolean);
-		t_Lambda_Collection_T_5.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Collection_T_5);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Collection_T_6.setContextType(t_Collection_T);
-		t_Lambda_Collection_T_6.setResultType(t_Boolean);
-		t_Lambda_Collection_T_6.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Collection_T_6);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Collection_T_7.setContextType(t_Collection_T);
-		t_Lambda_Collection_T_7.setResultType(t_Boolean);
-		t_Lambda_Collection_T_7.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Collection_T_7);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Collection_T_8.setContextType(t_Collection_T);
-		t_Lambda_Collection_T_8.setResultType(t_Collection_collectNested_V);
-		t_Lambda_Collection_T_8.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Collection_T_8);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Collection_T_9.setContextType(t_Collection_T);
-		t_Lambda_Collection_T_9.setResultType(t_Collection_collect_V);
-		t_Lambda_Collection_T_9.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Collection_T_9);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Collection_T_10.setContextType(t_Collection_T);
-		t_Lambda_Collection_T_10.setResultType(t_Collection_iterate_Tacc);
-		t_Lambda_Collection_T_10.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Collection_T_10);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Collection_T_11.setContextType(t_Collection_T);
-		t_Lambda_Collection_T_11.setResultType(t_OclAny);
-		t_Lambda_Collection_T_11.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Collection_T_11);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Collection_T_12.setContextType(t_Collection_T);
-		t_Lambda_Collection_T_12.setResultType(t_OclAny);
-		t_Lambda_Collection_T_12.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Collection_T_12);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_OrderedSet_T.setContextType(t_OrderedSet_T);
-		t_Lambda_OrderedSet_T.setResultType(t_Boolean);
-		t_Lambda_OrderedSet_T.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_OrderedSet_T);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_OrderedSet_T_1.setContextType(t_OrderedSet_T);
-		t_Lambda_OrderedSet_T_1.setResultType(t_Boolean);
-		t_Lambda_OrderedSet_T_1.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_OrderedSet_T_1);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_OrderedSet_T_2.setContextType(t_OrderedSet_T);
-		t_Lambda_OrderedSet_T_2.setResultType(t_OclAny);
-		t_Lambda_OrderedSet_T_2.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_OrderedSet_T_2);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Sequence_T.setContextType(t_Sequence_T);
-		t_Lambda_Sequence_T.setResultType(t_Boolean);
-		t_Lambda_Sequence_T.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Sequence_T);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Sequence_T_1.setContextType(t_Sequence_T);
-		t_Lambda_Sequence_T_1.setResultType(t_Boolean);
-		t_Lambda_Sequence_T_1.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Sequence_T_1);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Sequence_T_2.setContextType(t_Sequence_T);
-		t_Lambda_Sequence_T_2.setResultType(t_OclAny);
-		t_Lambda_Sequence_T_2.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Sequence_T_2);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Sequence_T_3.setContextType(t_Sequence_T);
-		t_Lambda_Sequence_T_3.setResultType(t_OrderedSet_Sequence_T);
-		t_Lambda_Sequence_T_3.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Sequence_T_3);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Sequence_T_4.setContextType(t_Sequence_T);
-		t_Lambda_Sequence_T_4.setResultType(t_Sequence_collectNested_V);
-		t_Lambda_Sequence_T_4.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Sequence_T_4);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Sequence_T_5.setContextType(t_Sequence_T);
-		t_Lambda_Sequence_T_5.setResultType(t_Sequence_collect_V);
-		t_Lambda_Sequence_T_5.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Sequence_T_5);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Set_T.setContextType(t_Set_T);
-		t_Lambda_Set_T.setResultType(t_Boolean);
-		t_Lambda_Set_T.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Set_T);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Set_T_1.setContextType(t_Set_T);
-		t_Lambda_Set_T_1.setResultType(t_Boolean);
-		t_Lambda_Set_T_1.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Set_T_1);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_Set_T_2.setContextType(t_Set_T);
-		t_Lambda_Set_T_2.setResultType(t_OclAny);
-		t_Lambda_Set_T_2.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_Set_T_2);
-		//
-		// ocl::$$::Lambda
-		//
-		t_Lambda_UniqueCollection_T.setContextType(t_UniqueCollection_T);
-		t_Lambda_UniqueCollection_T.setResultType(t_OclAny);
-		t_Lambda_UniqueCollection_T.getSuperClasses().add(t_OclLambda);
-		pk_$$.getOwnedTypes().add(t_Lambda_UniqueCollection_T);
-		//
-		// ocl::$$::Tuple
-		//
-		t_Tuple.getSuperClasses().add(t_OclTuple);
-		//
-		// ocl::$$::Tuple::first
-		//
-		pr_Tuple_first_3.setIsResolveProxies(true);
-		t_Tuple.getOwnedAttributes().add(pr_Tuple_first_3);
-		//
-		// ocl::$$::Tuple::second
-		//
-		pr_Tuple_second.setIsResolveProxies(true);
-		t_Tuple.getOwnedAttributes().add(pr_Tuple_second);
-		pk_$$.getOwnedTypes().add(t_Tuple);
-		//
-		// ocl::$$::Tuple
-		//
-		t_Tuple_1.getSuperClasses().add(t_OclTuple);
-		//
-		// ocl::$$::Tuple::first
-		//
-		pr_Tuple_first_2.setIsResolveProxies(true);
-		t_Tuple_1.getOwnedAttributes().add(pr_Tuple_first_2);
-		//
-		// ocl::$$::Tuple::second
-		//
-		pr_Tuple_second_2.setIsResolveProxies(true);
-		t_Tuple_1.getOwnedAttributes().add(pr_Tuple_second_2);
-		pk_$$.getOwnedTypes().add(t_Tuple_1);
-		//
-		// ocl::$$::Tuple
-		//
-		t_Tuple_2.getSuperClasses().add(t_OclTuple);
-		//
-		// ocl::$$::Tuple::first
-		//
-		pr_Tuple_first_1.setIsResolveProxies(true);
-		t_Tuple_2.getOwnedAttributes().add(pr_Tuple_first_1);
-		//
-		// ocl::$$::Tuple::second
-		//
-		pr_Tuple_second_3.setIsResolveProxies(true);
-		t_Tuple_2.getOwnedAttributes().add(pr_Tuple_second_3);
-		pk_$$.getOwnedTypes().add(t_Tuple_2);
-		//
-		// ocl::$$::Tuple
-		//
-		t_Tuple_3.getSuperClasses().add(t_OclTuple);
-		//
-		// ocl::$$::Tuple::first
-		//
-		pr_Tuple_first.setIsResolveProxies(true);
-		t_Tuple_3.getOwnedAttributes().add(pr_Tuple_first);
-		//
-		// ocl::$$::Tuple::second
-		//
-		pr_Tuple_second_1.setIsResolveProxies(true);
-		t_Tuple_3.getOwnedAttributes().add(pr_Tuple_second_1);
-		pk_$$.getOwnedTypes().add(t_Tuple_3);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_UnlimitedNatural_oclAsType_TT.setInstanceType(t_UnlimitedNatural_oclAsType_TT);
-		t_AnyClassifier_UnlimitedNatural_oclAsType_TT.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_UnlimitedNatural_oclAsType_TT.getTemplateBindings().add(tb_AnyClassifier_UnlimitedNatural_oclAsType_TT);
-		t_AnyClassifier_UnlimitedNatural_oclAsType_TT.getSuperClasses().add(t_Class);
-		t_AnyClassifier_UnlimitedNatural_oclAsType_TT.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_UnlimitedNatural_oclAsType_TT);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_Bag_selectByKind_TT.setInstanceType(t_Bag_selectByKind_TT);
-		t_AnyClassifier_Bag_selectByKind_TT.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_Bag_selectByKind_TT.getTemplateBindings().add(tb_AnyClassifier_Bag_selectByKind_TT);
-		t_AnyClassifier_Bag_selectByKind_TT.getSuperClasses().add(t_Class);
-		t_AnyClassifier_Bag_selectByKind_TT.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_Bag_selectByKind_TT);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_Bag_selectByType_TT.setInstanceType(t_Bag_selectByType_TT);
-		t_AnyClassifier_Bag_selectByType_TT.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_Bag_selectByType_TT.getTemplateBindings().add(tb_AnyClassifier_Bag_selectByType_TT);
-		t_AnyClassifier_Bag_selectByType_TT.getSuperClasses().add(t_Class);
-		t_AnyClassifier_Bag_selectByType_TT.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_Bag_selectByType_TT);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_ClassClassifier_T.setInstanceType(t_ClassClassifier_T);
-		t_AnyClassifier_ClassClassifier_T.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_ClassClassifier_T.getTemplateBindings().add(tb_AnyClassifier_ClassClassifier_T);
-		t_AnyClassifier_ClassClassifier_T.getSuperClasses().add(t_Class);
-		t_AnyClassifier_ClassClassifier_T.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_ClassClassifier_T);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_CollectionClassifier_T.setInstanceType(t_CollectionClassifier_T);
-		t_AnyClassifier_CollectionClassifier_T.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_CollectionClassifier_T.getTemplateBindings().add(tb_AnyClassifier_CollectionClassifier_T);
-		t_AnyClassifier_CollectionClassifier_T.getSuperClasses().add(t_Class);
-		t_AnyClassifier_CollectionClassifier_T.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_CollectionClassifier_T);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_Collection_selectByKind_TT.setInstanceType(t_Collection_selectByKind_TT);
-		t_AnyClassifier_Collection_selectByKind_TT.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_Collection_selectByKind_TT.getTemplateBindings().add(tb_AnyClassifier_Collection_selectByKind_TT);
-		t_AnyClassifier_Collection_selectByKind_TT.getSuperClasses().add(t_Class);
-		t_AnyClassifier_Collection_selectByKind_TT.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_Collection_selectByKind_TT);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_Collection_selectByType_TT.setInstanceType(t_Collection_selectByType_TT);
-		t_AnyClassifier_Collection_selectByType_TT.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_Collection_selectByType_TT.getTemplateBindings().add(tb_AnyClassifier_Collection_selectByType_TT);
-		t_AnyClassifier_Collection_selectByType_TT.getSuperClasses().add(t_Class);
-		t_AnyClassifier_Collection_selectByType_TT.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_Collection_selectByType_TT);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_EnumerationClassifier_T.setInstanceType(t_EnumerationClassifier_T);
-		t_AnyClassifier_EnumerationClassifier_T.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_EnumerationClassifier_T.getTemplateBindings().add(tb_AnyClassifier_EnumerationClassifier_T);
-		t_AnyClassifier_EnumerationClassifier_T.getSuperClasses().add(t_Class);
-		t_AnyClassifier_EnumerationClassifier_T.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_EnumerationClassifier_T);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_OclAny_oclAsType_TT.setInstanceType(t_OclAny_oclAsType_TT);
-		t_AnyClassifier_OclAny_oclAsType_TT.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_OclAny_oclAsType_TT.getTemplateBindings().add(tb_AnyClassifier_OclAny_oclAsType_TT);
-		t_AnyClassifier_OclAny_oclAsType_TT.getSuperClasses().add(t_Class);
-		t_AnyClassifier_OclAny_oclAsType_TT.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_OclAny_oclAsType_TT);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_OclAny_oclIsKindOf_T.setInstanceType(t_OclAny_oclIsKindOf_T);
-		t_AnyClassifier_OclAny_oclIsKindOf_T.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_OclAny_oclIsKindOf_T.getTemplateBindings().add(tb_AnyClassifier_OclAny_oclIsKindOf_T);
-		t_AnyClassifier_OclAny_oclIsKindOf_T.getSuperClasses().add(t_Class);
-		t_AnyClassifier_OclAny_oclIsKindOf_T.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_OclAny_oclIsKindOf_T);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_OclAny_oclIsTypeOf_T.setInstanceType(t_OclAny_oclIsTypeOf_T);
-		t_AnyClassifier_OclAny_oclIsTypeOf_T.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_OclAny_oclIsTypeOf_T.getTemplateBindings().add(tb_AnyClassifier_OclAny_oclIsTypeOf_T);
-		t_AnyClassifier_OclAny_oclIsTypeOf_T.getSuperClasses().add(t_Class);
-		t_AnyClassifier_OclAny_oclIsTypeOf_T.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_OclAny_oclIsTypeOf_T);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_OclInvalid.setInstanceType(t_OclInvalid);
-		t_AnyClassifier_OclInvalid.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_OclInvalid.getTemplateBindings().add(tb_AnyClassifier_OclInvalid_1);
-		t_AnyClassifier_OclInvalid.getSuperClasses().add(t_Class);
-		t_AnyClassifier_OclInvalid.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_OclInvalid);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_OclInvalid_1.setInstanceType(t_OclInvalid);
-		t_AnyClassifier_OclInvalid_1.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_OclInvalid_1.getTemplateBindings().add(tb_AnyClassifier_OclInvalid);
-		t_AnyClassifier_OclInvalid_1.getSuperClasses().add(t_Class);
-		t_AnyClassifier_OclInvalid_1.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_OclInvalid_1);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_OclSelf.setInstanceType(t_OclSelf);
-		t_AnyClassifier_OclSelf.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_OclSelf.getTemplateBindings().add(tb_AnyClassifier_OclSelf);
-		t_AnyClassifier_OclSelf.getSuperClasses().add(t_Class);
-		t_AnyClassifier_OclSelf.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_OclSelf);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_OclVoid.setInstanceType(t_OclVoid);
-		t_AnyClassifier_OclVoid.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_OclVoid.getTemplateBindings().add(tb_AnyClassifier_OclVoid);
-		t_AnyClassifier_OclVoid.getSuperClasses().add(t_Class);
-		t_AnyClassifier_OclVoid.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_OclVoid);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_OrderedSet_selectByKind_TT.setInstanceType(t_OrderedSet_selectByKind_TT);
-		t_AnyClassifier_OrderedSet_selectByKind_TT.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_OrderedSet_selectByKind_TT.getTemplateBindings().add(tb_AnyClassifier_OrderedSet_selectByKind_TT);
-		t_AnyClassifier_OrderedSet_selectByKind_TT.getSuperClasses().add(t_Class);
-		t_AnyClassifier_OrderedSet_selectByKind_TT.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_OrderedSet_selectByKind_TT);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_OrderedSet_selectByType_TT.setInstanceType(t_OrderedSet_selectByType_TT);
-		t_AnyClassifier_OrderedSet_selectByType_TT.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_OrderedSet_selectByType_TT.getTemplateBindings().add(tb_AnyClassifier_OrderedSet_selectByType_TT);
-		t_AnyClassifier_OrderedSet_selectByType_TT.getSuperClasses().add(t_Class);
-		t_AnyClassifier_OrderedSet_selectByType_TT.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_OrderedSet_selectByType_TT);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_Sequence_selectByKind_TT.setInstanceType(t_Sequence_selectByKind_TT);
-		t_AnyClassifier_Sequence_selectByKind_TT.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_Sequence_selectByKind_TT.getTemplateBindings().add(tb_AnyClassifier_Sequence_selectByKind_TT);
-		t_AnyClassifier_Sequence_selectByKind_TT.getSuperClasses().add(t_Class);
-		t_AnyClassifier_Sequence_selectByKind_TT.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_Sequence_selectByKind_TT);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_Sequence_selectByType_TT.setInstanceType(t_Sequence_selectByType_TT);
-		t_AnyClassifier_Sequence_selectByType_TT.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_Sequence_selectByType_TT.getTemplateBindings().add(tb_AnyClassifier_Sequence_selectByType_TT);
-		t_AnyClassifier_Sequence_selectByType_TT.getSuperClasses().add(t_Class);
-		t_AnyClassifier_Sequence_selectByType_TT.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_Sequence_selectByType_TT);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_Set_selectByKind_TT.setInstanceType(t_Set_selectByKind_TT);
-		t_AnyClassifier_Set_selectByKind_TT.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_Set_selectByKind_TT.getTemplateBindings().add(tb_AnyClassifier_Set_selectByKind_TT);
-		t_AnyClassifier_Set_selectByKind_TT.getSuperClasses().add(t_Class);
-		t_AnyClassifier_Set_selectByKind_TT.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_Set_selectByKind_TT);
-		//
-		// ocl::$$::AnyClassifier
-		//
-		t_AnyClassifier_Set_selectByType_TT.setInstanceType(t_Set_selectByType_TT);
-		t_AnyClassifier_Set_selectByType_TT.setUnspecializedElement(t_AnyClassifier);
-		t_AnyClassifier_Set_selectByType_TT.getTemplateBindings().add(tb_AnyClassifier_Set_selectByType_TT);
-		t_AnyClassifier_Set_selectByType_TT.getSuperClasses().add(t_Class);
-		t_AnyClassifier_Set_selectByType_TT.getSuperClasses().add(t_OclType);
-		pk_$$.getOwnedTypes().add(t_AnyClassifier_Set_selectByType_TT);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Tuple.setElementType(t_Tuple_1);
-		t_Bag_Tuple.setUnspecializedElement(t_Bag);
-		t_Bag_Tuple.getTemplateBindings().add(tb_Bag_Tuple);
-		t_Bag_Tuple.getSuperClasses().add(t_Collection_Tuple);
-		pk_$$.getOwnedTypes().add(t_Bag_Tuple);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Tuple_1.setElementType(t_Tuple_1);
-		t_Bag_Tuple_1.setUnspecializedElement(t_Bag);
-		t_Bag_Tuple_1.getTemplateBindings().add(tb_Bag_Tuple_1);
-		t_Bag_Tuple_1.getSuperClasses().add(t_Collection_Tuple);
-		pk_$$.getOwnedTypes().add(t_Bag_Tuple_1);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Bag_collect_V.setElementType(t_Bag_collect_V);
-		t_Bag_Bag_collect_V.setUnspecializedElement(t_Bag);
-		t_Bag_Bag_collect_V.getTemplateBindings().add(tb_Bag_Bag_collect_V);
-		t_Bag_Bag_collect_V.getSuperClasses().add(t_Collection_Bag_collect_V);
-		pk_$$.getOwnedTypes().add(t_Bag_Bag_collect_V);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Bag_flatten_T2.setElementType(t_Bag_flatten_T2);
-		t_Bag_Bag_flatten_T2.setUnspecializedElement(t_Bag);
-		t_Bag_Bag_flatten_T2.getTemplateBindings().add(tb_Bag_Bag_flatten_T2);
-		t_Bag_Bag_flatten_T2.getSuperClasses().add(t_Collection_Bag_flatten_T2);
-		pk_$$.getOwnedTypes().add(t_Bag_Bag_flatten_T2);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Bag_selectByKind_TT.setElementType(t_Bag_selectByKind_TT);
-		t_Bag_Bag_selectByKind_TT.setUnspecializedElement(t_Bag);
-		t_Bag_Bag_selectByKind_TT.getTemplateBindings().add(tb_Bag_Bag_selectByKind_TT);
-		t_Bag_Bag_selectByKind_TT.getSuperClasses().add(t_Collection_Bag_selectByKind_TT);
-		pk_$$.getOwnedTypes().add(t_Bag_Bag_selectByKind_TT);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Bag_selectByType_TT.setElementType(t_Bag_selectByType_TT);
-		t_Bag_Bag_selectByType_TT.setUnspecializedElement(t_Bag);
-		t_Bag_Bag_selectByType_TT.getTemplateBindings().add(tb_Bag_Bag_selectByType_TT);
-		t_Bag_Bag_selectByType_TT.getSuperClasses().add(t_Collection_Bag_selectByType_TT);
-		pk_$$.getOwnedTypes().add(t_Bag_Bag_selectByType_TT);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Bag_T.setElementType(t_Bag_T);
-		t_Bag_Bag_T.setUnspecializedElement(t_Bag);
-		t_Bag_Bag_T.getTemplateBindings().add(tb_Bag_Bag_T);
-		t_Bag_Bag_T.getSuperClasses().add(t_Collection_Bag_T);
-		pk_$$.getOwnedTypes().add(t_Bag_Bag_T);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Bag_T_1.setElementType(t_Bag_T);
-		t_Bag_Bag_T_1.setUnspecializedElement(t_Bag);
-		t_Bag_Bag_T_1.getTemplateBindings().add(tb_Bag_Bag_T_1);
-		t_Bag_Bag_T_1.getSuperClasses().add(t_Collection_Bag_T);
-		pk_$$.getOwnedTypes().add(t_Bag_Bag_T_1);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Bag_T_2.setElementType(t_Bag_T);
-		t_Bag_Bag_T_2.setUnspecializedElement(t_Bag);
-		t_Bag_Bag_T_2.getTemplateBindings().add(tb_Bag_Bag_T_2);
-		t_Bag_Bag_T_2.getSuperClasses().add(t_Collection_Bag_T);
-		pk_$$.getOwnedTypes().add(t_Bag_Bag_T_2);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Bag_T_3.setElementType(t_Bag_T);
-		t_Bag_Bag_T_3.setUnspecializedElement(t_Bag);
-		t_Bag_Bag_T_3.getTemplateBindings().add(tb_Bag_Bag_T_3);
-		t_Bag_Bag_T_3.getSuperClasses().add(t_Collection_Bag_T);
-		pk_$$.getOwnedTypes().add(t_Bag_Bag_T_3);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Collection_T.setElementType(t_Collection_T);
-		t_Bag_Collection_T.setUnspecializedElement(t_Bag);
-		t_Bag_Collection_T.getTemplateBindings().add(tb_Bag_Collection_T);
-		t_Bag_Collection_T.getSuperClasses().add(t_Collection_Collection_T);
-		pk_$$.getOwnedTypes().add(t_Bag_Collection_T);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_OclElement.setElementType(t_OclElement);
-		t_Bag_OclElement.setUnspecializedElement(t_Bag);
-		t_Bag_OclElement.getTemplateBindings().add(tb_Bag_OclElement);
-		t_Bag_OclElement.getSuperClasses().add(t_Collection_OclElement);
-		pk_$$.getOwnedTypes().add(t_Bag_OclElement);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_OclSelf.setElementType(t_OclSelf);
-		t_Bag_OclSelf.setUnspecializedElement(t_Bag);
-		t_Bag_OclSelf.getTemplateBindings().add(tb_Bag_OclSelf_2);
-		t_Bag_OclSelf.getSuperClasses().add(t_Collection_OclSelf);
-		pk_$$.getOwnedTypes().add(t_Bag_OclSelf);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_OclSelf_1.setElementType(t_OclSelf);
-		t_Bag_OclSelf_1.setUnspecializedElement(t_Bag);
-		t_Bag_OclSelf_1.getTemplateBindings().add(tb_Bag_OclSelf_3);
-		t_Bag_OclSelf_1.getSuperClasses().add(t_Collection_OclSelf);
-		pk_$$.getOwnedTypes().add(t_Bag_OclSelf_1);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_OclSelf_2.setElementType(t_OclSelf);
-		t_Bag_OclSelf_2.setUnspecializedElement(t_Bag);
-		t_Bag_OclSelf_2.getTemplateBindings().add(tb_Bag_OclSelf_4);
-		t_Bag_OclSelf_2.getSuperClasses().add(t_Collection_OclSelf);
-		pk_$$.getOwnedTypes().add(t_Bag_OclSelf_2);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_OclSelf_3.setElementType(t_OclSelf);
-		t_Bag_OclSelf_3.setUnspecializedElement(t_Bag);
-		t_Bag_OclSelf_3.getTemplateBindings().add(tb_Bag_OclSelf_1);
-		t_Bag_OclSelf_3.getSuperClasses().add(t_Collection_OclSelf);
-		pk_$$.getOwnedTypes().add(t_Bag_OclSelf_3);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_OclSelf_4.setElementType(t_OclSelf);
-		t_Bag_OclSelf_4.setUnspecializedElement(t_Bag);
-		t_Bag_OclSelf_4.getTemplateBindings().add(tb_Bag_OclSelf);
-		t_Bag_OclSelf_4.getSuperClasses().add(t_Collection_OclSelf);
-		pk_$$.getOwnedTypes().add(t_Bag_OclSelf_4);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_OclSelf_5.setElementType(t_OclSelf);
-		t_Bag_OclSelf_5.setUnspecializedElement(t_Bag);
-		t_Bag_OclSelf_5.getTemplateBindings().add(tb_Bag_OclSelf_5);
-		t_Bag_OclSelf_5.getSuperClasses().add(t_Collection_OclSelf);
-		pk_$$.getOwnedTypes().add(t_Bag_OclSelf_5);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Sequence_T.setElementType(t_Sequence_T);
-		t_Bag_Sequence_T.setUnspecializedElement(t_Bag);
-		t_Bag_Sequence_T.getTemplateBindings().add(tb_Bag_Sequence_T);
-		t_Bag_Sequence_T.getSuperClasses().add(t_Collection_Sequence_T_1);
-		pk_$$.getOwnedTypes().add(t_Bag_Sequence_T);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Set_flatten_T2.setElementType(t_Set_flatten_T2);
-		t_Bag_Set_flatten_T2.setUnspecializedElement(t_Bag);
-		t_Bag_Set_flatten_T2.getTemplateBindings().add(tb_Bag_Set_flatten_T2);
-		t_Bag_Set_flatten_T2.getSuperClasses().add(t_Collection_Set_flatten_T2);
-		pk_$$.getOwnedTypes().add(t_Bag_Set_flatten_T2);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Set_selectByKind_TT.setElementType(t_Set_selectByKind_TT);
-		t_Bag_Set_selectByKind_TT.setUnspecializedElement(t_Bag);
-		t_Bag_Set_selectByKind_TT.getTemplateBindings().add(tb_Bag_Set_selectByKind_TT);
-		t_Bag_Set_selectByKind_TT.getSuperClasses().add(t_Collection_Set_selectByKind_TT);
-		pk_$$.getOwnedTypes().add(t_Bag_Set_selectByKind_TT);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Set_selectByType_TT.setElementType(t_Set_selectByType_TT);
-		t_Bag_Set_selectByType_TT.setUnspecializedElement(t_Bag);
-		t_Bag_Set_selectByType_TT.getTemplateBindings().add(tb_Bag_Set_selectByType_TT);
-		t_Bag_Set_selectByType_TT.getSuperClasses().add(t_Collection_Set_selectByType_TT);
-		pk_$$.getOwnedTypes().add(t_Bag_Set_selectByType_TT);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_Set_T.setElementType(t_Set_T);
-		t_Bag_Set_T.setUnspecializedElement(t_Bag);
-		t_Bag_Set_T.getTemplateBindings().add(tb_Bag_Set_T);
-		t_Bag_Set_T.getSuperClasses().add(t_Collection_Set_T_1);
-		pk_$$.getOwnedTypes().add(t_Bag_Set_T);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_UniqueCollection_T.setElementType(t_UniqueCollection_T);
-		t_Bag_UniqueCollection_T.setUnspecializedElement(t_Bag);
-		t_Bag_UniqueCollection_T.getTemplateBindings().add(tb_Bag_UniqueCollection_T_1);
-		t_Bag_UniqueCollection_T.getSuperClasses().add(t_Collection_UniqueCollection_T);
-		pk_$$.getOwnedTypes().add(t_Bag_UniqueCollection_T);
-		//
-		// ocl::$$::Bag
-		//
-		t_Bag_UniqueCollection_T_1.setElementType(t_UniqueCollection_T);
-		t_Bag_UniqueCollection_T_1.setUnspecializedElement(t_Bag);
-		t_Bag_UniqueCollection_T_1.getTemplateBindings().add(tb_Bag_UniqueCollection_T);
-		t_Bag_UniqueCollection_T_1.getSuperClasses().add(t_Collection_UniqueCollection_T);
-		pk_$$.getOwnedTypes().add(t_Bag_UniqueCollection_T_1);
-		//
-		// ocl::$$::ClassClassifier
-		//
-		t_ClassClassifier_OclInvalid.setInstanceType(t_OclInvalid);
-		t_ClassClassifier_OclInvalid.setUnspecializedElement(t_ClassClassifier);
-		t_ClassClassifier_OclInvalid.getTemplateBindings().add(tb_ClassClassifier_OclInvalid);
-		t_ClassClassifier_OclInvalid.getSuperClasses().add(t_AnyClassifier_OclInvalid);
-		pk_$$.getOwnedTypes().add(t_ClassClassifier_OclInvalid);
-		//
-		// ocl::$$::ClassClassifier
-		//
-		t_ClassClassifier_OclSelf.setInstanceType(t_OclSelf);
-		t_ClassClassifier_OclSelf.setUnspecializedElement(t_ClassClassifier);
-		t_ClassClassifier_OclSelf.getTemplateBindings().add(tb_ClassClassifier_OclSelf);
-		t_ClassClassifier_OclSelf.getSuperClasses().add(t_AnyClassifier_OclSelf);
-		pk_$$.getOwnedTypes().add(t_ClassClassifier_OclSelf);
-		//
-		// ocl::$$::ClassClassifier
-		//
-		t_ClassClassifier_OclVoid.setInstanceType(t_OclVoid);
-		t_ClassClassifier_OclVoid.setUnspecializedElement(t_ClassClassifier);
-		t_ClassClassifier_OclVoid.getTemplateBindings().add(tb_ClassClassifier_OclVoid);
-		t_ClassClassifier_OclVoid.getSuperClasses().add(t_AnyClassifier_OclVoid);
-		pk_$$.getOwnedTypes().add(t_ClassClassifier_OclVoid);
-		//
-		// ocl::$$::CollectionClassifier
-		//
-		t_CollectionClassifier_Collection_T_OclSelf.setInstanceType(t_OclSelf);
-		t_CollectionClassifier_Collection_T_OclSelf.setUnspecializedElement(t_CollectionClassifier);
-		t_CollectionClassifier_Collection_T_OclSelf.getTemplateBindings().add(tb_CollectionClassifier_Collection_T_OclSelf);
-		t_CollectionClassifier_Collection_T_OclSelf.getSuperClasses().add(t_AnyClassifier_OclSelf);
-		pk_$$.getOwnedTypes().add(t_CollectionClassifier_Collection_T_OclSelf);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Integer.setElementType(t_Integer);
-		t_Collection_Integer.setUnspecializedElement(t_Collection);
-		t_Collection_Integer.getTemplateBindings().add(tb_Collection_Integer);
-		t_Collection_Integer.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Integer);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_String.setElementType(t_String);
-		t_Collection_String.setUnspecializedElement(t_Collection);
-		t_Collection_String.getTemplateBindings().add(tb_Collection_String);
-		t_Collection_String.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_String);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Tuple.setElementType(t_Tuple_3);
-		t_Collection_Tuple.setUnspecializedElement(t_Collection);
-		t_Collection_Tuple.getTemplateBindings().add(tb_Collection_Tuple);
-		t_Collection_Tuple.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Tuple);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Tuple_1.setElementType(t_Tuple_3);
-		t_Collection_Tuple_1.setUnspecializedElement(t_Collection);
-		t_Collection_Tuple_1.getTemplateBindings().add(tb_Collection_Tuple_1);
-		t_Collection_Tuple_1.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Tuple_1);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Bag_collect_V.setElementType(t_Bag_collect_V);
-		t_Collection_Bag_collect_V.setUnspecializedElement(t_Collection);
-		t_Collection_Bag_collect_V.getTemplateBindings().add(tb_Collection_Bag_collect_V);
-		t_Collection_Bag_collect_V.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Bag_collect_V);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Bag_flatten_T2.setElementType(t_Bag_flatten_T2);
-		t_Collection_Bag_flatten_T2.setUnspecializedElement(t_Collection);
-		t_Collection_Bag_flatten_T2.getTemplateBindings().add(tb_Collection_Bag_flatten_T2);
-		t_Collection_Bag_flatten_T2.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Bag_flatten_T2);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Bag_selectByKind_TT.setElementType(t_Bag_selectByKind_TT);
-		t_Collection_Bag_selectByKind_TT.setUnspecializedElement(t_Collection);
-		t_Collection_Bag_selectByKind_TT.getTemplateBindings().add(tb_Collection_Bag_selectByKind_TT);
-		t_Collection_Bag_selectByKind_TT.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Bag_selectByKind_TT);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Bag_selectByType_TT.setElementType(t_Bag_selectByType_TT);
-		t_Collection_Bag_selectByType_TT.setUnspecializedElement(t_Collection);
-		t_Collection_Bag_selectByType_TT.getTemplateBindings().add(tb_Collection_Bag_selectByType_TT);
-		t_Collection_Bag_selectByType_TT.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Bag_selectByType_TT);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Bag_T.setElementType(t_Bag_T);
-		t_Collection_Bag_T.setUnspecializedElement(t_Collection);
-		t_Collection_Bag_T.getTemplateBindings().add(tb_Collection_Bag_T_1);
-		t_Collection_Bag_T.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Bag_T);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Bag_T_1.setElementType(t_Bag_T);
-		t_Collection_Bag_T_1.setUnspecializedElement(t_Collection);
-		t_Collection_Bag_T_1.getTemplateBindings().add(tb_Collection_Bag_T);
-		t_Collection_Bag_T_1.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Bag_T_1);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Bag_T_2.setElementType(t_Bag_T);
-		t_Collection_Bag_T_2.setUnspecializedElement(t_Collection);
-		t_Collection_Bag_T_2.getTemplateBindings().add(tb_Collection_Bag_T_2);
-		t_Collection_Bag_T_2.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Bag_T_2);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Collection_collect_V.setElementType(t_Collection_collect_V);
-		t_Collection_Collection_collect_V.setUnspecializedElement(t_Collection);
-		t_Collection_Collection_collect_V.getTemplateBindings().add(tb_Collection_Collection_collect_V);
-		t_Collection_Collection_collect_V.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Collection_collect_V);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Collection_excludesAll_T2.setElementType(t_Collection_excludesAll_T2);
-		t_Collection_Collection_excludesAll_T2.setUnspecializedElement(t_Collection);
-		t_Collection_Collection_excludesAll_T2.getTemplateBindings().add(tb_Collection_Collection_excludesAll_T2);
-		t_Collection_Collection_excludesAll_T2.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Collection_excludesAll_T2);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Collection_flatten_T2.setElementType(t_Collection_flatten_T2);
-		t_Collection_Collection_flatten_T2.setUnspecializedElement(t_Collection);
-		t_Collection_Collection_flatten_T2.getTemplateBindings().add(tb_Collection_Collection_flatten_T2);
-		t_Collection_Collection_flatten_T2.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Collection_flatten_T2);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Collection_includesAll_T2.setElementType(t_Collection_includesAll_T2);
-		t_Collection_Collection_includesAll_T2.setUnspecializedElement(t_Collection);
-		t_Collection_Collection_includesAll_T2.getTemplateBindings().add(tb_Collection_Collection_includesAll_T2);
-		t_Collection_Collection_includesAll_T2.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Collection_includesAll_T2);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Collection_product_T2.setElementType(t_Collection_product_T2);
-		t_Collection_Collection_product_T2.setUnspecializedElement(t_Collection);
-		t_Collection_Collection_product_T2.getTemplateBindings().add(tb_Collection_Collection_product_T2);
-		t_Collection_Collection_product_T2.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Collection_product_T2);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Collection_selectByKind_TT.setElementType(t_Collection_selectByKind_TT);
-		t_Collection_Collection_selectByKind_TT.setUnspecializedElement(t_Collection);
-		t_Collection_Collection_selectByKind_TT.getTemplateBindings().add(tb_Collection_Collection_selectByKind_TT);
-		t_Collection_Collection_selectByKind_TT.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Collection_selectByKind_TT);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Collection_selectByType_TT.setElementType(t_Collection_selectByType_TT);
-		t_Collection_Collection_selectByType_TT.setUnspecializedElement(t_Collection);
-		t_Collection_Collection_selectByType_TT.getTemplateBindings().add(tb_Collection_Collection_selectByType_TT);
-		t_Collection_Collection_selectByType_TT.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Collection_selectByType_TT);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Collection_T.setElementType(t_Collection_T);
-		t_Collection_Collection_T.setUnspecializedElement(t_Collection);
-		t_Collection_Collection_T.getTemplateBindings().add(tb_Collection_Collection_T_2);
-		t_Collection_Collection_T.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Collection_T);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Collection_T_1.setElementType(t_Collection_T);
-		t_Collection_Collection_T_1.setUnspecializedElement(t_Collection);
-		t_Collection_Collection_T_1.getTemplateBindings().add(tb_Collection_Collection_T);
-		t_Collection_Collection_T_1.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Collection_T_1);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Collection_T_2.setElementType(t_Collection_T);
-		t_Collection_Collection_T_2.setUnspecializedElement(t_Collection);
-		t_Collection_Collection_T_2.getTemplateBindings().add(tb_Collection_Collection_T_1);
-		t_Collection_Collection_T_2.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Collection_T_2);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_EnumerationLiteral.setElementType(t_EnumerationLiteral);
-		t_Collection_EnumerationLiteral.setUnspecializedElement(t_Collection);
-		t_Collection_EnumerationLiteral.getTemplateBindings().add(tb_Collection_EnumerationLiteral);
-		t_Collection_EnumerationLiteral.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_EnumerationLiteral);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_OclAny.setElementType(t_OclAny);
-		t_Collection_OclAny.setUnspecializedElement(t_Collection);
-		t_Collection_OclAny.getTemplateBindings().add(tb_Collection_OclAny);
-		t_Collection_OclAny.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_OclAny);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_OclAny_1.setElementType(t_OclAny);
-		t_Collection_OclAny_1.setUnspecializedElement(t_Collection);
-		t_Collection_OclAny_1.getTemplateBindings().add(tb_Collection_OclAny_2);
-		t_Collection_OclAny_1.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_OclAny_1);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_OclAny_2.setElementType(t_OclAny);
-		t_Collection_OclAny_2.setUnspecializedElement(t_Collection);
-		t_Collection_OclAny_2.getTemplateBindings().add(tb_Collection_OclAny_3);
-		t_Collection_OclAny_2.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_OclAny_2);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_OclAny_3.setElementType(t_OclAny);
-		t_Collection_OclAny_3.setUnspecializedElement(t_Collection);
-		t_Collection_OclAny_3.getTemplateBindings().add(tb_Collection_OclAny_1);
-		t_Collection_OclAny_3.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_OclAny_3);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_OclElement.setElementType(t_OclElement);
-		t_Collection_OclElement.setUnspecializedElement(t_Collection);
-		t_Collection_OclElement.getTemplateBindings().add(tb_Collection_OclElement);
-		t_Collection_OclElement.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_OclElement);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_OclSelf.setElementType(t_OclSelf);
-		t_Collection_OclSelf.setUnspecializedElement(t_Collection);
-		t_Collection_OclSelf.getTemplateBindings().add(tb_Collection_OclSelf);
-		t_Collection_OclSelf.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_OclSelf);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_OrderedSet_flatten_T2.setElementType(t_OrderedSet_flatten_T2);
-		t_Collection_OrderedSet_flatten_T2.setUnspecializedElement(t_Collection);
-		t_Collection_OrderedSet_flatten_T2.getTemplateBindings().add(tb_Collection_OrderedSet_flatten_T2);
-		t_Collection_OrderedSet_flatten_T2.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_OrderedSet_flatten_T2);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_OrderedSet_selectByKind_TT.setElementType(t_OrderedSet_selectByKind_TT);
-		t_Collection_OrderedSet_selectByKind_TT.setUnspecializedElement(t_Collection);
-		t_Collection_OrderedSet_selectByKind_TT.getTemplateBindings().add(tb_Collection_OrderedSet_selectByKind_TT);
-		t_Collection_OrderedSet_selectByKind_TT.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_OrderedSet_selectByKind_TT);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_OrderedSet_selectByType_TT.setElementType(t_OrderedSet_selectByType_TT);
-		t_Collection_OrderedSet_selectByType_TT.setUnspecializedElement(t_Collection);
-		t_Collection_OrderedSet_selectByType_TT.getTemplateBindings().add(tb_Collection_OrderedSet_selectByType_TT);
-		t_Collection_OrderedSet_selectByType_TT.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_OrderedSet_selectByType_TT);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_OrderedSet_T.setElementType(t_OrderedSet_T);
-		t_Collection_OrderedSet_T.setUnspecializedElement(t_Collection);
-		t_Collection_OrderedSet_T.getTemplateBindings().add(tb_Collection_OrderedSet_T_1);
-		t_Collection_OrderedSet_T.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_OrderedSet_T);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_OrderedSet_T_1.setElementType(t_OrderedSet_T);
-		t_Collection_OrderedSet_T_1.setUnspecializedElement(t_Collection);
-		t_Collection_OrderedSet_T_1.getTemplateBindings().add(tb_Collection_OrderedSet_T);
-		t_Collection_OrderedSet_T_1.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_OrderedSet_T_1);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Sequence_collect_V.setElementType(t_Sequence_collect_V);
-		t_Collection_Sequence_collect_V.setUnspecializedElement(t_Collection);
-		t_Collection_Sequence_collect_V.getTemplateBindings().add(tb_Collection_Sequence_collect_V);
-		t_Collection_Sequence_collect_V.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Sequence_collect_V);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Sequence_flatten_T2.setElementType(t_Sequence_flatten_T2);
-		t_Collection_Sequence_flatten_T2.setUnspecializedElement(t_Collection);
-		t_Collection_Sequence_flatten_T2.getTemplateBindings().add(tb_Collection_Sequence_flatten_T2);
-		t_Collection_Sequence_flatten_T2.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Sequence_flatten_T2);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Sequence_selectByKind_TT.setElementType(t_Sequence_selectByKind_TT);
-		t_Collection_Sequence_selectByKind_TT.setUnspecializedElement(t_Collection);
-		t_Collection_Sequence_selectByKind_TT.getTemplateBindings().add(tb_Collection_Sequence_selectByKind_TT);
-		t_Collection_Sequence_selectByKind_TT.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Sequence_selectByKind_TT);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Sequence_selectByType_TT.setElementType(t_Sequence_selectByType_TT);
-		t_Collection_Sequence_selectByType_TT.setUnspecializedElement(t_Collection);
-		t_Collection_Sequence_selectByType_TT.getTemplateBindings().add(tb_Collection_Sequence_selectByType_TT);
-		t_Collection_Sequence_selectByType_TT.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Sequence_selectByType_TT);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Sequence_T.setElementType(t_Sequence_T);
-		t_Collection_Sequence_T.setUnspecializedElement(t_Collection);
-		t_Collection_Sequence_T.getTemplateBindings().add(tb_Collection_Sequence_T);
-		t_Collection_Sequence_T.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Sequence_T);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Sequence_T_1.setElementType(t_Sequence_T);
-		t_Collection_Sequence_T_1.setUnspecializedElement(t_Collection);
-		t_Collection_Sequence_T_1.getTemplateBindings().add(tb_Collection_Sequence_T_1);
-		t_Collection_Sequence_T_1.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Sequence_T_1);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Set_flatten_T2.setElementType(t_Set_flatten_T2);
-		t_Collection_Set_flatten_T2.setUnspecializedElement(t_Collection);
-		t_Collection_Set_flatten_T2.getTemplateBindings().add(tb_Collection_Set_flatten_T2);
-		t_Collection_Set_flatten_T2.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Set_flatten_T2);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Set_selectByKind_TT.setElementType(t_Set_selectByKind_TT);
-		t_Collection_Set_selectByKind_TT.setUnspecializedElement(t_Collection);
-		t_Collection_Set_selectByKind_TT.getTemplateBindings().add(tb_Collection_Set_selectByKind_TT);
-		t_Collection_Set_selectByKind_TT.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Set_selectByKind_TT);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Set_selectByType_TT.setElementType(t_Set_selectByType_TT);
-		t_Collection_Set_selectByType_TT.setUnspecializedElement(t_Collection);
-		t_Collection_Set_selectByType_TT.getTemplateBindings().add(tb_Collection_Set_selectByType_TT);
-		t_Collection_Set_selectByType_TT.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Set_selectByType_TT);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Set_T.setElementType(t_Set_T);
-		t_Collection_Set_T.setUnspecializedElement(t_Collection);
-		t_Collection_Set_T.getTemplateBindings().add(tb_Collection_Set_T_1);
-		t_Collection_Set_T.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Set_T);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_Set_T_1.setElementType(t_Set_T);
-		t_Collection_Set_T_1.setUnspecializedElement(t_Collection);
-		t_Collection_Set_T_1.getTemplateBindings().add(tb_Collection_Set_T);
-		t_Collection_Set_T_1.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_Set_T_1);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_UniqueCollection_T.setElementType(t_UniqueCollection_T);
-		t_Collection_UniqueCollection_T.setUnspecializedElement(t_Collection);
-		t_Collection_UniqueCollection_T.getTemplateBindings().add(tb_Collection_UniqueCollection_T);
-		t_Collection_UniqueCollection_T.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_UniqueCollection_T);
-		//
-		// ocl::$$::Collection
-		//
-		t_Collection_UniqueCollection_T_1.setElementType(t_UniqueCollection_T);
-		t_Collection_UniqueCollection_T_1.setUnspecializedElement(t_Collection);
-		t_Collection_UniqueCollection_T_1.getTemplateBindings().add(tb_Collection_UniqueCollection_T_1);
-		t_Collection_UniqueCollection_T_1.getSuperClasses().add(t_OclAny);
-		pk_$$.getOwnedTypes().add(t_Collection_UniqueCollection_T_1);
-		//
-		// ocl::$$::EnumerationClassifier
-		//
-		t_EnumerationClassifier_OclSelf.setInstanceType(t_OclSelf);
-		t_EnumerationClassifier_OclSelf.setUnspecializedElement(t_EnumerationClassifier);
-		t_EnumerationClassifier_OclSelf.getTemplateBindings().add(tb_EnumerationClassifier_OclSelf);
-		t_EnumerationClassifier_OclSelf.getSuperClasses().add(t_AnyClassifier_OclSelf);
-		pk_$$.getOwnedTypes().add(t_EnumerationClassifier_OclSelf);
-		//
-		// ocl::$$::OrderedSet
-		//
-		t_OrderedSet_Collection_T.setElementType(t_Collection_T);
-		t_OrderedSet_Collection_T.setUnspecializedElement(t_OrderedSet);
-		t_OrderedSet_Collection_T.getTemplateBindings().add(tb_OrderedSet_Collection_T);
-		t_OrderedSet_Collection_T.getSuperClasses().add(t_Sequence_Collection_T);
-		t_OrderedSet_Collection_T.getSuperClasses().add(t_UniqueCollection_Collection_T);
-		pk_$$.getOwnedTypes().add(t_OrderedSet_Collection_T);
-		//
-		// ocl::$$::OrderedSet
-		//
-		t_OrderedSet_EnumerationLiteral.setElementType(t_EnumerationLiteral);
-		t_OrderedSet_EnumerationLiteral.setUnspecializedElement(t_OrderedSet);
-		t_OrderedSet_EnumerationLiteral.getTemplateBindings().add(tb_OrderedSet_EnumerationLiteral);
-		t_OrderedSet_EnumerationLiteral.getSuperClasses().add(t_Sequence_EnumerationLiteral);
-		t_OrderedSet_EnumerationLiteral.getSuperClasses().add(t_UniqueCollection_EnumerationLiteral);
-		pk_$$.getOwnedTypes().add(t_OrderedSet_EnumerationLiteral);
-		//
-		// ocl::$$::OrderedSet
-		//
-		t_OrderedSet_OrderedSet_flatten_T2.setElementType(t_OrderedSet_flatten_T2);
-		t_OrderedSet_OrderedSet_flatten_T2.setUnspecializedElement(t_OrderedSet);
-		t_OrderedSet_OrderedSet_flatten_T2.getTemplateBindings().add(tb_OrderedSet_OrderedSet_flatten_T2);
-		t_OrderedSet_OrderedSet_flatten_T2.getSuperClasses().add(t_Sequence_OrderedSet_flatten_T2);
-		t_OrderedSet_OrderedSet_flatten_T2.getSuperClasses().add(t_UniqueCollection_OrderedSet_flatten_T2);
-		pk_$$.getOwnedTypes().add(t_OrderedSet_OrderedSet_flatten_T2);
-		//
-		// ocl::$$::OrderedSet
-		//
-		t_OrderedSet_OrderedSet_selectByKind_TT.setElementType(t_OrderedSet_selectByKind_TT);
-		t_OrderedSet_OrderedSet_selectByKind_TT.setUnspecializedElement(t_OrderedSet);
-		t_OrderedSet_OrderedSet_selectByKind_TT.getTemplateBindings().add(tb_OrderedSet_OrderedSet_selectByKind_TT);
-		t_OrderedSet_OrderedSet_selectByKind_TT.getSuperClasses().add(t_Sequence_OrderedSet_selectByKind_TT);
-		t_OrderedSet_OrderedSet_selectByKind_TT.getSuperClasses().add(t_UniqueCollection_OrderedSet_selectByKind_TT);
-		pk_$$.getOwnedTypes().add(t_OrderedSet_OrderedSet_selectByKind_TT);
-		//
-		// ocl::$$::OrderedSet
-		//
-		t_OrderedSet_OrderedSet_selectByType_TT.setElementType(t_OrderedSet_selectByType_TT);
-		t_OrderedSet_OrderedSet_selectByType_TT.setUnspecializedElement(t_OrderedSet);
-		t_OrderedSet_OrderedSet_selectByType_TT.getTemplateBindings().add(tb_OrderedSet_OrderedSet_selectByType_TT);
-		t_OrderedSet_OrderedSet_selectByType_TT.getSuperClasses().add(t_Sequence_OrderedSet_selectByType_TT);
-		t_OrderedSet_OrderedSet_selectByType_TT.getSuperClasses().add(t_UniqueCollection_OrderedSet_selectByType_TT);
-		pk_$$.getOwnedTypes().add(t_OrderedSet_OrderedSet_selectByType_TT);
-		//
-		// ocl::$$::OrderedSet
-		//
-		t_OrderedSet_Sequence_T.setElementType(t_Sequence_T);
-		t_OrderedSet_Sequence_T.setUnspecializedElement(t_OrderedSet);
-		t_OrderedSet_Sequence_T.getTemplateBindings().add(tb_OrderedSet_Sequence_T);
-		t_OrderedSet_Sequence_T.getSuperClasses().add(t_Sequence_Sequence_T_2);
-		t_OrderedSet_Sequence_T.getSuperClasses().add(t_UniqueCollection_Sequence_T);
-		pk_$$.getOwnedTypes().add(t_OrderedSet_Sequence_T);
-		//
-		// ocl::$$::OrderedSet
-		//
-		t_OrderedSet_Set_T.setElementType(t_Set_T);
-		t_OrderedSet_Set_T.setUnspecializedElement(t_OrderedSet);
-		t_OrderedSet_Set_T.getTemplateBindings().add(tb_OrderedSet_Set_T);
-		t_OrderedSet_Set_T.getSuperClasses().add(t_Sequence_Set_T);
-		t_OrderedSet_Set_T.getSuperClasses().add(t_UniqueCollection_Set_T);
-		pk_$$.getOwnedTypes().add(t_OrderedSet_Set_T);
-		//
-		// ocl::$$::OrderedSet
-		//
-		t_OrderedSet_UniqueCollection_T.setElementType(t_UniqueCollection_T);
-		t_OrderedSet_UniqueCollection_T.setUnspecializedElement(t_OrderedSet);
-		t_OrderedSet_UniqueCollection_T.getTemplateBindings().add(tb_OrderedSet_UniqueCollection_T);
-		t_OrderedSet_UniqueCollection_T.getSuperClasses().add(t_Sequence_UniqueCollection_T);
-		t_OrderedSet_UniqueCollection_T.getSuperClasses().add(t_UniqueCollection_UniqueCollection_T);
-		pk_$$.getOwnedTypes().add(t_OrderedSet_UniqueCollection_T);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_Integer.setElementType(t_Integer);
-		t_Sequence_Integer.setUnspecializedElement(t_Sequence);
-		t_Sequence_Integer.getTemplateBindings().add(tb_Sequence_Integer);
-		t_Sequence_Integer.getSuperClasses().add(t_Collection_Integer);
-		pk_$$.getOwnedTypes().add(t_Sequence_Integer);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_String.setElementType(t_String);
-		t_Sequence_String.setUnspecializedElement(t_Sequence);
-		t_Sequence_String.getTemplateBindings().add(tb_Sequence_String);
-		t_Sequence_String.getSuperClasses().add(t_Collection_String);
-		pk_$$.getOwnedTypes().add(t_Sequence_String);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_Bag_T.setElementType(t_Bag_T);
-		t_Sequence_Bag_T.setUnspecializedElement(t_Sequence);
-		t_Sequence_Bag_T.getTemplateBindings().add(tb_Sequence_Bag_T);
-		t_Sequence_Bag_T.getSuperClasses().add(t_Collection_Bag_T);
-		pk_$$.getOwnedTypes().add(t_Sequence_Bag_T);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_Collection_T.setElementType(t_Collection_T);
-		t_Sequence_Collection_T.setUnspecializedElement(t_Sequence);
-		t_Sequence_Collection_T.getTemplateBindings().add(tb_Sequence_Collection_T);
-		t_Sequence_Collection_T.getSuperClasses().add(t_Collection_Collection_T_1);
-		pk_$$.getOwnedTypes().add(t_Sequence_Collection_T);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_EnumerationLiteral.setElementType(t_EnumerationLiteral);
-		t_Sequence_EnumerationLiteral.setUnspecializedElement(t_Sequence);
-		t_Sequence_EnumerationLiteral.getTemplateBindings().add(tb_Sequence_EnumerationLiteral);
-		t_Sequence_EnumerationLiteral.getSuperClasses().add(t_Collection_EnumerationLiteral);
-		pk_$$.getOwnedTypes().add(t_Sequence_EnumerationLiteral);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_OrderedSet_flatten_T2.setElementType(t_OrderedSet_flatten_T2);
-		t_Sequence_OrderedSet_flatten_T2.setUnspecializedElement(t_Sequence);
-		t_Sequence_OrderedSet_flatten_T2.getTemplateBindings().add(tb_Sequence_OrderedSet_flatten_T2);
-		t_Sequence_OrderedSet_flatten_T2.getSuperClasses().add(t_Collection_OrderedSet_flatten_T2);
-		pk_$$.getOwnedTypes().add(t_Sequence_OrderedSet_flatten_T2);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_OrderedSet_selectByKind_TT.setElementType(t_OrderedSet_selectByKind_TT);
-		t_Sequence_OrderedSet_selectByKind_TT.setUnspecializedElement(t_Sequence);
-		t_Sequence_OrderedSet_selectByKind_TT.getTemplateBindings().add(tb_Sequence_OrderedSet_selectByKind_TT);
-		t_Sequence_OrderedSet_selectByKind_TT.getSuperClasses().add(t_Collection_OrderedSet_selectByKind_TT);
-		pk_$$.getOwnedTypes().add(t_Sequence_OrderedSet_selectByKind_TT);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_OrderedSet_selectByType_TT.setElementType(t_OrderedSet_selectByType_TT);
-		t_Sequence_OrderedSet_selectByType_TT.setUnspecializedElement(t_Sequence);
-		t_Sequence_OrderedSet_selectByType_TT.getTemplateBindings().add(tb_Sequence_OrderedSet_selectByType_TT);
-		t_Sequence_OrderedSet_selectByType_TT.getSuperClasses().add(t_Collection_OrderedSet_selectByType_TT);
-		pk_$$.getOwnedTypes().add(t_Sequence_OrderedSet_selectByType_TT);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_OrderedSet_T.setElementType(t_OrderedSet_T);
-		t_Sequence_OrderedSet_T.setUnspecializedElement(t_Sequence);
-		t_Sequence_OrderedSet_T.getTemplateBindings().add(tb_Sequence_OrderedSet_T);
-		t_Sequence_OrderedSet_T.getSuperClasses().add(t_Collection_OrderedSet_T);
-		pk_$$.getOwnedTypes().add(t_Sequence_OrderedSet_T);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_Sequence_collect_V.setElementType(t_Sequence_collect_V);
-		t_Sequence_Sequence_collect_V.setUnspecializedElement(t_Sequence);
-		t_Sequence_Sequence_collect_V.getTemplateBindings().add(tb_Sequence_Sequence_collect_V);
-		t_Sequence_Sequence_collect_V.getSuperClasses().add(t_Collection_Sequence_collect_V);
-		pk_$$.getOwnedTypes().add(t_Sequence_Sequence_collect_V);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_Sequence_flatten_T2.setElementType(t_Sequence_flatten_T2);
-		t_Sequence_Sequence_flatten_T2.setUnspecializedElement(t_Sequence);
-		t_Sequence_Sequence_flatten_T2.getTemplateBindings().add(tb_Sequence_Sequence_flatten_T2);
-		t_Sequence_Sequence_flatten_T2.getSuperClasses().add(t_Collection_Sequence_flatten_T2);
-		pk_$$.getOwnedTypes().add(t_Sequence_Sequence_flatten_T2);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_Sequence_selectByKind_TT.setElementType(t_Sequence_selectByKind_TT);
-		t_Sequence_Sequence_selectByKind_TT.setUnspecializedElement(t_Sequence);
-		t_Sequence_Sequence_selectByKind_TT.getTemplateBindings().add(tb_Sequence_Sequence_selectByKind_TT);
-		t_Sequence_Sequence_selectByKind_TT.getSuperClasses().add(t_Collection_Sequence_selectByKind_TT);
-		pk_$$.getOwnedTypes().add(t_Sequence_Sequence_selectByKind_TT);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_Sequence_selectByType_TT.setElementType(t_Sequence_selectByType_TT);
-		t_Sequence_Sequence_selectByType_TT.setUnspecializedElement(t_Sequence);
-		t_Sequence_Sequence_selectByType_TT.getTemplateBindings().add(tb_Sequence_Sequence_selectByType_TT);
-		t_Sequence_Sequence_selectByType_TT.getSuperClasses().add(t_Collection_Sequence_selectByType_TT);
-		pk_$$.getOwnedTypes().add(t_Sequence_Sequence_selectByType_TT);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_Sequence_T.setElementType(t_Sequence_T);
-		t_Sequence_Sequence_T.setUnspecializedElement(t_Sequence);
-		t_Sequence_Sequence_T.getTemplateBindings().add(tb_Sequence_Sequence_T_1);
-		t_Sequence_Sequence_T.getSuperClasses().add(t_Collection_Sequence_T_1);
-		pk_$$.getOwnedTypes().add(t_Sequence_Sequence_T);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_Sequence_T_1.setElementType(t_Sequence_T);
-		t_Sequence_Sequence_T_1.setUnspecializedElement(t_Sequence);
-		t_Sequence_Sequence_T_1.getTemplateBindings().add(tb_Sequence_Sequence_T_2);
-		t_Sequence_Sequence_T_1.getSuperClasses().add(t_Collection_Sequence_T_1);
-		pk_$$.getOwnedTypes().add(t_Sequence_Sequence_T_1);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_Sequence_T_2.setElementType(t_Sequence_T);
-		t_Sequence_Sequence_T_2.setUnspecializedElement(t_Sequence);
-		t_Sequence_Sequence_T_2.getTemplateBindings().add(tb_Sequence_Sequence_T);
-		t_Sequence_Sequence_T_2.getSuperClasses().add(t_Collection_Sequence_T_1);
-		pk_$$.getOwnedTypes().add(t_Sequence_Sequence_T_2);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_Set_T.setElementType(t_Set_T);
-		t_Sequence_Set_T.setUnspecializedElement(t_Sequence);
-		t_Sequence_Set_T.getTemplateBindings().add(tb_Sequence_Set_T);
-		t_Sequence_Set_T.getSuperClasses().add(t_Collection_Set_T_1);
-		pk_$$.getOwnedTypes().add(t_Sequence_Set_T);
-		//
-		// ocl::$$::Sequence
-		//
-		t_Sequence_UniqueCollection_T.setElementType(t_UniqueCollection_T);
-		t_Sequence_UniqueCollection_T.setUnspecializedElement(t_Sequence);
-		t_Sequence_UniqueCollection_T.getTemplateBindings().add(tb_Sequence_UniqueCollection_T);
-		t_Sequence_UniqueCollection_T.getSuperClasses().add(t_Collection_UniqueCollection_T);
-		pk_$$.getOwnedTypes().add(t_Sequence_UniqueCollection_T);
-		//
-		// ocl::$$::Set
-		//
-		t_Set_Tuple.setElementType(t_Tuple_1);
-		t_Set_Tuple.setUnspecializedElement(t_Set);
-		t_Set_Tuple.getTemplateBindings().add(tb_Set_Tuple);
-		t_Set_Tuple.getSuperClasses().add(t_Bag_Tuple_1);
-		t_Set_Tuple.getSuperClasses().add(t_UniqueCollection_Tuple);
-		pk_$$.getOwnedTypes().add(t_Set_Tuple);
-		//
-		// ocl::$$::Set
-		//
-		t_Set_Bag_T.setElementType(t_Bag_T);
-		t_Set_Bag_T.setUnspecializedElement(t_Set);
-		t_Set_Bag_T.getTemplateBindings().add(tb_Set_Bag_T);
-		t_Set_Bag_T.getSuperClasses().add(t_Bag_Bag_T_2);
-		t_Set_Bag_T.getSuperClasses().add(t_UniqueCollection_Bag_T_2);
-		pk_$$.getOwnedTypes().add(t_Set_Bag_T);
-		//
-		// ocl::$$::Set
-		//
-		t_Set_Collection_T.setElementType(t_Collection_T);
-		t_Set_Collection_T.setUnspecializedElement(t_Set);
-		t_Set_Collection_T.getTemplateBindings().add(tb_Set_Collection_T);
-		t_Set_Collection_T.getSuperClasses().add(t_Bag_Collection_T);
-		t_Set_Collection_T.getSuperClasses().add(t_UniqueCollection_Collection_T);
-		pk_$$.getOwnedTypes().add(t_Set_Collection_T);
-		//
-		// ocl::$$::Set
-		//
-		t_Set_OclElement.setElementType(t_OclElement);
-		t_Set_OclElement.setUnspecializedElement(t_Set);
-		t_Set_OclElement.getTemplateBindings().add(tb_Set_OclElement);
-		t_Set_OclElement.getSuperClasses().add(t_Bag_OclElement);
-		t_Set_OclElement.getSuperClasses().add(t_UniqueCollection_OclElement);
-		pk_$$.getOwnedTypes().add(t_Set_OclElement);
-		//
-		// ocl::$$::Set
-		//
-		t_Set_OclSelf.setElementType(t_OclSelf);
-		t_Set_OclSelf.setUnspecializedElement(t_Set);
-		t_Set_OclSelf.getTemplateBindings().add(tb_Set_OclSelf);
-		t_Set_OclSelf.getSuperClasses().add(t_Bag_OclSelf_3);
-		t_Set_OclSelf.getSuperClasses().add(t_UniqueCollection_OclSelf_5);
-		pk_$$.getOwnedTypes().add(t_Set_OclSelf);
-		//
-		// ocl::$$::Set
-		//
-		t_Set_Set_flatten_T2.setElementType(t_Set_flatten_T2);
-		t_Set_Set_flatten_T2.setUnspecializedElement(t_Set);
-		t_Set_Set_flatten_T2.getTemplateBindings().add(tb_Set_Set_flatten_T2);
-		t_Set_Set_flatten_T2.getSuperClasses().add(t_Bag_Set_flatten_T2);
-		t_Set_Set_flatten_T2.getSuperClasses().add(t_UniqueCollection_Set_flatten_T2);
-		pk_$$.getOwnedTypes().add(t_Set_Set_flatten_T2);
-		//
-		// ocl::$$::Set
-		//
-		t_Set_Set_selectByKind_TT.setElementType(t_Set_selectByKind_TT);
-		t_Set_Set_selectByKind_TT.setUnspecializedElement(t_Set);
-		t_Set_Set_selectByKind_TT.getTemplateBindings().add(tb_Set_Set_selectByKind_TT);
-		t_Set_Set_selectByKind_TT.getSuperClasses().add(t_Bag_Set_selectByKind_TT);
-		t_Set_Set_selectByKind_TT.getSuperClasses().add(t_UniqueCollection_Set_selectByKind_TT);
-		pk_$$.getOwnedTypes().add(t_Set_Set_selectByKind_TT);
-		//
-		// ocl::$$::Set
-		//
-		t_Set_Set_selectByType_TT.setElementType(t_Set_selectByType_TT);
-		t_Set_Set_selectByType_TT.setUnspecializedElement(t_Set);
-		t_Set_Set_selectByType_TT.getTemplateBindings().add(tb_Set_Set_selectByType_TT);
-		t_Set_Set_selectByType_TT.getSuperClasses().add(t_Bag_Set_selectByType_TT);
-		t_Set_Set_selectByType_TT.getSuperClasses().add(t_UniqueCollection_Set_selectByType_TT);
-		pk_$$.getOwnedTypes().add(t_Set_Set_selectByType_TT);
-		//
-		// ocl::$$::Set
-		//
-		t_Set_UniqueCollection_T.setElementType(t_UniqueCollection_T);
-		t_Set_UniqueCollection_T.setUnspecializedElement(t_Set);
-		t_Set_UniqueCollection_T.getTemplateBindings().add(tb_Set_UniqueCollection_T);
-		t_Set_UniqueCollection_T.getSuperClasses().add(t_Bag_UniqueCollection_T);
-		t_Set_UniqueCollection_T.getSuperClasses().add(t_UniqueCollection_UniqueCollection_T_1);
-		pk_$$.getOwnedTypes().add(t_Set_UniqueCollection_T);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_Tuple.setElementType(t_Tuple_1);
-		t_UniqueCollection_Tuple.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_Tuple.getTemplateBindings().add(tb_UniqueCollection_Tuple_1);
-		t_UniqueCollection_Tuple.getSuperClasses().add(t_Collection_Tuple);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_Tuple);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_Tuple_1.setElementType(t_Tuple_1);
-		t_UniqueCollection_Tuple_1.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_Tuple_1.getTemplateBindings().add(tb_UniqueCollection_Tuple);
-		t_UniqueCollection_Tuple_1.getSuperClasses().add(t_Collection_Tuple);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_Tuple_1);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_Bag_T.setElementType(t_Bag_T);
-		t_UniqueCollection_Bag_T.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_Bag_T.getTemplateBindings().add(tb_UniqueCollection_Bag_T_2);
-		t_UniqueCollection_Bag_T.getSuperClasses().add(t_Collection_Bag_T);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_Bag_T);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_Bag_T_1.setElementType(t_Bag_T);
-		t_UniqueCollection_Bag_T_1.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_Bag_T_1.getTemplateBindings().add(tb_UniqueCollection_Bag_T);
-		t_UniqueCollection_Bag_T_1.getSuperClasses().add(t_Collection_Bag_T);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_Bag_T_1);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_Bag_T_2.setElementType(t_Bag_T);
-		t_UniqueCollection_Bag_T_2.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_Bag_T_2.getTemplateBindings().add(tb_UniqueCollection_Bag_T_1);
-		t_UniqueCollection_Bag_T_2.getSuperClasses().add(t_Collection_Bag_T);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_Bag_T_2);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_Bag_T_3.setElementType(t_Bag_T);
-		t_UniqueCollection_Bag_T_3.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_Bag_T_3.getTemplateBindings().add(tb_UniqueCollection_Bag_T_3);
-		t_UniqueCollection_Bag_T_3.getSuperClasses().add(t_Collection_Bag_T_2);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_Bag_T_3);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_Collection_T.setElementType(t_Collection_T);
-		t_UniqueCollection_Collection_T.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_Collection_T.getTemplateBindings().add(tb_UniqueCollection_Collection_T);
-		t_UniqueCollection_Collection_T.getSuperClasses().add(t_Collection_Collection_T);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_Collection_T);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_EnumerationLiteral.setElementType(t_EnumerationLiteral);
-		t_UniqueCollection_EnumerationLiteral.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_EnumerationLiteral.getTemplateBindings().add(tb_UniqueCollection_EnumerationLiteral);
-		t_UniqueCollection_EnumerationLiteral.getSuperClasses().add(t_Collection_EnumerationLiteral);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_EnumerationLiteral);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_OclAny.setElementType(t_OclAny);
-		t_UniqueCollection_OclAny.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_OclAny.getTemplateBindings().add(tb_UniqueCollection_OclAny);
-		t_UniqueCollection_OclAny.getSuperClasses().add(t_Collection_OclAny_3);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_OclAny);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_OclElement.setElementType(t_OclElement);
-		t_UniqueCollection_OclElement.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_OclElement.getTemplateBindings().add(tb_UniqueCollection_OclElement);
-		t_UniqueCollection_OclElement.getSuperClasses().add(t_Collection_OclElement);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_OclElement);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_OclSelf.setElementType(t_OclSelf);
-		t_UniqueCollection_OclSelf.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_OclSelf.getTemplateBindings().add(tb_UniqueCollection_OclSelf_5);
-		t_UniqueCollection_OclSelf.getSuperClasses().add(t_Collection_OclSelf);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_OclSelf);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_OclSelf_1.setElementType(t_OclSelf);
-		t_UniqueCollection_OclSelf_1.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_OclSelf_1.getTemplateBindings().add(tb_UniqueCollection_OclSelf_1);
-		t_UniqueCollection_OclSelf_1.getSuperClasses().add(t_Collection_OclSelf);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_OclSelf_1);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_OclSelf_2.setElementType(t_OclSelf);
-		t_UniqueCollection_OclSelf_2.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_OclSelf_2.getTemplateBindings().add(tb_UniqueCollection_OclSelf);
-		t_UniqueCollection_OclSelf_2.getSuperClasses().add(t_Collection_OclSelf);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_OclSelf_2);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_OclSelf_3.setElementType(t_OclSelf);
-		t_UniqueCollection_OclSelf_3.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_OclSelf_3.getTemplateBindings().add(tb_UniqueCollection_OclSelf_2);
-		t_UniqueCollection_OclSelf_3.getSuperClasses().add(t_Collection_OclSelf);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_OclSelf_3);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_OclSelf_4.setElementType(t_OclSelf);
-		t_UniqueCollection_OclSelf_4.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_OclSelf_4.getTemplateBindings().add(tb_UniqueCollection_OclSelf_4);
-		t_UniqueCollection_OclSelf_4.getSuperClasses().add(t_Collection_OclSelf);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_OclSelf_4);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_OclSelf_5.setElementType(t_OclSelf);
-		t_UniqueCollection_OclSelf_5.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_OclSelf_5.getTemplateBindings().add(tb_UniqueCollection_OclSelf_3);
-		t_UniqueCollection_OclSelf_5.getSuperClasses().add(t_Collection_OclSelf);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_OclSelf_5);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_OrderedSet_flatten_T2.setElementType(t_OrderedSet_flatten_T2);
-		t_UniqueCollection_OrderedSet_flatten_T2.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_OrderedSet_flatten_T2.getTemplateBindings().add(tb_UniqueCollection_OrderedSet_flatten_T2);
-		t_UniqueCollection_OrderedSet_flatten_T2.getSuperClasses().add(t_Collection_OrderedSet_flatten_T2);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_OrderedSet_flatten_T2);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_OrderedSet_selectByKind_TT.setElementType(t_OrderedSet_selectByKind_TT);
-		t_UniqueCollection_OrderedSet_selectByKind_TT.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_OrderedSet_selectByKind_TT.getTemplateBindings().add(tb_UniqueCollection_OrderedSet_selectByKind_TT);
-		t_UniqueCollection_OrderedSet_selectByKind_TT.getSuperClasses().add(t_Collection_OrderedSet_selectByKind_TT);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_OrderedSet_selectByKind_TT);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_OrderedSet_selectByType_TT.setElementType(t_OrderedSet_selectByType_TT);
-		t_UniqueCollection_OrderedSet_selectByType_TT.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_OrderedSet_selectByType_TT.getTemplateBindings().add(tb_UniqueCollection_OrderedSet_selectByType_TT);
-		t_UniqueCollection_OrderedSet_selectByType_TT.getSuperClasses().add(t_Collection_OrderedSet_selectByType_TT);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_OrderedSet_selectByType_TT);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_OrderedSet_T.setElementType(t_OrderedSet_T);
-		t_UniqueCollection_OrderedSet_T.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_OrderedSet_T.getTemplateBindings().add(tb_UniqueCollection_OrderedSet_T);
-		t_UniqueCollection_OrderedSet_T.getSuperClasses().add(t_Collection_OrderedSet_T_1);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_OrderedSet_T);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_Sequence_T.setElementType(t_Sequence_T);
-		t_UniqueCollection_Sequence_T.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_Sequence_T.getTemplateBindings().add(tb_UniqueCollection_Sequence_T_2);
-		t_UniqueCollection_Sequence_T.getSuperClasses().add(t_Collection_Sequence_T_1);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_Sequence_T);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_Sequence_T_1.setElementType(t_Sequence_T);
-		t_UniqueCollection_Sequence_T_1.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_Sequence_T_1.getTemplateBindings().add(tb_UniqueCollection_Sequence_T_1);
-		t_UniqueCollection_Sequence_T_1.getSuperClasses().add(t_Collection_Sequence_T_1);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_Sequence_T_1);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_Sequence_T_2.setElementType(t_Sequence_T);
-		t_UniqueCollection_Sequence_T_2.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_Sequence_T_2.getTemplateBindings().add(tb_UniqueCollection_Sequence_T);
-		t_UniqueCollection_Sequence_T_2.getSuperClasses().add(t_Collection_Sequence_T);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_Sequence_T_2);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_Set_flatten_T2.setElementType(t_Set_flatten_T2);
-		t_UniqueCollection_Set_flatten_T2.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_Set_flatten_T2.getTemplateBindings().add(tb_UniqueCollection_Set_flatten_T2);
-		t_UniqueCollection_Set_flatten_T2.getSuperClasses().add(t_Collection_Set_flatten_T2);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_Set_flatten_T2);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_Set_selectByKind_TT.setElementType(t_Set_selectByKind_TT);
-		t_UniqueCollection_Set_selectByKind_TT.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_Set_selectByKind_TT.getTemplateBindings().add(tb_UniqueCollection_Set_selectByKind_TT);
-		t_UniqueCollection_Set_selectByKind_TT.getSuperClasses().add(t_Collection_Set_selectByKind_TT);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_Set_selectByKind_TT);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_Set_selectByType_TT.setElementType(t_Set_selectByType_TT);
-		t_UniqueCollection_Set_selectByType_TT.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_Set_selectByType_TT.getTemplateBindings().add(tb_UniqueCollection_Set_selectByType_TT);
-		t_UniqueCollection_Set_selectByType_TT.getSuperClasses().add(t_Collection_Set_selectByType_TT);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_Set_selectByType_TT);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_Set_T.setElementType(t_Set_T);
-		t_UniqueCollection_Set_T.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_Set_T.getTemplateBindings().add(tb_UniqueCollection_Set_T);
-		t_UniqueCollection_Set_T.getSuperClasses().add(t_Collection_Set_T);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_Set_T);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_UniqueCollection_T.setElementType(t_UniqueCollection_T);
-		t_UniqueCollection_UniqueCollection_T.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_UniqueCollection_T.getTemplateBindings().add(tb_UniqueCollection_UniqueCollection_T_1);
-		t_UniqueCollection_UniqueCollection_T.getSuperClasses().add(t_Collection_UniqueCollection_T_1);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_UniqueCollection_T);
-		//
-		// ocl::$$::UniqueCollection
-		//
-		t_UniqueCollection_UniqueCollection_T_1.setElementType(t_UniqueCollection_T);
-		t_UniqueCollection_UniqueCollection_T_1.setUnspecializedElement(t_UniqueCollection);
-		t_UniqueCollection_UniqueCollection_T_1.getTemplateBindings().add(tb_UniqueCollection_UniqueCollection_T);
-		t_UniqueCollection_UniqueCollection_T_1.getSuperClasses().add(t_Collection_UniqueCollection_T);
-		pk_$$.getOwnedTypes().add(t_UniqueCollection_UniqueCollection_T_1);
-		//
-		// ocl::$$::$$
-		//
-		pk_$$.getOwnedTypes().add(t_$$);
-		library.getNestedPackages().add(pk_$$);
-		return library;
+		protected Library library;
+
+		protected Library create(String name, String nsPrefix, String nsURI)
+		{
+			library = createLibrary("ocl", nsPrefix, nsURI);
+			installPackages();
+			installOclTypes();
+			installPrimitiveTypes();
+			installParameterTypes();
+			installCollectionTypes();
+			installClassifierTypes();
+			installLambdaTypes();
+			installTupleTypes();
+			installOperations();
+			installIterations();
+			installProperties();
+			installTemplateSignatures();
+			installTemplateBindings();
+			installPrecedences();
+			installComments();
+			return library;
+		}
+	
+		protected final Package pk_$$ = createPackage("$$", null, null);
+		
+		protected void installPackages() {
+			library.getNestedPackages().add(pk_$$);
+		}
+		
+		protected final Class _Class = createClass("Class");
+		protected final Class _Enumeration = createClass("Enumeration");
+		protected final Class _EnumerationLiteral = createClass("EnumerationLiteral");
+		protected final AnyType _OclAny = createAnyType("OclAny");
+		protected final Class _OclComparable = createClass("OclComparable");
+		protected final Class _OclElement = createClass("OclElement");
+		protected final InvalidType _OclInvalid = createInvalidType("OclInvalid");
+		protected final Class _OclLambda = createClass("OclLambda");
+		protected final Class _OclMessage = createClass("OclMessage");
+		protected final SelfType _OclSelf = createSelfType("OclSelf");
+		protected final Class _OclState = createClass("OclState");
+		protected final Class _OclSummable = createClass("OclSummable");
+		protected final Class _OclTuple = createClass("OclTuple");
+		protected final Class _OclType = createClass("OclType");
+		protected final VoidType _OclVoid = createVoidType("OclVoid");
+		protected final Class _Type = createClass("Type");
+		protected final AnyType _$$ = createAnyType("$$");
+		
+		protected final PrimitiveType _Boolean = createPrimitiveType("Boolean");
+		protected final PrimitiveType _Integer = createPrimitiveType("Integer");
+		protected final PrimitiveType _Real = createPrimitiveType("Real");
+		protected final PrimitiveType _String = createPrimitiveType("String");
+		protected final PrimitiveType _UnlimitedNatural = createPrimitiveType("UnlimitedNatural");
+		
+		protected final Class _UnlimitedNatural_oclAsType_TT = createClass("TT");
+		protected final Class _AnyClassifier_T = createClass("T");
+		protected final Class _Bag_collectNested_V = createClass("V");
+		protected final Class _Bag_collect_V = createClass("V");
+		protected final Class _Bag_flatten_T2 = createClass("T2");
+		protected final Class _Bag_selectByKind_TT = createClass("TT");
+		protected final Class _Bag_selectByType_TT = createClass("TT");
+		protected final Class _Bag_T = createClass("T");
+		protected final Class _ClassClassifier_T = createClass("T");
+		protected final Class _CollectionClassifier_E = createClass("E");
+		protected final Class _CollectionClassifier_T = createClass("T");
+		protected final Class _Collection_collectNested_V = createClass("V");
+		protected final Class _Collection_collect_V = createClass("V");
+		protected final Class _Collection_excludesAll_T2 = createClass("T2");
+		protected final Class _Collection_flatten_T2 = createClass("T2");
+		protected final Class _Collection_includesAll_T2 = createClass("T2");
+		protected final Class _Collection_iterate_Tacc = createClass("Tacc");
+		protected final Class _Collection_product_T2 = createClass("T2");
+		protected final Class _Collection_selectByKind_TT = createClass("TT");
+		protected final Class _Collection_selectByType_TT = createClass("TT");
+		protected final Class _Collection_T = createClass("T");
+		protected final Class _EnumerationClassifier_T = createClass("T");
+		protected final Class _OclAny_oclAsType_TT = createClass("TT");
+		protected final Class _OclAny_oclIsKindOf_T = createClass("T");
+		protected final Class _OclAny_oclIsTypeOf_T = createClass("T");
+		protected final Class _OrderedSet_flatten_T2 = createClass("T2");
+		protected final Class _OrderedSet_selectByKind_TT = createClass("TT");
+		protected final Class _OrderedSet_selectByType_TT = createClass("TT");
+		protected final Class _OrderedSet_T = createClass("T");
+		protected final Class _Sequence_collectNested_V = createClass("V");
+		protected final Class _Sequence_collect_V = createClass("V");
+		protected final Class _Sequence_flatten_T2 = createClass("T2");
+		protected final Class _Sequence_selectByKind_TT = createClass("TT");
+		protected final Class _Sequence_selectByType_TT = createClass("TT");
+		protected final Class _Sequence_T = createClass("T");
+		protected final Class _Set_flatten_T2 = createClass("T2");
+		protected final Class _Set_selectByKind_TT = createClass("TT");
+		protected final Class _Set_selectByType_TT = createClass("TT");
+		protected final Class _Set_T = createClass("T");
+		protected final Class _UniqueCollection_T = createClass("T");
+		
+		protected final BagType _Bag_Tuple = createBagType("Bag");
+		protected final BagType _Bag_Tuple_1 = createBagType("Bag");
+		protected final BagType _Bag_Bag_collect_V = createBagType("Bag");
+		protected final BagType _Bag_Bag_flatten_T2 = createBagType("Bag");
+		protected final BagType _Bag_Bag_selectByKind_TT = createBagType("Bag");
+		protected final BagType _Bag_Bag_selectByType_TT = createBagType("Bag");
+		protected final BagType _Bag_Bag_T = createBagType("Bag");
+		protected final BagType _Bag_Bag_T_1 = createBagType("Bag");
+		protected final BagType _Bag_Bag_T_2 = createBagType("Bag");
+		protected final BagType _Bag_Bag_T_3 = createBagType("Bag");
+		protected final BagType _Bag_Collection_T = createBagType("Bag");
+		protected final BagType _Bag_OclElement = createBagType("Bag");
+		protected final BagType _Bag_OclSelf = createBagType("Bag");
+		protected final BagType _Bag_OclSelf_1 = createBagType("Bag");
+		protected final BagType _Bag_OclSelf_2 = createBagType("Bag");
+		protected final BagType _Bag_OclSelf_3 = createBagType("Bag");
+		protected final BagType _Bag_OclSelf_4 = createBagType("Bag");
+		protected final BagType _Bag_OclSelf_5 = createBagType("Bag");
+		protected final BagType _Bag_Sequence_T = createBagType("Bag");
+		protected final BagType _Bag_Set_flatten_T2 = createBagType("Bag");
+		protected final BagType _Bag_Set_selectByKind_TT = createBagType("Bag");
+		protected final BagType _Bag_Set_selectByType_TT = createBagType("Bag");
+		protected final BagType _Bag_Set_T = createBagType("Bag");
+		protected final BagType _Bag_UniqueCollection_T = createBagType("Bag");
+		protected final BagType _Bag_UniqueCollection_T_1 = createBagType("Bag");
+		protected final BagType _Bag_Bag_T_4 = createBagType("Bag");
+		protected final CollectionType _Collection_Integer = createCollectionType("Collection");
+		protected final CollectionType _Collection_String = createCollectionType("Collection");
+		protected final CollectionType _Collection_Tuple = createCollectionType("Collection");
+		protected final CollectionType _Collection_Tuple_1 = createCollectionType("Collection");
+		protected final CollectionType _Collection_Bag_collect_V = createCollectionType("Collection");
+		protected final CollectionType _Collection_Bag_flatten_T2 = createCollectionType("Collection");
+		protected final CollectionType _Collection_Bag_selectByKind_TT = createCollectionType("Collection");
+		protected final CollectionType _Collection_Bag_selectByType_TT = createCollectionType("Collection");
+		protected final CollectionType _Collection_Bag_T = createCollectionType("Collection");
+		protected final CollectionType _Collection_Bag_T_1 = createCollectionType("Collection");
+		protected final CollectionType _Collection_Bag_T_2 = createCollectionType("Collection");
+		protected final CollectionType _Collection_Collection_collect_V = createCollectionType("Collection");
+		protected final CollectionType _Collection_Collection_excludesAll_T2 = createCollectionType("Collection");
+		protected final CollectionType _Collection_Collection_flatten_T2 = createCollectionType("Collection");
+		protected final CollectionType _Collection_Collection_includesAll_T2 = createCollectionType("Collection");
+		protected final CollectionType _Collection_Collection_product_T2 = createCollectionType("Collection");
+		protected final CollectionType _Collection_Collection_selectByKind_TT = createCollectionType("Collection");
+		protected final CollectionType _Collection_Collection_selectByType_TT = createCollectionType("Collection");
+		protected final CollectionType _Collection_Collection_T = createCollectionType("Collection");
+		protected final CollectionType _Collection_Collection_T_1 = createCollectionType("Collection");
+		protected final CollectionType _Collection_Collection_T_2 = createCollectionType("Collection");
+		protected final CollectionType _Collection_EnumerationLiteral = createCollectionType("Collection");
+		protected final CollectionType _Collection_OclAny = createCollectionType("Collection");
+		protected final CollectionType _Collection_OclAny_1 = createCollectionType("Collection");
+		protected final CollectionType _Collection_OclAny_2 = createCollectionType("Collection");
+		protected final CollectionType _Collection_OclAny_3 = createCollectionType("Collection");
+		protected final CollectionType _Collection_OclElement = createCollectionType("Collection");
+		protected final CollectionType _Collection_OclSelf = createCollectionType("Collection");
+		protected final CollectionType _Collection_OrderedSet_flatten_T2 = createCollectionType("Collection");
+		protected final CollectionType _Collection_OrderedSet_selectByKind_TT = createCollectionType("Collection");
+		protected final CollectionType _Collection_OrderedSet_selectByType_TT = createCollectionType("Collection");
+		protected final CollectionType _Collection_OrderedSet_T = createCollectionType("Collection");
+		protected final CollectionType _Collection_OrderedSet_T_1 = createCollectionType("Collection");
+		protected final CollectionType _Collection_Sequence_collect_V = createCollectionType("Collection");
+		protected final CollectionType _Collection_Sequence_flatten_T2 = createCollectionType("Collection");
+		protected final CollectionType _Collection_Sequence_selectByKind_TT = createCollectionType("Collection");
+		protected final CollectionType _Collection_Sequence_selectByType_TT = createCollectionType("Collection");
+		protected final CollectionType _Collection_Sequence_T = createCollectionType("Collection");
+		protected final CollectionType _Collection_Sequence_T_1 = createCollectionType("Collection");
+		protected final CollectionType _Collection_Set_flatten_T2 = createCollectionType("Collection");
+		protected final CollectionType _Collection_Set_selectByKind_TT = createCollectionType("Collection");
+		protected final CollectionType _Collection_Set_selectByType_TT = createCollectionType("Collection");
+		protected final CollectionType _Collection_Set_T = createCollectionType("Collection");
+		protected final CollectionType _Collection_Set_T_1 = createCollectionType("Collection");
+		protected final CollectionType _Collection_UniqueCollection_T = createCollectionType("Collection");
+		protected final CollectionType _Collection_UniqueCollection_T_1 = createCollectionType("Collection");
+		protected final CollectionType _Collection_Collection_T_3 = createCollectionType("Collection");
+		protected final OrderedSetType _OrderedSet_Collection_T = createOrderedSetType("OrderedSet");
+		protected final OrderedSetType _OrderedSet_EnumerationLiteral = createOrderedSetType("OrderedSet");
+		protected final OrderedSetType _OrderedSet_OrderedSet_flatten_T2 = createOrderedSetType("OrderedSet");
+		protected final OrderedSetType _OrderedSet_OrderedSet_selectByKind_TT = createOrderedSetType("OrderedSet");
+		protected final OrderedSetType _OrderedSet_OrderedSet_selectByType_TT = createOrderedSetType("OrderedSet");
+		protected final OrderedSetType _OrderedSet_Sequence_T = createOrderedSetType("OrderedSet");
+		protected final OrderedSetType _OrderedSet_Set_T = createOrderedSetType("OrderedSet");
+		protected final OrderedSetType _OrderedSet_UniqueCollection_T = createOrderedSetType("OrderedSet");
+		protected final OrderedSetType _OrderedSet_OrderedSet_T = createOrderedSetType("OrderedSet");
+		protected final SequenceType _Sequence_Integer = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_String = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_Bag_T = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_Collection_T = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_EnumerationLiteral = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_OrderedSet_flatten_T2 = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_OrderedSet_selectByKind_TT = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_OrderedSet_selectByType_TT = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_OrderedSet_T = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_Sequence_collect_V = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_Sequence_flatten_T2 = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_Sequence_selectByKind_TT = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_Sequence_selectByType_TT = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_Sequence_T = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_Sequence_T_1 = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_Sequence_T_2 = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_Set_T = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_UniqueCollection_T = createSequenceType("Sequence");
+		protected final SequenceType _Sequence_Sequence_T_3 = createSequenceType("Sequence");
+		protected final SetType _Set_Tuple = createSetType("Set");
+		protected final SetType _Set_Bag_T = createSetType("Set");
+		protected final SetType _Set_Collection_T = createSetType("Set");
+		protected final SetType _Set_OclElement = createSetType("Set");
+		protected final SetType _Set_OclSelf = createSetType("Set");
+		protected final SetType _Set_Set_flatten_T2 = createSetType("Set");
+		protected final SetType _Set_Set_selectByKind_TT = createSetType("Set");
+		protected final SetType _Set_Set_selectByType_TT = createSetType("Set");
+		protected final SetType _Set_UniqueCollection_T = createSetType("Set");
+		protected final SetType _Set_Set_T = createSetType("Set");
+		protected final CollectionType _UniqueCollection_Tuple = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_Tuple_1 = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_Bag_T = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_Bag_T_1 = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_Bag_T_2 = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_Bag_T_3 = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_Collection_T = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_EnumerationLiteral = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_OclAny = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_OclElement = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_OclSelf = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_OclSelf_1 = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_OclSelf_2 = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_OclSelf_3 = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_OclSelf_4 = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_OclSelf_5 = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_OrderedSet_flatten_T2 = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_OrderedSet_selectByKind_TT = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_OrderedSet_selectByType_TT = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_OrderedSet_T = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_Sequence_T = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_Sequence_T_1 = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_Sequence_T_2 = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_Set_flatten_T2 = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_Set_selectByKind_TT = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_Set_selectByType_TT = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_Set_T = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_UniqueCollection_T = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_UniqueCollection_T_1 = createCollectionType("UniqueCollection");
+		protected final CollectionType _UniqueCollection_UniqueCollection_T_2 = createCollectionType("UniqueCollection");
+		
+		protected final ClassifierType _AnyClassifier_UnlimitedNatural_oclAsType_TT = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_Bag_selectByKind_TT = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_Bag_selectByType_TT = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_ClassClassifier_T = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_CollectionClassifier_T = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_Collection_selectByKind_TT = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_Collection_selectByType_TT = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_EnumerationClassifier_T = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_OclAny_oclAsType_TT = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_OclAny_oclIsKindOf_T = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_OclAny_oclIsTypeOf_T = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_OclInvalid = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_OclInvalid_1 = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_OclSelf = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_OclVoid = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_OrderedSet_selectByKind_TT = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_OrderedSet_selectByType_TT = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_Sequence_selectByKind_TT = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_Sequence_selectByType_TT = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_Set_selectByKind_TT = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier_Set_selectByType_TT = createClassifierType("AnyClassifier");
+		protected final ClassifierType _AnyClassifier = createClassifierType("AnyClassifier");
+		protected final ClassifierType _ClassClassifier_OclInvalid = createClassifierType("ClassClassifier");
+		protected final ClassifierType _ClassClassifier_OclSelf = createClassifierType("ClassClassifier");
+		protected final ClassifierType _ClassClassifier_OclVoid = createClassifierType("ClassClassifier");
+		protected final ClassifierType _ClassClassifier = createClassifierType("ClassClassifier");
+		protected final ClassifierType _CollectionClassifier_OclSelf_Collection_T = createClassifierType("CollectionClassifier");
+		protected final ClassifierType _CollectionClassifier = createClassifierType("CollectionClassifier");
+		protected final ClassifierType _EnumerationClassifier_OclSelf = createClassifierType("EnumerationClassifier");
+		protected final ClassifierType _EnumerationClassifier = createClassifierType("EnumerationClassifier");
+		
+		protected final TupleType _Tuple = createTupleType("Tuple",
+			createProperty("first", _Collection_T),
+			createProperty("second", _Collection_product_T2));
+		protected final TupleType _Tuple_1 = createTupleType("Tuple",
+			createProperty("first", _Collection_T),
+			createProperty("second", _Collection_product_T2));
+		protected final TupleType _Tuple_2 = createTupleType("Tuple",
+			createProperty("first", _Collection_T),
+			createProperty("second", _Collection_product_T2));
+		protected final TupleType _Tuple_3 = createTupleType("Tuple",
+			createProperty("first", _Collection_T),
+			createProperty("second", _Collection_product_T2));
+		
+		protected void installOclTypes() {
+			final List<Type> ownedTypes = library.getOwnedTypes();
+			Type type;
+			List<Type> superClasses;
+			ownedTypes.add(type = _Class);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedTypes.add(type = _Enumeration);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedTypes.add(type = _EnumerationLiteral);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedTypes.add(type = _OclAny);
+			ownedTypes.add(type = _OclComparable);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedTypes.add(type = _OclElement);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedTypes.add(type = _OclInvalid);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclVoid);
+			ownedTypes.add(type = _OclLambda);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedTypes.add(type = _OclMessage);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedTypes.add(type = _OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedTypes.add(type = _OclState);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedTypes.add(type = _OclSummable);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedTypes.add(type = _OclTuple);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedTypes.add(type = _OclType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclElement);
+			ownedTypes.add(type = _OclVoid);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedTypes.add(type = _Type);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclType);
+			ownedTypes.add(type = _$$);
+		}
+		
+		protected void installPrimitiveTypes() {
+			final List<Type> ownedTypes = library.getOwnedTypes();
+			PrimitiveType type;
+			ownedTypes.add(type = _Boolean);
+			type.getSuperClasses().add(_OclAny);
+			ownedTypes.add(type = _Integer);
+			type.getSuperClasses().add(_Real);
+			ownedTypes.add(type = _Real);
+			type.getSuperClasses().add(_OclComparable);
+			type.getSuperClasses().add(_OclSummable);
+			ownedTypes.add(type = _String);
+			type.getSuperClasses().add(_OclComparable);
+			type.getSuperClasses().add(_OclSummable);
+			ownedTypes.add(type = _UnlimitedNatural);
+			type.getSuperClasses().add(_Integer);
+		}
+		
+		protected void installParameterTypes() {
+		}
+		
+		protected void installCollectionTypes() {
+			final List<Type> ownedTypes = library.getOwnedTypes();
+			final List<Type> orphanTypes = pk_$$.getOwnedTypes();
+			CollectionType type;
+			List<Type> superClasses;
+			orphanTypes.add(type = _Bag_Tuple);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Tuple_3);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Tuple);
+			orphanTypes.add(type = _Bag_Tuple_1);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Tuple_3);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Tuple);
+			orphanTypes.add(type = _Bag_Bag_collect_V);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Bag_collect_V);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Bag_collect_V);
+			orphanTypes.add(type = _Bag_Bag_flatten_T2);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Bag_flatten_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Bag_flatten_T2);
+			orphanTypes.add(type = _Bag_Bag_selectByKind_TT);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Bag_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Bag_selectByKind_TT);
+			orphanTypes.add(type = _Bag_Bag_selectByType_TT);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Bag_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Bag_selectByType_TT);
+			orphanTypes.add(type = _Bag_Bag_T);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Bag_T_2);
+			orphanTypes.add(type = _Bag_Bag_T_1);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Bag_T_2);
+			orphanTypes.add(type = _Bag_Bag_T_2);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Bag_T_2);
+			orphanTypes.add(type = _Bag_Bag_T_3);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Bag_T_2);
+			orphanTypes.add(type = _Bag_Collection_T);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Collection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Collection_T);
+			orphanTypes.add(type = _Bag_OclElement);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_OclElement);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclElement);
+			orphanTypes.add(type = _Bag_OclSelf);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclSelf);
+			orphanTypes.add(type = _Bag_OclSelf_1);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclSelf);
+			orphanTypes.add(type = _Bag_OclSelf_2);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclSelf);
+			orphanTypes.add(type = _Bag_OclSelf_3);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclSelf);
+			orphanTypes.add(type = _Bag_OclSelf_4);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclSelf);
+			orphanTypes.add(type = _Bag_OclSelf_5);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclSelf);
+			orphanTypes.add(type = _Bag_Sequence_T);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Sequence_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_T_1);
+			orphanTypes.add(type = _Bag_Set_flatten_T2);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Set_flatten_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Set_flatten_T2);
+			orphanTypes.add(type = _Bag_Set_selectByKind_TT);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Set_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Set_selectByKind_TT);
+			orphanTypes.add(type = _Bag_Set_selectByType_TT);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Set_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Set_selectByType_TT);
+			orphanTypes.add(type = _Bag_Set_T);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_Set_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Set_T_1);
+			orphanTypes.add(type = _Bag_UniqueCollection_T);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_UniqueCollection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_UniqueCollection_T);
+			orphanTypes.add(type = _Bag_UniqueCollection_T_1);
+			type.setUnspecializedElement(_Bag_Bag_T_4);
+			type.setElementType(_UniqueCollection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_UniqueCollection_T);
+			ownedTypes.add(type = _Bag_Bag_T_4);
+			type.setElementType(_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Bag_T_2);
+			orphanTypes.add(type = _Collection_Integer);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Integer);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_String);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_String);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Tuple);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Tuple_2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Tuple_1);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Tuple_2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Bag_collect_V);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Bag_collect_V);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Bag_flatten_T2);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Bag_flatten_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Bag_selectByKind_TT);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Bag_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Bag_selectByType_TT);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Bag_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Bag_T);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Bag_T_1);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Bag_T_2);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Collection_collect_V);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Collection_collect_V);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Collection_excludesAll_T2);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Collection_excludesAll_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Collection_flatten_T2);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Collection_flatten_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Collection_includesAll_T2);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Collection_includesAll_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Collection_product_T2);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Collection_product_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Collection_selectByKind_TT);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Collection_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Collection_selectByType_TT);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Collection_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Collection_T);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Collection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Collection_T_1);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Collection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Collection_T_2);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Collection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_EnumerationLiteral);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_EnumerationLiteral);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_OclAny);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_OclAny);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_OclAny_1);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_OclAny);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_OclAny_2);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_OclAny);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_OclAny_3);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_OclAny);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_OclElement);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_OclElement);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_OclSelf);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_OrderedSet_flatten_T2);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_OrderedSet_flatten_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_OrderedSet_selectByKind_TT);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_OrderedSet_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_OrderedSet_selectByType_TT);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_OrderedSet_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_OrderedSet_T);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_OrderedSet_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_OrderedSet_T_1);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_OrderedSet_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Sequence_collect_V);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Sequence_collect_V);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Sequence_flatten_T2);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Sequence_flatten_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Sequence_selectByKind_TT);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Sequence_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Sequence_selectByType_TT);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Sequence_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Sequence_T);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Sequence_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Sequence_T_1);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Sequence_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Set_flatten_T2);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Set_flatten_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Set_selectByKind_TT);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Set_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Set_selectByType_TT);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Set_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Set_T);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Set_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_Set_T_1);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_Set_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_UniqueCollection_T);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_UniqueCollection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _Collection_UniqueCollection_T_1);
+			type.setUnspecializedElement(_Collection_Collection_T_3);
+			type.setElementType(_UniqueCollection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			ownedTypes.add(type = _Collection_Collection_T_3);
+			type.setElementType(_Collection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclAny);
+			orphanTypes.add(type = _OrderedSet_Collection_T);
+			type.setUnspecializedElement(_OrderedSet_OrderedSet_T);
+			type.setElementType(_Collection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Sequence_Collection_T);
+			superClasses.add(_UniqueCollection_Collection_T);
+			orphanTypes.add(type = _OrderedSet_EnumerationLiteral);
+			type.setUnspecializedElement(_OrderedSet_OrderedSet_T);
+			type.setElementType(_EnumerationLiteral);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Sequence_EnumerationLiteral);
+			superClasses.add(_UniqueCollection_EnumerationLiteral);
+			orphanTypes.add(type = _OrderedSet_OrderedSet_flatten_T2);
+			type.setUnspecializedElement(_OrderedSet_OrderedSet_T);
+			type.setElementType(_OrderedSet_flatten_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Sequence_OrderedSet_flatten_T2);
+			superClasses.add(_UniqueCollection_OrderedSet_flatten_T2);
+			orphanTypes.add(type = _OrderedSet_OrderedSet_selectByKind_TT);
+			type.setUnspecializedElement(_OrderedSet_OrderedSet_T);
+			type.setElementType(_OrderedSet_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Sequence_OrderedSet_selectByKind_TT);
+			superClasses.add(_UniqueCollection_OrderedSet_selectByKind_TT);
+			orphanTypes.add(type = _OrderedSet_OrderedSet_selectByType_TT);
+			type.setUnspecializedElement(_OrderedSet_OrderedSet_T);
+			type.setElementType(_OrderedSet_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Sequence_OrderedSet_selectByType_TT);
+			superClasses.add(_UniqueCollection_OrderedSet_selectByType_TT);
+			orphanTypes.add(type = _OrderedSet_Sequence_T);
+			type.setUnspecializedElement(_OrderedSet_OrderedSet_T);
+			type.setElementType(_Sequence_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Sequence_Sequence_T_2);
+			superClasses.add(_UniqueCollection_Sequence_T);
+			orphanTypes.add(type = _OrderedSet_Set_T);
+			type.setUnspecializedElement(_OrderedSet_OrderedSet_T);
+			type.setElementType(_Set_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Sequence_Set_T);
+			superClasses.add(_UniqueCollection_Set_T);
+			orphanTypes.add(type = _OrderedSet_UniqueCollection_T);
+			type.setUnspecializedElement(_OrderedSet_OrderedSet_T);
+			type.setElementType(_UniqueCollection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Sequence_UniqueCollection_T);
+			superClasses.add(_UniqueCollection_UniqueCollection_T);
+			ownedTypes.add(type = _OrderedSet_OrderedSet_T);
+			type.setElementType(_OrderedSet_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Sequence_OrderedSet_T);
+			superClasses.add(_UniqueCollection_OrderedSet_T);
+			orphanTypes.add(type = _Sequence_Integer);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_Integer);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Integer);
+			orphanTypes.add(type = _Sequence_String);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_String);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_String);
+			orphanTypes.add(type = _Sequence_Bag_T);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Bag_T_2);
+			orphanTypes.add(type = _Sequence_Collection_T);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_Collection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Collection_T_1);
+			orphanTypes.add(type = _Sequence_EnumerationLiteral);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_EnumerationLiteral);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_EnumerationLiteral);
+			orphanTypes.add(type = _Sequence_OrderedSet_flatten_T2);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_OrderedSet_flatten_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OrderedSet_flatten_T2);
+			orphanTypes.add(type = _Sequence_OrderedSet_selectByKind_TT);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_OrderedSet_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OrderedSet_selectByKind_TT);
+			orphanTypes.add(type = _Sequence_OrderedSet_selectByType_TT);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_OrderedSet_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OrderedSet_selectByType_TT);
+			orphanTypes.add(type = _Sequence_OrderedSet_T);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_OrderedSet_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OrderedSet_T);
+			orphanTypes.add(type = _Sequence_Sequence_collect_V);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_Sequence_collect_V);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_collect_V);
+			orphanTypes.add(type = _Sequence_Sequence_flatten_T2);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_Sequence_flatten_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_flatten_T2);
+			orphanTypes.add(type = _Sequence_Sequence_selectByKind_TT);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_Sequence_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_selectByKind_TT);
+			orphanTypes.add(type = _Sequence_Sequence_selectByType_TT);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_Sequence_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_selectByType_TT);
+			orphanTypes.add(type = _Sequence_Sequence_T);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_Sequence_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_T_1);
+			orphanTypes.add(type = _Sequence_Sequence_T_1);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_Sequence_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_T_1);
+			orphanTypes.add(type = _Sequence_Sequence_T_2);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_Sequence_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_T_1);
+			orphanTypes.add(type = _Sequence_Set_T);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_Set_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Set_T_1);
+			orphanTypes.add(type = _Sequence_UniqueCollection_T);
+			type.setUnspecializedElement(_Sequence_Sequence_T_3);
+			type.setElementType(_UniqueCollection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_UniqueCollection_T);
+			ownedTypes.add(type = _Sequence_Sequence_T_3);
+			type.setElementType(_Sequence_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_T_1);
+			orphanTypes.add(type = _Set_Tuple);
+			type.setUnspecializedElement(_Set_Set_T);
+			type.setElementType(_Tuple_3);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Bag_Tuple_1);
+			superClasses.add(_UniqueCollection_Tuple_1);
+			orphanTypes.add(type = _Set_Bag_T);
+			type.setUnspecializedElement(_Set_Set_T);
+			type.setElementType(_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Bag_Bag_T);
+			superClasses.add(_UniqueCollection_Bag_T_2);
+			orphanTypes.add(type = _Set_Collection_T);
+			type.setUnspecializedElement(_Set_Set_T);
+			type.setElementType(_Collection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Bag_Collection_T);
+			superClasses.add(_UniqueCollection_Collection_T);
+			orphanTypes.add(type = _Set_OclElement);
+			type.setUnspecializedElement(_Set_Set_T);
+			type.setElementType(_OclElement);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Bag_OclElement);
+			superClasses.add(_UniqueCollection_OclElement);
+			orphanTypes.add(type = _Set_OclSelf);
+			type.setUnspecializedElement(_Set_Set_T);
+			type.setElementType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Bag_OclSelf);
+			superClasses.add(_UniqueCollection_OclSelf_3);
+			orphanTypes.add(type = _Set_Set_flatten_T2);
+			type.setUnspecializedElement(_Set_Set_T);
+			type.setElementType(_Set_flatten_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Bag_Set_flatten_T2);
+			superClasses.add(_UniqueCollection_Set_flatten_T2);
+			orphanTypes.add(type = _Set_Set_selectByKind_TT);
+			type.setUnspecializedElement(_Set_Set_T);
+			type.setElementType(_Set_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Bag_Set_selectByKind_TT);
+			superClasses.add(_UniqueCollection_Set_selectByKind_TT);
+			orphanTypes.add(type = _Set_Set_selectByType_TT);
+			type.setUnspecializedElement(_Set_Set_T);
+			type.setElementType(_Set_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Bag_Set_selectByType_TT);
+			superClasses.add(_UniqueCollection_Set_selectByType_TT);
+			orphanTypes.add(type = _Set_UniqueCollection_T);
+			type.setUnspecializedElement(_Set_Set_T);
+			type.setElementType(_UniqueCollection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Bag_UniqueCollection_T);
+			superClasses.add(_UniqueCollection_UniqueCollection_T_1);
+			ownedTypes.add(type = _Set_Set_T);
+			type.setElementType(_Set_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Bag_Set_T);
+			superClasses.add(_UniqueCollection_Set_T);
+			orphanTypes.add(type = _UniqueCollection_Tuple);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_Tuple_3);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Tuple);
+			orphanTypes.add(type = _UniqueCollection_Tuple_1);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_Tuple_3);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Tuple);
+			orphanTypes.add(type = _UniqueCollection_Bag_T);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Bag_T_2);
+			orphanTypes.add(type = _UniqueCollection_Bag_T_1);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Bag_T_2);
+			orphanTypes.add(type = _UniqueCollection_Bag_T_2);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Bag_T_2);
+			orphanTypes.add(type = _UniqueCollection_Bag_T_3);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Bag_T_1);
+			orphanTypes.add(type = _UniqueCollection_Collection_T);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_Collection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Collection_T);
+			orphanTypes.add(type = _UniqueCollection_EnumerationLiteral);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_EnumerationLiteral);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_EnumerationLiteral);
+			orphanTypes.add(type = _UniqueCollection_OclAny);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_OclAny);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclAny_3);
+			orphanTypes.add(type = _UniqueCollection_OclElement);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_OclElement);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclElement);
+			orphanTypes.add(type = _UniqueCollection_OclSelf);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclSelf);
+			orphanTypes.add(type = _UniqueCollection_OclSelf_1);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclSelf);
+			orphanTypes.add(type = _UniqueCollection_OclSelf_2);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclSelf);
+			orphanTypes.add(type = _UniqueCollection_OclSelf_3);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclSelf);
+			orphanTypes.add(type = _UniqueCollection_OclSelf_4);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclSelf);
+			orphanTypes.add(type = _UniqueCollection_OclSelf_5);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OclSelf);
+			orphanTypes.add(type = _UniqueCollection_OrderedSet_flatten_T2);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_OrderedSet_flatten_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OrderedSet_flatten_T2);
+			orphanTypes.add(type = _UniqueCollection_OrderedSet_selectByKind_TT);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_OrderedSet_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OrderedSet_selectByKind_TT);
+			orphanTypes.add(type = _UniqueCollection_OrderedSet_selectByType_TT);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_OrderedSet_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OrderedSet_selectByType_TT);
+			orphanTypes.add(type = _UniqueCollection_OrderedSet_T);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_OrderedSet_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_OrderedSet_T_1);
+			orphanTypes.add(type = _UniqueCollection_Sequence_T);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_Sequence_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_T_1);
+			orphanTypes.add(type = _UniqueCollection_Sequence_T_1);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_Sequence_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_T_1);
+			orphanTypes.add(type = _UniqueCollection_Sequence_T_2);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_Sequence_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Sequence_T);
+			orphanTypes.add(type = _UniqueCollection_Set_flatten_T2);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_Set_flatten_T2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Set_flatten_T2);
+			orphanTypes.add(type = _UniqueCollection_Set_selectByKind_TT);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_Set_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Set_selectByKind_TT);
+			orphanTypes.add(type = _UniqueCollection_Set_selectByType_TT);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_Set_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Set_selectByType_TT);
+			orphanTypes.add(type = _UniqueCollection_Set_T);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_Set_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_Set_T);
+			orphanTypes.add(type = _UniqueCollection_UniqueCollection_T);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_UniqueCollection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_UniqueCollection_T_1);
+			orphanTypes.add(type = _UniqueCollection_UniqueCollection_T_1);
+			type.setUnspecializedElement(_UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_UniqueCollection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_UniqueCollection_T);
+			ownedTypes.add(type = _UniqueCollection_UniqueCollection_T_2);
+			type.setElementType(_UniqueCollection_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Collection_UniqueCollection_T);
+		}
+		
+		protected void installClassifierTypes() {
+			final List<Type> ownedTypes = library.getOwnedTypes();
+			final List<Type> orphanTypes = pk_$$.getOwnedTypes();
+			ClassifierType type;
+			List<Type> superClasses;
+			orphanTypes.add(type = _AnyClassifier_UnlimitedNatural_oclAsType_TT);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_UnlimitedNatural_oclAsType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_Bag_selectByKind_TT);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_Bag_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_Bag_selectByType_TT);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_Bag_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_ClassClassifier_T);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_ClassClassifier_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_CollectionClassifier_T);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_CollectionClassifier_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_Collection_selectByKind_TT);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_Collection_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_Collection_selectByType_TT);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_Collection_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_EnumerationClassifier_T);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_EnumerationClassifier_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_OclAny_oclAsType_TT);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_OclAny_oclAsType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_OclAny_oclIsKindOf_T);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_OclAny_oclIsKindOf_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_OclAny_oclIsTypeOf_T);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_OclAny_oclIsTypeOf_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_OclInvalid);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_OclInvalid);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_OclInvalid_1);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_OclInvalid);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_OclSelf);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_OclVoid);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_OclVoid);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_OrderedSet_selectByKind_TT);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_OrderedSet_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_OrderedSet_selectByType_TT);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_OrderedSet_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_Sequence_selectByKind_TT);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_Sequence_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_Sequence_selectByType_TT);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_Sequence_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_Set_selectByKind_TT);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_Set_selectByKind_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _AnyClassifier_Set_selectByType_TT);
+			type.setUnspecializedElement(_AnyClassifier);
+			type.setInstanceType(_Set_selectByType_TT);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			ownedTypes.add(type = _AnyClassifier);
+			type.setInstanceType(_AnyClassifier_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			superClasses.add(_OclType);
+			orphanTypes.add(type = _ClassClassifier_OclInvalid);
+			type.setUnspecializedElement(_ClassClassifier);
+			type.setInstanceType(_OclInvalid);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_AnyClassifier_OclInvalid_1);
+			orphanTypes.add(type = _ClassClassifier_OclSelf);
+			type.setUnspecializedElement(_ClassClassifier);
+			type.setInstanceType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_AnyClassifier_OclSelf);
+			orphanTypes.add(type = _ClassClassifier_OclVoid);
+			type.setUnspecializedElement(_ClassClassifier);
+			type.setInstanceType(_OclVoid);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_AnyClassifier_OclVoid);
+			ownedTypes.add(type = _ClassClassifier);
+			type.setInstanceType(_ClassClassifier_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_AnyClassifier_ClassClassifier_T);
+			orphanTypes.add(type = _CollectionClassifier_OclSelf_Collection_T);
+			type.setUnspecializedElement(_CollectionClassifier);
+			type.setInstanceType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_AnyClassifier_OclSelf);
+			ownedTypes.add(type = _CollectionClassifier);
+			type.setInstanceType(_CollectionClassifier_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_AnyClassifier_CollectionClassifier_T);
+			orphanTypes.add(type = _EnumerationClassifier_OclSelf);
+			type.setUnspecializedElement(_EnumerationClassifier);
+			type.setInstanceType(_OclSelf);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_AnyClassifier_OclSelf);
+			ownedTypes.add(type = _EnumerationClassifier);
+			type.setInstanceType(_EnumerationClassifier_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_AnyClassifier_EnumerationClassifier_T);
+		}
+		
+		protected void installTupleTypes() {
+			final List<Type> orphanTypes = pk_$$.getOwnedTypes();
+			TupleType type;
+			List<Type> superClasses;
+			orphanTypes.add(type = _Tuple);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclTuple);
+			orphanTypes.add(type = _Tuple_1);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclTuple);
+			orphanTypes.add(type = _Tuple_2);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclTuple);
+			orphanTypes.add(type = _Tuple_3);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclTuple);
+		}
+		
+		protected final LambdaType _Lambda_Bag_T = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Bag_T_1 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Bag_T_2 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Bag_T_3 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Bag_T_4 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Bag_T_5 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Collection_T = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Collection_T_1 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Collection_T_2 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Collection_T_3 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Collection_T_4 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Collection_T_5 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Collection_T_6 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Collection_T_7 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Collection_T_8 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Collection_T_9 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Collection_T_10 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Collection_T_11 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Collection_T_12 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_OrderedSet_T = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_OrderedSet_T_1 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_OrderedSet_T_2 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Sequence_T = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Sequence_T_1 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Sequence_T_2 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Sequence_T_3 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Sequence_T_4 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Sequence_T_5 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Set_T = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Set_T_1 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_Set_T_2 = createLambdaType("Lambda");
+		protected final LambdaType _Lambda_UniqueCollection_T = createLambdaType("Lambda");
+		
+		protected void installLambdaTypes() {
+			final List<Type> orphanTypes = pk_$$.getOwnedTypes();
+			LambdaType type;
+			List<Type> superClasses;
+			orphanTypes.add(type = _Lambda_Bag_T);
+			type.setContextType(_Bag_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Bag_T_1);
+			type.setContextType(_Bag_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Bag_T_2);
+			type.setContextType(_Bag_T);
+			type.setResultType(_Bag_collectNested_V);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Bag_T_3);
+			type.setContextType(_Bag_T);
+			type.setResultType(_Bag_collect_V);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Bag_T_4);
+			type.setContextType(_Bag_T);
+			type.setResultType(_OclAny);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Bag_T_5);
+			type.setContextType(_Bag_T);
+			type.setResultType(_Set_Bag_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Collection_T);
+			type.setContextType(_Collection_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Collection_T_1);
+			type.setContextType(_Collection_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Collection_T_2);
+			type.setContextType(_Collection_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Collection_T_3);
+			type.setContextType(_Collection_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Collection_T_4);
+			type.setContextType(_Collection_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Collection_T_5);
+			type.setContextType(_Collection_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Collection_T_6);
+			type.setContextType(_Collection_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Collection_T_7);
+			type.setContextType(_Collection_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Collection_T_8);
+			type.setContextType(_Collection_T);
+			type.setResultType(_Collection_collectNested_V);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Collection_T_9);
+			type.setContextType(_Collection_T);
+			type.setResultType(_Collection_collect_V);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Collection_T_10);
+			type.setContextType(_Collection_T);
+			type.setResultType(_Collection_iterate_Tacc);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Collection_T_11);
+			type.setContextType(_Collection_T);
+			type.setResultType(_OclAny);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Collection_T_12);
+			type.setContextType(_Collection_T);
+			type.setResultType(_OclAny);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_OrderedSet_T);
+			type.setContextType(_OrderedSet_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_OrderedSet_T_1);
+			type.setContextType(_OrderedSet_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_OrderedSet_T_2);
+			type.setContextType(_OrderedSet_T);
+			type.setResultType(_OclAny);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Sequence_T);
+			type.setContextType(_Sequence_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Sequence_T_1);
+			type.setContextType(_Sequence_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Sequence_T_2);
+			type.setContextType(_Sequence_T);
+			type.setResultType(_OclAny);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Sequence_T_3);
+			type.setContextType(_Sequence_T);
+			type.setResultType(_OrderedSet_Sequence_T);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Sequence_T_4);
+			type.setContextType(_Sequence_T);
+			type.setResultType(_Sequence_collectNested_V);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Sequence_T_5);
+			type.setContextType(_Sequence_T);
+			type.setResultType(_Sequence_collect_V);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Set_T);
+			type.setContextType(_Set_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Set_T_1);
+			type.setContextType(_Set_T);
+			type.setResultType(_Boolean);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_Set_T_2);
+			type.setContextType(_Set_T);
+			type.setResultType(_OclAny);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+			orphanTypes.add(type = _Lambda_UniqueCollection_T);
+			type.setContextType(_UniqueCollection_T);
+			type.setResultType(_OclAny);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclLambda);
+		}
+			
+		protected final Operation op_Boolean__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE);
+		protected final Operation op_Boolean__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE);
+		protected final Operation op_Boolean_allInstances = createOperation("allInstances", _Set_OclSelf, "org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation", org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation.INSTANCE);
+		protected final Operation op_Boolean_and = createOperation("and", _Boolean, "org.eclipse.ocl.examples.library.logical.BooleanAndOperation", org.eclipse.ocl.examples.library.logical.BooleanAndOperation.INSTANCE);
+		protected final Operation op_Boolean_implies = createOperation("implies", _Boolean, "org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation", org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation.INSTANCE);
+		protected final Operation op_Boolean_not = createOperation("not", _Boolean, "org.eclipse.ocl.examples.library.logical.BooleanNotOperation", org.eclipse.ocl.examples.library.logical.BooleanNotOperation.INSTANCE);
+		protected final Operation op_Boolean_or = createOperation("or", _Boolean, "org.eclipse.ocl.examples.library.logical.BooleanOrOperation", org.eclipse.ocl.examples.library.logical.BooleanOrOperation.INSTANCE);
+		protected final Operation op_Boolean_toString = createOperation("toString", _String, "org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation.INSTANCE);
+		protected final Operation op_Boolean_xor = createOperation("xor", _Boolean, "org.eclipse.ocl.examples.library.logical.BooleanXorOperation", org.eclipse.ocl.examples.library.logical.BooleanXorOperation.INSTANCE);
+		protected final Operation op_Integer__mul_ = createOperation("*", _Integer, "org.eclipse.ocl.examples.library.numeric.NumericTimesOperation", org.eclipse.ocl.examples.library.numeric.NumericTimesOperation.INSTANCE);
+		protected final Operation op_Integer__add_ = createOperation("+", _Integer, "org.eclipse.ocl.examples.library.integer.IntegerPlusOperation", org.eclipse.ocl.examples.library.integer.IntegerPlusOperation.INSTANCE);
+		protected final Operation op_Integer__sub_ = createOperation("-", _Integer, "org.eclipse.ocl.examples.library.numeric.NumericNegateOperation", org.eclipse.ocl.examples.library.numeric.NumericNegateOperation.INSTANCE);
+		protected final Operation op_Integer__sub__1 = createOperation("-", _Integer, "org.eclipse.ocl.examples.library.integer.IntegerMinusOperation", org.eclipse.ocl.examples.library.integer.IntegerMinusOperation.INSTANCE);
+		protected final Operation op_Integer__div_ = createOperation("/", _Real, "org.eclipse.ocl.examples.library.numeric.NumericDivideOperation", org.eclipse.ocl.examples.library.numeric.NumericDivideOperation.INSTANCE);
+		protected final Operation op_Integer_abs = createOperation("abs", _Integer, "org.eclipse.ocl.examples.library.numeric.NumericAbsOperation", org.eclipse.ocl.examples.library.numeric.NumericAbsOperation.INSTANCE);
+		protected final Operation op_Integer_compareTo = createOperation("compareTo", _Integer, "org.eclipse.ocl.examples.library.integer.IntegerCompareToOperation", org.eclipse.ocl.examples.library.integer.IntegerCompareToOperation.INSTANCE);
+		protected final Operation op_Integer_div = createOperation("div", _Integer, "org.eclipse.ocl.examples.library.numeric.NumericDivOperation", org.eclipse.ocl.examples.library.numeric.NumericDivOperation.INSTANCE);
+		protected final Operation op_Integer_max = createOperation("max", _Integer, "org.eclipse.ocl.examples.library.numeric.NumericMaxOperation", org.eclipse.ocl.examples.library.numeric.NumericMaxOperation.INSTANCE);
+		protected final Operation op_Integer_min = createOperation("min", _Integer, "org.eclipse.ocl.examples.library.numeric.NumericMinOperation", org.eclipse.ocl.examples.library.numeric.NumericMinOperation.INSTANCE);
+		protected final Operation op_Integer_mod = createOperation("mod", _Integer, "org.eclipse.ocl.examples.library.numeric.NumericModOperation", org.eclipse.ocl.examples.library.numeric.NumericModOperation.INSTANCE);
+		protected final Operation op_Integer_toString = createOperation("toString", _String, "org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation.INSTANCE);
+		protected final Operation op_Real__mul_ = createOperation("*", _Real, "org.eclipse.ocl.examples.library.numeric.NumericTimesOperation", org.eclipse.ocl.examples.library.numeric.NumericTimesOperation.INSTANCE);
+		protected final Operation op_Real__add_ = createOperation("+", _Real, "org.eclipse.ocl.examples.library.real.RealPlusOperation", org.eclipse.ocl.examples.library.real.RealPlusOperation.INSTANCE);
+		protected final Operation op_Real__sub_ = createOperation("-", _Real, "org.eclipse.ocl.examples.library.numeric.NumericNegateOperation", org.eclipse.ocl.examples.library.numeric.NumericNegateOperation.INSTANCE);
+		protected final Operation op_Real__sub__1 = createOperation("-", _Real, "org.eclipse.ocl.examples.library.real.RealMinusOperation", org.eclipse.ocl.examples.library.real.RealMinusOperation.INSTANCE);
+		protected final Operation op_Real__div_ = createOperation("/", _Real, "org.eclipse.ocl.examples.library.numeric.NumericDivideOperation", org.eclipse.ocl.examples.library.numeric.NumericDivideOperation.INSTANCE);
+		protected final Operation op_Real__lt_ = createOperation("<", _Boolean, "org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation", org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation.INSTANCE);
+		protected final Operation op_Real__lt__eq_ = createOperation("<=", _Boolean, "org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation", org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation.INSTANCE);
+		protected final Operation op_Real__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE);
+		protected final Operation op_Real__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE);
+		protected final Operation op_Real__gt_ = createOperation(">", _Boolean, "org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation", org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation.INSTANCE);
+		protected final Operation op_Real__gt__eq_ = createOperation(">=", _Boolean, "org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation", org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation.INSTANCE);
+		protected final Operation op_Real_abs = createOperation("abs", _Real, "org.eclipse.ocl.examples.library.numeric.NumericAbsOperation", org.eclipse.ocl.examples.library.numeric.NumericAbsOperation.INSTANCE);
+		protected final Operation op_Real_compareTo = createOperation("compareTo", _Integer, "org.eclipse.ocl.examples.library.real.RealCompareToOperation", org.eclipse.ocl.examples.library.real.RealCompareToOperation.INSTANCE);
+		protected final Operation op_Real_floor = createOperation("floor", _Integer, "org.eclipse.ocl.examples.library.numeric.NumericFloorOperation", org.eclipse.ocl.examples.library.numeric.NumericFloorOperation.INSTANCE);
+		protected final Operation op_Real_max = createOperation("max", _Real, "org.eclipse.ocl.examples.library.numeric.NumericMaxOperation", org.eclipse.ocl.examples.library.numeric.NumericMaxOperation.INSTANCE);
+		protected final Operation op_Real_min = createOperation("min", _Real, "org.eclipse.ocl.examples.library.numeric.NumericMinOperation", org.eclipse.ocl.examples.library.numeric.NumericMinOperation.INSTANCE);
+		protected final Operation op_Real_round = createOperation("round", _Integer, "org.eclipse.ocl.examples.library.numeric.NumericRoundOperation", org.eclipse.ocl.examples.library.numeric.NumericRoundOperation.INSTANCE);
+		protected final Operation op_Real_toString = createOperation("toString", _String, "org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation.INSTANCE);
+		protected final Operation op_String__add_ = createOperation("+", _String, "org.eclipse.ocl.examples.library.string.StringConcatOperation", org.eclipse.ocl.examples.library.string.StringConcatOperation.INSTANCE);
+		protected final Operation op_String__lt_ = createOperation("<", _Boolean, "org.eclipse.ocl.examples.library.string.StringLessThanOperation", org.eclipse.ocl.examples.library.string.StringLessThanOperation.INSTANCE);
+		protected final Operation op_String__lt__eq_ = createOperation("<=", _Boolean, "org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation", org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation.INSTANCE);
+		protected final Operation op_String__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE);
+		protected final Operation op_String__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE);
+		protected final Operation op_String__gt_ = createOperation(">", _Boolean, "org.eclipse.ocl.examples.library.string.StringGreaterThanOperation", org.eclipse.ocl.examples.library.string.StringGreaterThanOperation.INSTANCE);
+		protected final Operation op_String__gt__eq_ = createOperation(">=", _Boolean, "org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation", org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation.INSTANCE);
+		protected final Operation op_String_at = createOperation("at", _String, "org.eclipse.ocl.examples.library.string.StringAtOperation", org.eclipse.ocl.examples.library.string.StringAtOperation.INSTANCE);
+		protected final Operation op_String_characters = createOperation("characters", _Sequence_String, "org.eclipse.ocl.examples.library.string.StringCharactersOperation", org.eclipse.ocl.examples.library.string.StringCharactersOperation.INSTANCE);
+		protected final Operation op_String_compareTo = createOperation("compareTo", _Integer, "org.eclipse.ocl.examples.library.string.StringCompareToOperation", org.eclipse.ocl.examples.library.string.StringCompareToOperation.INSTANCE);
+		protected final Operation op_String_concat = createOperation("concat", _String, "org.eclipse.ocl.examples.library.string.StringConcatOperation", org.eclipse.ocl.examples.library.string.StringConcatOperation.INSTANCE);
+		protected final Operation op_String_equalsIgnoreCase = createOperation("equalsIgnoreCase", _Boolean, "org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation", org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation.INSTANCE);
+		protected final Operation op_String_indexOf = createOperation("indexOf", _Integer, "org.eclipse.ocl.examples.library.string.StringIndexOfOperation", org.eclipse.ocl.examples.library.string.StringIndexOfOperation.INSTANCE);
+		protected final Operation op_String_size = createOperation("size", _Integer, "org.eclipse.ocl.examples.library.string.StringSizeOperation", org.eclipse.ocl.examples.library.string.StringSizeOperation.INSTANCE);
+		protected final Operation op_String_substring = createOperation("substring", _String, "org.eclipse.ocl.examples.library.string.StringSubstringOperation", org.eclipse.ocl.examples.library.string.StringSubstringOperation.INSTANCE);
+		protected final Operation op_String_toBoolean = createOperation("toBoolean", _Boolean, "org.eclipse.ocl.examples.library.string.StringToBooleanOperation", org.eclipse.ocl.examples.library.string.StringToBooleanOperation.INSTANCE);
+		protected final Operation op_String_toInteger = createOperation("toInteger", _Integer, "org.eclipse.ocl.examples.library.string.StringToIntegerOperation", org.eclipse.ocl.examples.library.string.StringToIntegerOperation.INSTANCE);
+		protected final Operation op_String_toLower = createOperation("toLower", _String, "org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation", org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation.INSTANCE);
+		protected final Operation op_String_toLowerCase = createOperation("toLowerCase", _String, "org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation", org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation.INSTANCE);
+		protected final Operation op_String_toReal = createOperation("toReal", _Real, "org.eclipse.ocl.examples.library.string.StringToRealOperation", org.eclipse.ocl.examples.library.string.StringToRealOperation.INSTANCE);
+		protected final Operation op_String_toString = createOperation("toString", _String, "org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation.INSTANCE);
+		protected final Operation op_String_toUpper = createOperation("toUpper", _String, "org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation", org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation.INSTANCE);
+		protected final Operation op_String_toUpperCase = createOperation("toUpperCase", _String, "org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation", org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation.INSTANCE);
+		protected final Operation op_UnlimitedNatural_oclAsType = createOperation("oclAsType", _UnlimitedNatural_oclAsType_TT, "org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation", org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation.INSTANCE);
+		protected final Operation op_Bag_Bag_T__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE);
+		protected final Operation op_Bag_Bag_T__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE);
+		protected final Operation op_Bag_Bag_T_excluding = createOperation("excluding", _Bag_Bag_T_4, "org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation", org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation.INSTANCE);
+		protected final Operation op_Bag_Bag_T_flatten = createOperation("flatten", _Bag_Bag_flatten_T2, "org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation", org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation.INSTANCE);
+		protected final Operation op_Bag_Bag_T_including = createOperation("including", _Bag_Bag_T_4, "org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation", org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation.INSTANCE);
+		protected final Operation op_Bag_Bag_T_intersection = createOperation("intersection", _Bag_Bag_T_4, "org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation.INSTANCE);
+		protected final Operation op_Bag_Bag_T_intersection_1 = createOperation("intersection", _Set_Bag_T, "org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation.INSTANCE);
+		protected final Operation op_Bag_Bag_T_selectByKind = createOperation("selectByKind", _Bag_Bag_selectByKind_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation.INSTANCE);
+		protected final Operation op_Bag_Bag_T_selectByType = createOperation("selectByType", _Bag_Bag_selectByType_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation.INSTANCE);
+		protected final Operation op_Bag_Bag_T_union = createOperation("union", _Bag_Bag_T_4, "org.eclipse.ocl.examples.library.collection.CollectionUnionOperation", org.eclipse.ocl.examples.library.collection.CollectionUnionOperation.INSTANCE);
+		protected final Operation op_Bag_Bag_T_union_1 = createOperation("union", _Set_Bag_T, "org.eclipse.ocl.examples.library.collection.CollectionUnionOperation", org.eclipse.ocl.examples.library.collection.CollectionUnionOperation.INSTANCE);
+		protected final Operation op_Class_oclType = createOperation("oclType", _ClassClassifier_OclSelf, "org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_asBag = createOperation("asBag", _Bag_Collection_T, "org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation", org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_asOrderedSet = createOperation("asOrderedSet", _OrderedSet_Collection_T, "org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation", org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_asSequence = createOperation("asSequence", _Sequence_Collection_T, "org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation", org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_asSet = createOperation("asSet", _Set_Collection_T, "org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation", org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_count = createOperation("count", _Integer, "org.eclipse.ocl.examples.library.collection.CollectionCountOperation", org.eclipse.ocl.examples.library.collection.CollectionCountOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_excludes = createOperation("excludes", _Boolean, "org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation", org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_excludesAll = createOperation("excludesAll", _Boolean, "org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation", org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_excluding = createOperation("excluding", _Collection_Collection_T_3, "org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation", org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_flatten = createOperation("flatten", _Collection_Collection_flatten_T2, "org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation", org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_includes = createOperation("includes", _Boolean, "org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation", org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_includesAll = createOperation("includesAll", _Boolean, "org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation", org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_including = createOperation("including", _Collection_Collection_T_3, "org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation", org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_isEmpty = createOperation("isEmpty", _Boolean, "org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation", org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_max = createOperation("max", _Collection_T, "org.eclipse.ocl.examples.library.collection.CollectionMaxOperation", org.eclipse.ocl.examples.library.collection.CollectionMaxOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_min = createOperation("min", _Collection_T, "org.eclipse.ocl.examples.library.collection.CollectionMinOperation", org.eclipse.ocl.examples.library.collection.CollectionMinOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_notEmpty = createOperation("notEmpty", _Boolean, "org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation", org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_oclType = createOperation("oclType", _CollectionClassifier_OclSelf_Collection_T, "org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_product = createOperation("product", _Set_Tuple, "org.eclipse.ocl.examples.library.collection.CollectionProductOperation", org.eclipse.ocl.examples.library.collection.CollectionProductOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_selectByKind = createOperation("selectByKind", _Collection_Collection_selectByKind_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_selectByType = createOperation("selectByType", _Collection_Collection_selectByType_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_size = createOperation("size", _Integer, "org.eclipse.ocl.examples.library.collection.CollectionSizeOperation", org.eclipse.ocl.examples.library.collection.CollectionSizeOperation.INSTANCE);
+		protected final Operation op_Collection_Collection_T_sum = createOperation("sum", _Collection_T, "org.eclipse.ocl.examples.library.collection.CollectionSumOperation", org.eclipse.ocl.examples.library.collection.CollectionSumOperation.INSTANCE);
+		protected final Operation op_Enumeration_allInstances = createOperation("allInstances", _Set_OclSelf, "org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation", org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation.INSTANCE);
+		protected final Operation op_Enumeration_oclType = createOperation("oclType", _EnumerationClassifier_OclSelf, "org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation.INSTANCE);
+		protected final Operation op_OclAny__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE);
+		protected final Operation op_OclAny__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE);
+		protected final Operation op_OclAny_oclAsSet = createOperation("oclAsSet", _Set_OclSelf, "org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation.INSTANCE);
+		protected final Operation op_OclAny_oclAsType = createOperation("oclAsType", _OclAny_oclAsType_TT, "org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation.INSTANCE);
+		protected final Operation op_OclAny_oclIsInState = createOperation("oclIsInState", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation.INSTANCE);
+		protected final Operation op_OclAny_oclIsInvalid = createOperation("oclIsInvalid", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation.INSTANCE);
+		protected final Operation op_OclAny_oclIsKindOf = createOperation("oclIsKindOf", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation.INSTANCE);
+		protected final Operation op_OclAny_oclIsNew = createOperation("oclIsNew", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
+		protected final Operation op_OclAny_oclIsTypeOf = createOperation("oclIsTypeOf", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation.INSTANCE);
+		protected final Operation op_OclAny_oclIsUndefined = createOperation("oclIsUndefined", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation.INSTANCE);
+		protected final Operation op_OclAny_oclType = createOperation("oclType", _AnyClassifier_OclSelf, "org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation", org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation.INSTANCE);
+		protected final Operation op_OclComparable_compareTo = createOperation("compareTo", _Integer, null, null);
+		protected final Operation op_OclElement_allInstances = createOperation("allInstances", _Set_OclSelf, "org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation", org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation.INSTANCE);
+		protected final Operation op_OclElement_oclContainer = createOperation("oclContainer", _OclElement, "org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation", org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation.INSTANCE);
+		protected final Operation op_OclElement_oclContents = createOperation("oclContents", _Set_OclElement, "org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation", org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation.INSTANCE);
+		protected final Operation op_OclInvalid__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE);
+		protected final Operation op_OclInvalid__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE);
+		protected final Operation op_OclInvalid_allInstances = createOperation("allInstances", _Set_OclSelf, "org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation", org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation.INSTANCE);
+		protected final Operation op_OclInvalid_oclBadOperation = createOperation("oclBadOperation", _OclInvalid, null, null);
+		protected final Operation op_OclInvalid_toString = createOperation("toString", _String, "org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation.INSTANCE);
+		protected final Operation op_OclMessage_hasReturned = createOperation("hasReturned", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
+		protected final Operation op_OclMessage_isOperationCall = createOperation("isOperationCall", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
+		protected final Operation op_OclMessage_isSignalSent = createOperation("isSignalSent", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
+		protected final Operation op_OclMessage_result = createOperation("result", _OclAny, "org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation", org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation.INSTANCE);
+		protected final Operation op_OclSummable_sum = createOperation("sum", _OclSelf, null, null);
+		protected final Operation op_OclSummable_zero = createOperation("zero", _OclSelf, null, null);
+		protected final Operation op_OclTuple__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE);
+		protected final Operation op_OclTuple__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE);
+		protected final Operation op_OclType_conformsTo = createOperation("conformsTo", _Boolean, "org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation", org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation.INSTANCE);
+		protected final Operation op_OclVoid__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE);
+		protected final Operation op_OclVoid__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE);
+		protected final Operation op_OclVoid_allInstances = createOperation("allInstances", _Set_OclSelf, "org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation", org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation.INSTANCE);
+		protected final Operation op_OclVoid_and = createOperation("and", _Boolean, "org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation", org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation.INSTANCE);
+		protected final Operation op_OclVoid_implies = createOperation("implies", _Boolean, "org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation", org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation.INSTANCE);
+		protected final Operation op_OclVoid_or = createOperation("or", _Boolean, "org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation", org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation.INSTANCE);
+		protected final Operation op_OclVoid_toString = createOperation("toString", _String, "org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation", org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T__sub_ = createOperation("-", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.examples.library.collection.SetMinusOperation", org.eclipse.ocl.examples.library.collection.SetMinusOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T_append = createOperation("append", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T_excluding = createOperation("excluding", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation", org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T_flatten = createOperation("flatten", _OrderedSet_OrderedSet_flatten_T2, "org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation", org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T_including = createOperation("including", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation", org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T_insertAt = createOperation("insertAt", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T_intersection = createOperation("intersection", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T_prepend = createOperation("prepend", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T_reverse = createOperation("reverse", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T_selectByKind = createOperation("selectByKind", _OrderedSet_OrderedSet_selectByKind_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T_selectByType = createOperation("selectByType", _OrderedSet_OrderedSet_selectByType_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T_subOrderedSet = createOperation("subOrderedSet", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation", org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation.INSTANCE);
+		protected final Operation op_OrderedSet_OrderedSet_T_union = createOperation("union", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.examples.library.collection.CollectionUnionOperation", org.eclipse.ocl.examples.library.collection.CollectionUnionOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_append = createOperation("append", _Sequence_Sequence_T_3, "org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_at = createOperation("at", _Sequence_T, "org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_excluding = createOperation("excluding", _Sequence_Sequence_T_3, "org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation", org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_first = createOperation("first", _Sequence_T, "org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_flatten = createOperation("flatten", _Sequence_Sequence_flatten_T2, "org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation", org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_including = createOperation("including", _Sequence_Sequence_T_3, "org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation", org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_indexOf = createOperation("indexOf", _Integer, "org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_insertAt = createOperation("insertAt", _Sequence_Sequence_T_3, "org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_intersection = createOperation("intersection", _Bag_Sequence_T, "org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_intersection_1 = createOperation("intersection", _OrderedSet_Sequence_T, "org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_last = createOperation("last", _Sequence_T, "org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_prepend = createOperation("prepend", _Sequence_Sequence_T_3, "org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_reverse = createOperation("reverse", _Sequence_Sequence_T_3, "org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation", org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_selectByKind = createOperation("selectByKind", _Sequence_Sequence_selectByKind_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_selectByType = createOperation("selectByType", _Sequence_Sequence_selectByType_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_subSequence = createOperation("subSequence", _Sequence_Sequence_T_3, "org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation", org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation.INSTANCE);
+		protected final Operation op_Sequence_Sequence_T_union = createOperation("union", _Sequence_Sequence_T_3, "org.eclipse.ocl.examples.library.collection.CollectionUnionOperation", org.eclipse.ocl.examples.library.collection.CollectionUnionOperation.INSTANCE);
+		protected final Operation op_Set_Set_T__sub_ = createOperation("-", _Set_Set_T, "org.eclipse.ocl.examples.library.collection.SetMinusOperation", org.eclipse.ocl.examples.library.collection.SetMinusOperation.INSTANCE);
+		protected final Operation op_Set_Set_T__lt__gt_ = createOperation("<>", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation.INSTANCE);
+		protected final Operation op_Set_Set_T__eq_ = createOperation("=", _Boolean, "org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation", org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation.INSTANCE);
+		protected final Operation op_Set_Set_T_excluding = createOperation("excluding", _Set_Set_T, "org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation", org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation.INSTANCE);
+		protected final Operation op_Set_Set_T_flatten = createOperation("flatten", _Set_Set_flatten_T2, "org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation", org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation.INSTANCE);
+		protected final Operation op_Set_Set_T_including = createOperation("including", _Set_Set_T, "org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation", org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation.INSTANCE);
+		protected final Operation op_Set_Set_T_intersection = createOperation("intersection", _Set_Set_T, "org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation", org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation.INSTANCE);
+		protected final Operation op_Set_Set_T_selectByKind = createOperation("selectByKind", _Set_Set_selectByKind_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation.INSTANCE);
+		protected final Operation op_Set_Set_T_selectByType = createOperation("selectByType", _Set_Set_selectByType_TT, "org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation", org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation.INSTANCE);
+		protected final Operation op_Set_Set_T_union = createOperation("union", _Set_Set_T, "org.eclipse.ocl.examples.library.collection.CollectionUnionOperation", org.eclipse.ocl.examples.library.collection.CollectionUnionOperation.INSTANCE);
+		protected final Operation op_UniqueCollection_UniqueCollection_T__sub_ = createOperation("-", _UniqueCollection_UniqueCollection_T_2, "org.eclipse.ocl.examples.library.collection.SetMinusOperation", org.eclipse.ocl.examples.library.collection.SetMinusOperation.INSTANCE);
+		protected final Operation op_UniqueCollection_UniqueCollection_T_symmetricDifference = createOperation("symmetricDifference", _Set_UniqueCollection_T, "org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation", org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation.INSTANCE);
+		protected final Operation op_UniqueCollection_UniqueCollection_T_union = createOperation("union", _Set_UniqueCollection_T, "org.eclipse.ocl.examples.library.collection.CollectionUnionOperation", org.eclipse.ocl.examples.library.collection.CollectionUnionOperation.INSTANCE);
+		
+		protected void installOperations() {
+			List<Operation> ownedOperations;
+			List<Parameter> ownedParameters;
+			Operation operation;
+			Parameter parameter;
+			ownedOperations = _Boolean.getOwnedOperations();
+			ownedOperations.add(operation = op_Boolean__lt__gt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_Boolean__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_Boolean_allInstances);
+			operation.setIsStatic(true);
+			ownedOperations.add(operation = op_Boolean_and);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("b", _Boolean));
+			ownedOperations.add(operation = op_Boolean_implies);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("b", _Boolean));
+			ownedOperations.add(operation = op_Boolean_not);
+			ownedOperations.add(operation = op_Boolean_or);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("b", _Boolean));
+			ownedOperations.add(operation = op_Boolean_toString);
+			ownedOperations.add(operation = op_Boolean_xor);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("b", _Boolean));
+			ownedOperations = _Integer.getOwnedOperations();
+			ownedOperations.add(operation = op_Integer__mul_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("i", _OclSelf));
+			ownedOperations.add(operation = op_Integer__add_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("i", _OclSelf));
+			ownedOperations.add(operation = op_Integer__sub_);
+			ownedOperations.add(operation = op_Integer__sub__1);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("i", _OclSelf));
+			ownedOperations.add(operation = op_Integer__div_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("i", _OclSelf));
+			ownedOperations.add(operation = op_Integer_abs);
+			ownedOperations.add(operation = op_Integer_compareTo);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("that", _OclSelf));
+			ownedOperations.add(operation = op_Integer_div);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("i", _Integer));
+			ownedOperations.add(operation = op_Integer_max);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("i", _OclSelf));
+			ownedOperations.add(operation = op_Integer_min);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("i", _OclSelf));
+			ownedOperations.add(operation = op_Integer_mod);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("i", _Integer));
+			ownedOperations.add(operation = op_Integer_toString);
+			ownedOperations = _Real.getOwnedOperations();
+			ownedOperations.add(operation = op_Real__mul_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("r", _OclSelf));
+			ownedOperations.add(operation = op_Real__add_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("r", _OclSelf));
+			ownedOperations.add(operation = op_Real__sub_);
+			ownedOperations.add(operation = op_Real__sub__1);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("r", _OclSelf));
+			ownedOperations.add(operation = op_Real__div_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("r", _OclSelf));
+			ownedOperations.add(operation = op_Real__lt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("r", _OclSelf));
+			ownedOperations.add(operation = op_Real__lt__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("r", _OclSelf));
+			ownedOperations.add(operation = op_Real__lt__gt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_Real__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_Real__gt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("r", _OclSelf));
+			ownedOperations.add(operation = op_Real__gt__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("r", _OclSelf));
+			ownedOperations.add(operation = op_Real_abs);
+			ownedOperations.add(operation = op_Real_compareTo);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("that", _OclSelf));
+			ownedOperations.add(operation = op_Real_floor);
+			ownedOperations.add(operation = op_Real_max);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("r", _OclSelf));
+			ownedOperations.add(operation = op_Real_min);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("r", _OclSelf));
+			ownedOperations.add(operation = op_Real_round);
+			ownedOperations.add(operation = op_Real_toString);
+			ownedOperations = _String.getOwnedOperations();
+			ownedOperations.add(operation = op_String__add_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _String));
+			ownedOperations.add(operation = op_String__lt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _OclSelf));
+			ownedOperations.add(operation = op_String__lt__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _OclSelf));
+			ownedOperations.add(operation = op_String__lt__gt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_String__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_String__gt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _OclSelf));
+			ownedOperations.add(operation = op_String__gt__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _OclSelf));
+			ownedOperations.add(operation = op_String_at);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("i", _Integer));
+			ownedOperations.add(operation = op_String_characters);
+			ownedOperations.add(operation = op_String_compareTo);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("that", _OclSelf));
+			ownedOperations.add(operation = op_String_concat);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _String));
+			ownedOperations.add(operation = op_String_equalsIgnoreCase);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _String));
+			ownedOperations.add(operation = op_String_indexOf);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _String));
+			ownedOperations.add(operation = op_String_size);
+			ownedOperations.add(operation = op_String_substring);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("lower", _Integer));
+			ownedParameters.add(parameter = createParameter("upper", _Integer));
+			ownedOperations.add(operation = op_String_toBoolean);
+			ownedOperations.add(operation = op_String_toInteger);
+			ownedOperations.add(operation = op_String_toLower);
+			ownedOperations.add(operation = op_String_toLowerCase);
+			ownedOperations.add(operation = op_String_toReal);
+			ownedOperations.add(operation = op_String_toString);
+			ownedOperations.add(operation = op_String_toUpper);
+			ownedOperations.add(operation = op_String_toUpperCase);
+			ownedOperations = _UnlimitedNatural.getOwnedOperations();
+			ownedOperations.add(operation = op_UnlimitedNatural_oclAsType);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type", _AnyClassifier_UnlimitedNatural_oclAsType_TT));
+			ownedOperations = _Bag_Bag_T_4.getOwnedOperations();
+			ownedOperations.add(operation = op_Bag_Bag_T__lt__gt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_Bag_Bag_T__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_Bag_Bag_T_excluding);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _OclAny));
+			ownedOperations.add(operation = op_Bag_Bag_T_flatten);
+			ownedOperations.add(operation = op_Bag_Bag_T_including);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _Bag_T));
+			ownedOperations.add(operation = op_Bag_Bag_T_intersection);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("bag", _Collection_Bag_T_2));
+			ownedOperations.add(operation = op_Bag_Bag_T_intersection_1);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_Bag_T_3));
+			ownedOperations.add(operation = op_Bag_Bag_T_selectByKind);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type", _AnyClassifier_Bag_selectByKind_TT));
+			ownedOperations.add(operation = op_Bag_Bag_T_selectByType);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type", _AnyClassifier_Bag_selectByType_TT));
+			ownedOperations.add(operation = op_Bag_Bag_T_union);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("bag", _Collection_Bag_T_2));
+			ownedOperations.add(operation = op_Bag_Bag_T_union_1);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_Bag_T_3));
+			ownedOperations = _Class.getOwnedOperations();
+			ownedOperations.add(operation = op_Class_oclType);
+			ownedOperations = _Collection_Collection_T_3.getOwnedOperations();
+			ownedOperations.add(operation = op_Collection_Collection_T__lt__gt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_Collection_Collection_T__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_Collection_Collection_T_asBag);
+			ownedOperations.add(operation = op_Collection_Collection_T_asOrderedSet);
+			ownedOperations.add(operation = op_Collection_Collection_T_asSequence);
+			ownedOperations.add(operation = op_Collection_Collection_T_asSet);
+			ownedOperations.add(operation = op_Collection_Collection_T_count);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _OclAny));
+			ownedOperations.add(operation = op_Collection_Collection_T_excludes);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _OclAny));
+			ownedOperations.add(operation = op_Collection_Collection_T_excludesAll);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("c2", _Collection_Collection_excludesAll_T2));
+			ownedOperations.add(operation = op_Collection_Collection_T_excluding);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _OclAny));
+			ownedOperations.add(operation = op_Collection_Collection_T_flatten);
+			ownedOperations.add(operation = op_Collection_Collection_T_includes);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _OclAny));
+			ownedOperations.add(operation = op_Collection_Collection_T_includesAll);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("c2", _Collection_Collection_includesAll_T2));
+			ownedOperations.add(operation = op_Collection_Collection_T_including);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _Collection_T));
+			ownedOperations.add(operation = op_Collection_Collection_T_isEmpty);
+			ownedOperations.add(operation = op_Collection_Collection_T_max);
+			ownedOperations.add(operation = op_Collection_Collection_T_min);
+			ownedOperations.add(operation = op_Collection_Collection_T_notEmpty);
+			ownedOperations.add(operation = op_Collection_Collection_T_oclType);
+			ownedOperations.add(operation = op_Collection_Collection_T_product);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("c2", _Collection_Collection_product_T2));
+			ownedOperations.add(operation = op_Collection_Collection_T_selectByKind);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type", _AnyClassifier_Collection_selectByKind_TT));
+			ownedOperations.add(operation = op_Collection_Collection_T_selectByType);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type", _AnyClassifier_Collection_selectByType_TT));
+			ownedOperations.add(operation = op_Collection_Collection_T_size);
+			ownedOperations.add(operation = op_Collection_Collection_T_sum);
+			ownedOperations = _Enumeration.getOwnedOperations();
+			ownedOperations.add(operation = op_Enumeration_allInstances);
+			operation.setIsStatic(true);
+			ownedOperations.add(operation = op_Enumeration_oclType);
+			ownedOperations = _OclAny.getOwnedOperations();
+			ownedOperations.add(operation = op_OclAny__lt__gt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_OclAny__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_OclAny_oclAsSet);
+			ownedOperations.add(operation = op_OclAny_oclAsType);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type", _AnyClassifier_OclAny_oclAsType_TT));
+			ownedOperations.add(operation = op_OclAny_oclIsInState);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("statespec", _OclState));
+			ownedOperations.add(operation = op_OclAny_oclIsInvalid);
+			ownedOperations.add(operation = op_OclAny_oclIsKindOf);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type", _AnyClassifier_OclAny_oclIsKindOf_T));
+			ownedOperations.add(operation = op_OclAny_oclIsNew);
+			ownedOperations.add(operation = op_OclAny_oclIsTypeOf);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type", _AnyClassifier_OclAny_oclIsTypeOf_T));
+			ownedOperations.add(operation = op_OclAny_oclIsUndefined);
+			ownedOperations.add(operation = op_OclAny_oclType);
+			ownedOperations = _OclComparable.getOwnedOperations();
+			ownedOperations.add(operation = op_OclComparable_compareTo);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("that", _OclSelf));
+			ownedOperations = _OclElement.getOwnedOperations();
+			ownedOperations.add(operation = op_OclElement_allInstances);
+			operation.setIsStatic(true);
+			ownedOperations.add(operation = op_OclElement_oclContainer);
+			ownedOperations.add(operation = op_OclElement_oclContents);
+			ownedOperations = _OclInvalid.getOwnedOperations();
+			ownedOperations.add(operation = op_OclInvalid__lt__gt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_OclInvalid__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_OclInvalid_allInstances);
+			operation.setIsStatic(true);
+			ownedOperations.add(operation = op_OclInvalid_oclBadOperation);
+			ownedOperations.add(operation = op_OclInvalid_toString);
+			ownedOperations = _OclMessage.getOwnedOperations();
+			ownedOperations.add(operation = op_OclMessage_hasReturned);
+			ownedOperations.add(operation = op_OclMessage_isOperationCall);
+			ownedOperations.add(operation = op_OclMessage_isSignalSent);
+			ownedOperations.add(operation = op_OclMessage_result);
+			ownedOperations = _OclSummable.getOwnedOperations();
+			ownedOperations.add(operation = op_OclSummable_sum);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("that", _OclSelf));
+			ownedOperations.add(operation = op_OclSummable_zero);
+			ownedOperations = _OclTuple.getOwnedOperations();
+			ownedOperations.add(operation = op_OclTuple__lt__gt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_OclTuple__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations = _OclType.getOwnedOperations();
+			ownedOperations.add(operation = op_OclType_conformsTo);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type2", _OclType));
+			ownedOperations = _OclVoid.getOwnedOperations();
+			ownedOperations.add(operation = op_OclVoid__lt__gt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_OclVoid__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_OclVoid_allInstances);
+			operation.setIsStatic(true);
+			ownedOperations.add(operation = op_OclVoid_and);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("b", _Boolean));
+			ownedOperations.add(operation = op_OclVoid_implies);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("b", _Boolean));
+			ownedOperations.add(operation = op_OclVoid_or);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("b", _Boolean));
+			ownedOperations.add(operation = op_OclVoid_toString);
+			ownedOperations = _OrderedSet_OrderedSet_T.getOwnedOperations();
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T__sub_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_OclAny));
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T__lt__gt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T_append);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _OrderedSet_T));
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T_excluding);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _OclAny));
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T_flatten);
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T_including);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _OrderedSet_T));
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T_insertAt);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("index", _Integer));
+			ownedParameters.add(parameter = createParameter("object", _OrderedSet_T));
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T_intersection);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("o", _Collection_OrderedSet_T_1));
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T_prepend);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _OrderedSet_T));
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T_reverse);
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T_selectByKind);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type", _AnyClassifier_OrderedSet_selectByKind_TT));
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T_selectByType);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type", _AnyClassifier_OrderedSet_selectByType_TT));
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T_subOrderedSet);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("lower", _Integer));
+			ownedParameters.add(parameter = createParameter("upper", _Integer));
+			ownedOperations.add(operation = op_OrderedSet_OrderedSet_T_union);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("o", _Sequence_OrderedSet_T));
+			ownedOperations = _Sequence_Sequence_T_3.getOwnedOperations();
+			ownedOperations.add(operation = op_Sequence_Sequence_T__lt__gt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_Sequence_Sequence_T__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_Sequence_Sequence_T_append);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _Sequence_T));
+			ownedOperations.add(operation = op_Sequence_Sequence_T_at);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("index", _Integer));
+			ownedOperations.add(operation = op_Sequence_Sequence_T_excluding);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _OclAny));
+			ownedOperations.add(operation = op_Sequence_Sequence_T_first);
+			ownedOperations.add(operation = op_Sequence_Sequence_T_flatten);
+			ownedOperations.add(operation = op_Sequence_Sequence_T_including);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _Sequence_T));
+			ownedOperations.add(operation = op_Sequence_Sequence_T_indexOf);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("obj", _OclAny));
+			ownedOperations.add(operation = op_Sequence_Sequence_T_insertAt);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("index", _Integer));
+			ownedParameters.add(parameter = createParameter("object", _Sequence_T));
+			ownedOperations.add(operation = op_Sequence_Sequence_T_intersection);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("c", _Collection_Sequence_T_1));
+			ownedOperations.add(operation = op_Sequence_Sequence_T_intersection_1);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_Sequence_T_2));
+			ownedOperations.add(operation = op_Sequence_Sequence_T_last);
+			ownedOperations.add(operation = op_Sequence_Sequence_T_prepend);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _Sequence_T));
+			ownedOperations.add(operation = op_Sequence_Sequence_T_reverse);
+			ownedOperations.add(operation = op_Sequence_Sequence_T_selectByKind);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type", _AnyClassifier_Sequence_selectByKind_TT));
+			ownedOperations.add(operation = op_Sequence_Sequence_T_selectByType);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type", _AnyClassifier_Sequence_selectByType_TT));
+			ownedOperations.add(operation = op_Sequence_Sequence_T_subSequence);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("lower", _Integer));
+			ownedParameters.add(parameter = createParameter("upper", _Integer));
+			ownedOperations.add(operation = op_Sequence_Sequence_T_union);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _Sequence_Sequence_T_3));
+			ownedOperations = _Set_Set_T.getOwnedOperations();
+			ownedOperations.add(operation = op_Set_Set_T__sub_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_OclAny));
+			ownedOperations.add(operation = op_Set_Set_T__lt__gt_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_Set_Set_T__eq_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object2", _OclSelf));
+			ownedOperations.add(operation = op_Set_Set_T_excluding);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _OclAny));
+			ownedOperations.add(operation = op_Set_Set_T_flatten);
+			ownedOperations.add(operation = op_Set_Set_T_including);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("object", _Set_T));
+			ownedOperations.add(operation = op_Set_Set_T_intersection);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _Collection_Set_T_1));
+			ownedOperations.add(operation = op_Set_Set_T_selectByKind);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type", _AnyClassifier_Set_selectByKind_TT));
+			ownedOperations.add(operation = op_Set_Set_T_selectByType);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("type", _AnyClassifier_Set_selectByType_TT));
+			ownedOperations.add(operation = op_Set_Set_T_union);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _Collection_Set_T_1));
+			ownedOperations = _UniqueCollection_UniqueCollection_T_2.getOwnedOperations();
+			ownedOperations.add(operation = op_UniqueCollection_UniqueCollection_T__sub_);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_OclAny));
+			ownedOperations.add(operation = op_UniqueCollection_UniqueCollection_T_symmetricDifference);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _UniqueCollection_OclAny));
+			ownedOperations.add(operation = op_UniqueCollection_UniqueCollection_T_union);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("s", _Collection_UniqueCollection_T));
+		}
+			
+		protected final Iteration it_Bag_Bag_T_closure = createIteration("closure", _Set_Bag_T, "org.eclipse.ocl.examples.library.iterator.ClosureIteration", org.eclipse.ocl.examples.library.iterator.ClosureIteration.INSTANCE);
+		protected final Iteration it_Bag_Bag_T_collectNested = createIteration("collectNested", _Bag_Bag_T_4, "org.eclipse.ocl.examples.library.iterator.CollectNestedIteration", org.eclipse.ocl.examples.library.iterator.CollectNestedIteration.INSTANCE);
+		protected final Iteration it_Bag_Bag_T_collect = createIteration("collect", _Bag_Bag_collect_V, "org.eclipse.ocl.examples.library.iterator.CollectIteration", org.eclipse.ocl.examples.library.iterator.CollectIteration.INSTANCE);
+		protected final Iteration it_Bag_Bag_T_reject = createIteration("reject", _Bag_Bag_T_4, "org.eclipse.ocl.examples.library.iterator.RejectIteration", org.eclipse.ocl.examples.library.iterator.RejectIteration.INSTANCE);
+		protected final Iteration it_Bag_Bag_T_select = createIteration("select", _Bag_Bag_T_4, "org.eclipse.ocl.examples.library.iterator.SelectIteration", org.eclipse.ocl.examples.library.iterator.SelectIteration.INSTANCE);
+		protected final Iteration it_Bag_Bag_T_sortedBy = createIteration("sortedBy", _Sequence_Bag_T, "org.eclipse.ocl.examples.library.iterator.SortedByIteration", org.eclipse.ocl.examples.library.iterator.SortedByIteration.INSTANCE);
+		protected final Iteration it_Collection_Collection_T_any = createIteration("any", _Collection_T, "org.eclipse.ocl.examples.library.iterator.AnyIteration", org.eclipse.ocl.examples.library.iterator.AnyIteration.INSTANCE);
+		protected final Iteration it_Collection_Collection_T_collectNested = createIteration("collectNested", _Collection_Collection_T_3, "org.eclipse.ocl.examples.library.iterator.CollectNestedIteration", org.eclipse.ocl.examples.library.iterator.CollectNestedIteration.INSTANCE);
+		protected final Iteration it_Collection_Collection_T_collect = createIteration("collect", _Collection_Collection_collect_V, "org.eclipse.ocl.examples.library.iterator.CollectIteration", org.eclipse.ocl.examples.library.iterator.CollectIteration.INSTANCE);
+		protected final Iteration it_Collection_Collection_T_exists = createIteration("exists", _Boolean, "org.eclipse.ocl.examples.library.iterator.ExistsIteration", org.eclipse.ocl.examples.library.iterator.ExistsIteration.INSTANCE);
+		protected final Iteration it_Collection_Collection_T_exists_1 = createIteration("exists", _Boolean, "org.eclipse.ocl.examples.library.iterator.ExistsIteration", org.eclipse.ocl.examples.library.iterator.ExistsIteration.INSTANCE);
+		protected final Iteration it_Collection_Collection_T_forAll = createIteration("forAll", _Boolean, "org.eclipse.ocl.examples.library.iterator.ForAllIteration", org.eclipse.ocl.examples.library.iterator.ForAllIteration.INSTANCE);
+		protected final Iteration it_Collection_Collection_T_forAll_1 = createIteration("forAll", _Boolean, "org.eclipse.ocl.examples.library.iterator.ForAllIteration", org.eclipse.ocl.examples.library.iterator.ForAllIteration.INSTANCE);
+		protected final Iteration it_Collection_Collection_T_isUnique = createIteration("isUnique", _Boolean, "org.eclipse.ocl.examples.library.iterator.IsUniqueIteration", org.eclipse.ocl.examples.library.iterator.IsUniqueIteration.INSTANCE);
+		protected final Iteration it_Collection_Collection_T_iterate = createIteration("iterate", _Collection_iterate_Tacc, "org.eclipse.ocl.examples.library.iterator.IterateIteration", org.eclipse.ocl.examples.library.iterator.IterateIteration.INSTANCE);
+		protected final Iteration it_Collection_Collection_T_one = createIteration("one", _Boolean, "org.eclipse.ocl.examples.library.iterator.OneIteration", org.eclipse.ocl.examples.library.iterator.OneIteration.INSTANCE);
+		protected final Iteration it_Collection_Collection_T_reject = createIteration("reject", _Collection_Collection_T_3, "org.eclipse.ocl.examples.library.iterator.RejectIteration", org.eclipse.ocl.examples.library.iterator.RejectIteration.INSTANCE);
+		protected final Iteration it_Collection_Collection_T_select = createIteration("select", _Collection_Collection_T_3, "org.eclipse.ocl.examples.library.iterator.SelectIteration", org.eclipse.ocl.examples.library.iterator.SelectIteration.INSTANCE);
+		protected final Iteration it_Collection_Collection_T_sortedBy = createIteration("sortedBy", _Sequence_Collection_T, "org.eclipse.ocl.examples.library.iterator.SortedByIteration", org.eclipse.ocl.examples.library.iterator.SortedByIteration.INSTANCE);
+		protected final Iteration it_OrderedSet_OrderedSet_T_reject = createIteration("reject", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.examples.library.iterator.RejectIteration", org.eclipse.ocl.examples.library.iterator.RejectIteration.INSTANCE);
+		protected final Iteration it_OrderedSet_OrderedSet_T_select = createIteration("select", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.examples.library.iterator.SelectIteration", org.eclipse.ocl.examples.library.iterator.SelectIteration.INSTANCE);
+		protected final Iteration it_OrderedSet_OrderedSet_T_sortedBy = createIteration("sortedBy", _OrderedSet_OrderedSet_T, "org.eclipse.ocl.examples.library.iterator.SortedByIteration", org.eclipse.ocl.examples.library.iterator.SortedByIteration.INSTANCE);
+		protected final Iteration it_Sequence_Sequence_T_closure = createIteration("closure", _OrderedSet_Sequence_T, "org.eclipse.ocl.examples.library.iterator.ClosureIteration", org.eclipse.ocl.examples.library.iterator.ClosureIteration.INSTANCE);
+		protected final Iteration it_Sequence_Sequence_T_collectNested = createIteration("collectNested", _Sequence_Sequence_T_3, "org.eclipse.ocl.examples.library.iterator.CollectNestedIteration", org.eclipse.ocl.examples.library.iterator.CollectNestedIteration.INSTANCE);
+		protected final Iteration it_Sequence_Sequence_T_collect = createIteration("collect", _Sequence_Sequence_collect_V, "org.eclipse.ocl.examples.library.iterator.CollectIteration", org.eclipse.ocl.examples.library.iterator.CollectIteration.INSTANCE);
+		protected final Iteration it_Sequence_Sequence_T_reject = createIteration("reject", _Sequence_Sequence_T_3, "org.eclipse.ocl.examples.library.iterator.RejectIteration", org.eclipse.ocl.examples.library.iterator.RejectIteration.INSTANCE);
+		protected final Iteration it_Sequence_Sequence_T_select = createIteration("select", _Sequence_Sequence_T_3, "org.eclipse.ocl.examples.library.iterator.SelectIteration", org.eclipse.ocl.examples.library.iterator.SelectIteration.INSTANCE);
+		protected final Iteration it_Sequence_Sequence_T_sortedBy = createIteration("sortedBy", _Sequence_Sequence_T_3, "org.eclipse.ocl.examples.library.iterator.SortedByIteration", org.eclipse.ocl.examples.library.iterator.SortedByIteration.INSTANCE);
+		protected final Iteration it_Set_Set_T_reject = createIteration("reject", _Set_Set_T, "org.eclipse.ocl.examples.library.iterator.RejectIteration", org.eclipse.ocl.examples.library.iterator.RejectIteration.INSTANCE);
+		protected final Iteration it_Set_Set_T_select = createIteration("select", _Set_Set_T, "org.eclipse.ocl.examples.library.iterator.SelectIteration", org.eclipse.ocl.examples.library.iterator.SelectIteration.INSTANCE);
+		protected final Iteration it_Set_Set_T_sortedBy = createIteration("sortedBy", _OrderedSet_Set_T, "org.eclipse.ocl.examples.library.iterator.SortedByIteration", org.eclipse.ocl.examples.library.iterator.SortedByIteration.INSTANCE);
+		protected final Iteration it_UniqueCollection_UniqueCollection_T_sortedBy = createIteration("sortedBy", _OrderedSet_UniqueCollection_T, "org.eclipse.ocl.examples.library.iterator.SortedByIteration", org.eclipse.ocl.examples.library.iterator.SortedByIteration.INSTANCE);
+		
+		protected void installIterations() {
+			List<Operation> ownedIterations;
+			List<Parameter> ownedParameters;
+			Iteration iteration;
+			Parameter parameter;
+			ownedIterations = _Bag_Bag_T_4.getOwnedOperations();
+			ownedIterations.add(iteration = it_Bag_Bag_T_closure);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Bag_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Bag_T_5));
+			ownedIterations.add(iteration = it_Bag_Bag_T_collectNested);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Bag_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Bag_T_2));
+			ownedIterations.add(iteration = it_Bag_Bag_T_collect);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Bag_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Bag_T_3));
+			ownedIterations.add(iteration = it_Bag_Bag_T_reject);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Bag_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Bag_T_1));
+			ownedIterations.add(iteration = it_Bag_Bag_T_select);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Bag_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Bag_T));
+			ownedIterations.add(iteration = it_Bag_Bag_T_sortedBy);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Bag_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Bag_T_4));
+			ownedIterations = _Collection_Collection_T_3.getOwnedOperations();
+			ownedIterations.add(iteration = it_Collection_Collection_T_any);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Collection_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T_2));
+			ownedIterations.add(iteration = it_Collection_Collection_T_collectNested);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Collection_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T_8));
+			ownedIterations.add(iteration = it_Collection_Collection_T_collect);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Collection_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T_9));
+			ownedIterations.add(iteration = it_Collection_Collection_T_exists);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("j", _Collection_T));
+			ownedParameters.add(parameter = createParameter("i", _Collection_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T_1));
+			ownedIterations.add(iteration = it_Collection_Collection_T_exists_1);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Collection_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T_7));
+			ownedIterations.add(iteration = it_Collection_Collection_T_forAll);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("j", _Collection_T));
+			ownedParameters.add(parameter = createParameter("i", _Collection_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T_5));
+			ownedIterations.add(iteration = it_Collection_Collection_T_forAll_1);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Collection_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T));
+			ownedIterations.add(iteration = it_Collection_Collection_T_isUnique);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Collection_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T_12));
+			ownedIterations.add(iteration = it_Collection_Collection_T_iterate);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Collection_T));
+			ownedParameters = iteration.getOwnedAccumulators();
+			ownedParameters.add(parameter = createParameter("acc", _Collection_iterate_Tacc));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T_10));
+			ownedIterations.add(iteration = it_Collection_Collection_T_one);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Collection_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T_6));
+			ownedIterations.add(iteration = it_Collection_Collection_T_reject);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Collection_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T_3));
+			ownedIterations.add(iteration = it_Collection_Collection_T_select);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Collection_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T_4));
+			ownedIterations.add(iteration = it_Collection_Collection_T_sortedBy);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Collection_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Collection_T_11));
+			ownedIterations = _OrderedSet_OrderedSet_T.getOwnedOperations();
+			ownedIterations.add(iteration = it_OrderedSet_OrderedSet_T_reject);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _OrderedSet_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_OrderedSet_T));
+			ownedIterations.add(iteration = it_OrderedSet_OrderedSet_T_select);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _OrderedSet_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_OrderedSet_T_1));
+			ownedIterations.add(iteration = it_OrderedSet_OrderedSet_T_sortedBy);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _OrderedSet_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_OrderedSet_T_2));
+			ownedIterations = _Sequence_Sequence_T_3.getOwnedOperations();
+			ownedIterations.add(iteration = it_Sequence_Sequence_T_closure);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Sequence_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Sequence_T_3));
+			ownedIterations.add(iteration = it_Sequence_Sequence_T_collectNested);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Sequence_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Sequence_T_4));
+			ownedIterations.add(iteration = it_Sequence_Sequence_T_collect);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Sequence_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Sequence_T_5));
+			ownedIterations.add(iteration = it_Sequence_Sequence_T_reject);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Sequence_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Sequence_T_1));
+			ownedIterations.add(iteration = it_Sequence_Sequence_T_select);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Sequence_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Sequence_T));
+			ownedIterations.add(iteration = it_Sequence_Sequence_T_sortedBy);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Sequence_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Sequence_T_2));
+			ownedIterations = _Set_Set_T.getOwnedOperations();
+			ownedIterations.add(iteration = it_Set_Set_T_reject);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Set_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Set_T_1));
+			ownedIterations.add(iteration = it_Set_Set_T_select);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Set_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Set_T));
+			ownedIterations.add(iteration = it_Set_Set_T_sortedBy);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _Set_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_Set_T_2));
+			ownedIterations = _UniqueCollection_UniqueCollection_T_2.getOwnedOperations();
+			ownedIterations.add(iteration = it_UniqueCollection_UniqueCollection_T_sortedBy);
+			ownedParameters = iteration.getOwnedIterators();
+			ownedParameters.add(parameter = createParameter("i", _UniqueCollection_T));
+			ownedParameters = iteration.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("body", _Lambda_UniqueCollection_T));
+		}
+			
+		protected final Property pr_CollectionClassifier_elementType = createProperty("elementType", _CollectionClassifier_E);
+		protected final Property pr_EnumerationClassifier_ownedLiteral = createProperty("ownedLiteral", _OrderedSet_EnumerationLiteral);
+		protected final Property pr_OclInvalid_oclBadProperty = createProperty("oclBadProperty", _OclInvalid);
+		
+		protected void installProperties() {
+			List<Property> ownedProperties;
+			Property property;
+			ownedProperties = _CollectionClassifier.getOwnedAttributes();
+			ownedProperties.add(property = pr_CollectionClassifier_elementType);
+			property.setIsResolveProxies(true);
+			property.setImplementationClass("org.eclipse.ocl.examples.library.collection.CollectionClassifierElementTypeProperty");
+			property.setImplementation(org.eclipse.ocl.examples.library.collection.CollectionClassifierElementTypeProperty.INSTANCE);
+			ownedProperties = _EnumerationClassifier.getOwnedAttributes();
+			ownedProperties.add(property = pr_EnumerationClassifier_ownedLiteral);
+			property.setIsResolveProxies(true);
+			property.setImplementationClass("org.eclipse.ocl.examples.library.enumeration.EnumerationClassifierOwnedLiteralProperty");
+			property.setImplementation(org.eclipse.ocl.examples.library.enumeration.EnumerationClassifierOwnedLiteralProperty.INSTANCE);
+			ownedProperties = _OclInvalid.getOwnedAttributes();
+			ownedProperties.add(property = pr_OclInvalid_oclBadProperty);
+			property.setIsResolveProxies(true);
+		}
+		protected final TypeTemplateParameter tp_UnlimitedNatural_oclAsType = createTypeTemplateParameter(_UnlimitedNatural_oclAsType_TT);
+		protected final TypeTemplateParameter tp_AnyClassifier = createTypeTemplateParameter(_AnyClassifier_T);
+		protected final TypeTemplateParameter tp_Bag_Bag_T_collectNested = createTypeTemplateParameter(_Bag_collectNested_V);
+		protected final TypeTemplateParameter tp_Bag_Bag_T_collect = createTypeTemplateParameter(_Bag_collect_V);
+		protected final TypeTemplateParameter tp_Bag_Bag_T_flatten = createTypeTemplateParameter(_Bag_flatten_T2);
+		protected final TypeTemplateParameter tp_Bag_Bag_T_selectByKind = createTypeTemplateParameter(_Bag_selectByKind_TT);
+		protected final TypeTemplateParameter tp_Bag_Bag_T_selectByType = createTypeTemplateParameter(_Bag_selectByType_TT);
+		protected final TypeTemplateParameter tp_Bag_Bag_T = createTypeTemplateParameter(_Bag_T);
+		protected final TypeTemplateParameter tp_ClassClassifier = createTypeTemplateParameter(_ClassClassifier_T);
+		protected final TypeTemplateParameter tp_CollectionClassifier = createTypeTemplateParameter(_CollectionClassifier_E);
+		protected final TypeTemplateParameter tp_CollectionClassifier_1 = createTypeTemplateParameter(_CollectionClassifier_T);
+		protected final TypeTemplateParameter tp_Collection_Collection_T_collectNested = createTypeTemplateParameter(_Collection_collectNested_V);
+		protected final TypeTemplateParameter tp_Collection_Collection_T_collect = createTypeTemplateParameter(_Collection_collect_V);
+		protected final TypeTemplateParameter tp_Collection_Collection_T_excludesAll = createTypeTemplateParameter(_Collection_excludesAll_T2);
+		protected final TypeTemplateParameter tp_Collection_Collection_T_flatten = createTypeTemplateParameter(_Collection_flatten_T2);
+		protected final TypeTemplateParameter tp_Collection_Collection_T_includesAll = createTypeTemplateParameter(_Collection_includesAll_T2);
+		protected final TypeTemplateParameter tp_Collection_Collection_T_iterate = createTypeTemplateParameter(_Collection_iterate_Tacc);
+		protected final TypeTemplateParameter tp_Collection_Collection_T_product = createTypeTemplateParameter(_Collection_product_T2);
+		protected final TypeTemplateParameter tp_Collection_Collection_T_selectByKind = createTypeTemplateParameter(_Collection_selectByKind_TT);
+		protected final TypeTemplateParameter tp_Collection_Collection_T_selectByType = createTypeTemplateParameter(_Collection_selectByType_TT);
+		protected final TypeTemplateParameter tp_Collection_Collection_T = createTypeTemplateParameter(_Collection_T);
+		protected final TypeTemplateParameter tp_EnumerationClassifier = createTypeTemplateParameter(_EnumerationClassifier_T);
+		protected final TypeTemplateParameter tp_OclAny_oclAsType = createTypeTemplateParameter(_OclAny_oclAsType_TT);
+		protected final TypeTemplateParameter tp_OclAny_oclIsKindOf = createTypeTemplateParameter(_OclAny_oclIsKindOf_T);
+		protected final TypeTemplateParameter tp_OclAny_oclIsTypeOf = createTypeTemplateParameter(_OclAny_oclIsTypeOf_T);
+		protected final TypeTemplateParameter tp_OrderedSet_OrderedSet_T_flatten = createTypeTemplateParameter(_OrderedSet_flatten_T2);
+		protected final TypeTemplateParameter tp_OrderedSet_OrderedSet_T_selectByKind = createTypeTemplateParameter(_OrderedSet_selectByKind_TT);
+		protected final TypeTemplateParameter tp_OrderedSet_OrderedSet_T_selectByType = createTypeTemplateParameter(_OrderedSet_selectByType_TT);
+		protected final TypeTemplateParameter tp_OrderedSet_OrderedSet_T = createTypeTemplateParameter(_OrderedSet_T);
+		protected final TypeTemplateParameter tp_Sequence_Sequence_T_collectNested = createTypeTemplateParameter(_Sequence_collectNested_V);
+		protected final TypeTemplateParameter tp_Sequence_Sequence_T_collect = createTypeTemplateParameter(_Sequence_collect_V);
+		protected final TypeTemplateParameter tp_Sequence_Sequence_T_flatten = createTypeTemplateParameter(_Sequence_flatten_T2);
+		protected final TypeTemplateParameter tp_Sequence_Sequence_T_selectByKind = createTypeTemplateParameter(_Sequence_selectByKind_TT);
+		protected final TypeTemplateParameter tp_Sequence_Sequence_T_selectByType = createTypeTemplateParameter(_Sequence_selectByType_TT);
+		protected final TypeTemplateParameter tp_Sequence_Sequence_T = createTypeTemplateParameter(_Sequence_T);
+		protected final TypeTemplateParameter tp_Set_Set_T_flatten = createTypeTemplateParameter(_Set_flatten_T2);
+		protected final TypeTemplateParameter tp_Set_Set_T_selectByKind = createTypeTemplateParameter(_Set_selectByKind_TT);
+		protected final TypeTemplateParameter tp_Set_Set_T_selectByType = createTypeTemplateParameter(_Set_selectByType_TT);
+		protected final TypeTemplateParameter tp_Set_Set_T = createTypeTemplateParameter(_Set_T);
+		protected final TypeTemplateParameter tp_UniqueCollection_UniqueCollection_T = createTypeTemplateParameter(_UniqueCollection_T);
+		
+		protected final TemplateSignature ts_UnlimitedNatural_oclAsType = createTemplateSignature(op_UnlimitedNatural_oclAsType, tp_UnlimitedNatural_oclAsType);
+		protected final TemplateSignature ts_AnyClassifier = createTemplateSignature(_AnyClassifier, tp_AnyClassifier);
+		protected final TemplateSignature ts_Bag_Bag_T = createTemplateSignature(_Bag_Bag_T_4, tp_Bag_Bag_T);
+		protected final TemplateSignature ts_Bag_Bag_T_collectNested = createTemplateSignature(it_Bag_Bag_T_collectNested, tp_Bag_Bag_T_collectNested);
+		protected final TemplateSignature ts_Bag_Bag_T_collect = createTemplateSignature(it_Bag_Bag_T_collect, tp_Bag_Bag_T_collect);
+		protected final TemplateSignature ts_Bag_Bag_T_flatten = createTemplateSignature(op_Bag_Bag_T_flatten, tp_Bag_Bag_T_flatten);
+		protected final TemplateSignature ts_Bag_Bag_T_selectByKind = createTemplateSignature(op_Bag_Bag_T_selectByKind, tp_Bag_Bag_T_selectByKind);
+		protected final TemplateSignature ts_Bag_Bag_T_selectByType = createTemplateSignature(op_Bag_Bag_T_selectByType, tp_Bag_Bag_T_selectByType);
+		protected final TemplateSignature ts_ClassClassifier = createTemplateSignature(_ClassClassifier, tp_ClassClassifier);
+		protected final TemplateSignature ts_CollectionClassifier = createTemplateSignature(_CollectionClassifier, tp_CollectionClassifier_1, tp_CollectionClassifier);
+		protected final TemplateSignature ts_Collection_Collection_T = createTemplateSignature(_Collection_Collection_T_3, tp_Collection_Collection_T);
+		protected final TemplateSignature ts_Collection_Collection_T_collectNested = createTemplateSignature(it_Collection_Collection_T_collectNested, tp_Collection_Collection_T_collectNested);
+		protected final TemplateSignature ts_Collection_Collection_T_collect = createTemplateSignature(it_Collection_Collection_T_collect, tp_Collection_Collection_T_collect);
+		protected final TemplateSignature ts_Collection_Collection_T_excludesAll = createTemplateSignature(op_Collection_Collection_T_excludesAll, tp_Collection_Collection_T_excludesAll);
+		protected final TemplateSignature ts_Collection_Collection_T_flatten = createTemplateSignature(op_Collection_Collection_T_flatten, tp_Collection_Collection_T_flatten);
+		protected final TemplateSignature ts_Collection_Collection_T_includesAll = createTemplateSignature(op_Collection_Collection_T_includesAll, tp_Collection_Collection_T_includesAll);
+		protected final TemplateSignature ts_Collection_Collection_T_iterate = createTemplateSignature(it_Collection_Collection_T_iterate, tp_Collection_Collection_T_iterate);
+		protected final TemplateSignature ts_Collection_Collection_T_product = createTemplateSignature(op_Collection_Collection_T_product, tp_Collection_Collection_T_product);
+		protected final TemplateSignature ts_Collection_Collection_T_selectByKind = createTemplateSignature(op_Collection_Collection_T_selectByKind, tp_Collection_Collection_T_selectByKind);
+		protected final TemplateSignature ts_Collection_Collection_T_selectByType = createTemplateSignature(op_Collection_Collection_T_selectByType, tp_Collection_Collection_T_selectByType);
+		protected final TemplateSignature ts_EnumerationClassifier = createTemplateSignature(_EnumerationClassifier, tp_EnumerationClassifier);
+		protected final TemplateSignature ts_OclAny_oclAsType = createTemplateSignature(op_OclAny_oclAsType, tp_OclAny_oclAsType);
+		protected final TemplateSignature ts_OclAny_oclIsKindOf = createTemplateSignature(op_OclAny_oclIsKindOf, tp_OclAny_oclIsKindOf);
+		protected final TemplateSignature ts_OclAny_oclIsTypeOf = createTemplateSignature(op_OclAny_oclIsTypeOf, tp_OclAny_oclIsTypeOf);
+		protected final TemplateSignature ts_OrderedSet_OrderedSet_T = createTemplateSignature(_OrderedSet_OrderedSet_T, tp_OrderedSet_OrderedSet_T);
+		protected final TemplateSignature ts_OrderedSet_OrderedSet_T_flatten = createTemplateSignature(op_OrderedSet_OrderedSet_T_flatten, tp_OrderedSet_OrderedSet_T_flatten);
+		protected final TemplateSignature ts_OrderedSet_OrderedSet_T_selectByKind = createTemplateSignature(op_OrderedSet_OrderedSet_T_selectByKind, tp_OrderedSet_OrderedSet_T_selectByKind);
+		protected final TemplateSignature ts_OrderedSet_OrderedSet_T_selectByType = createTemplateSignature(op_OrderedSet_OrderedSet_T_selectByType, tp_OrderedSet_OrderedSet_T_selectByType);
+		protected final TemplateSignature ts_Sequence_Sequence_T = createTemplateSignature(_Sequence_Sequence_T_3, tp_Sequence_Sequence_T);
+		protected final TemplateSignature ts_Sequence_Sequence_T_collectNested = createTemplateSignature(it_Sequence_Sequence_T_collectNested, tp_Sequence_Sequence_T_collectNested);
+		protected final TemplateSignature ts_Sequence_Sequence_T_collect = createTemplateSignature(it_Sequence_Sequence_T_collect, tp_Sequence_Sequence_T_collect);
+		protected final TemplateSignature ts_Sequence_Sequence_T_flatten = createTemplateSignature(op_Sequence_Sequence_T_flatten, tp_Sequence_Sequence_T_flatten);
+		protected final TemplateSignature ts_Sequence_Sequence_T_selectByKind = createTemplateSignature(op_Sequence_Sequence_T_selectByKind, tp_Sequence_Sequence_T_selectByKind);
+		protected final TemplateSignature ts_Sequence_Sequence_T_selectByType = createTemplateSignature(op_Sequence_Sequence_T_selectByType, tp_Sequence_Sequence_T_selectByType);
+		protected final TemplateSignature ts_Set_Set_T = createTemplateSignature(_Set_Set_T, tp_Set_Set_T);
+		protected final TemplateSignature ts_Set_Set_T_flatten = createTemplateSignature(op_Set_Set_T_flatten, tp_Set_Set_T_flatten);
+		protected final TemplateSignature ts_Set_Set_T_selectByKind = createTemplateSignature(op_Set_Set_T_selectByKind, tp_Set_Set_T_selectByKind);
+		protected final TemplateSignature ts_Set_Set_T_selectByType = createTemplateSignature(op_Set_Set_T_selectByType, tp_Set_Set_T_selectByType);
+		protected final TemplateSignature ts_UniqueCollection_UniqueCollection_T = createTemplateSignature(_UniqueCollection_UniqueCollection_T_2, tp_UniqueCollection_UniqueCollection_T);
+		
+		protected void installTemplateSignatures() {
+		}
+		
+		protected void installTemplateBindings() {
+			_AnyClassifier_UnlimitedNatural_oclAsType_TT.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _UnlimitedNatural_oclAsType_TT)));
+			_AnyClassifier_Bag_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _Bag_selectByKind_TT)));
+			_AnyClassifier_Bag_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _Bag_selectByType_TT)));
+			_AnyClassifier_ClassClassifier_T.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _ClassClassifier_T)));
+			_AnyClassifier_CollectionClassifier_T.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _CollectionClassifier_T)));
+			_AnyClassifier_Collection_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _Collection_selectByKind_TT)));
+			_AnyClassifier_Collection_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _Collection_selectByType_TT)));
+			_AnyClassifier_EnumerationClassifier_T.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _EnumerationClassifier_T)));
+			_AnyClassifier_OclAny_oclAsType_TT.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _OclAny_oclAsType_TT)));
+			_AnyClassifier_OclAny_oclIsKindOf_T.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _OclAny_oclIsKindOf_T)));
+			_AnyClassifier_OclAny_oclIsTypeOf_T.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _OclAny_oclIsTypeOf_T)));
+			_AnyClassifier_OclInvalid_1.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _OclInvalid)));
+			_AnyClassifier_OclInvalid.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _OclInvalid)));
+			_AnyClassifier_OclSelf.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _OclSelf)));
+			_AnyClassifier_OclVoid.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _OclVoid)));
+			_AnyClassifier_OrderedSet_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _OrderedSet_selectByKind_TT)));
+			_AnyClassifier_OrderedSet_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _OrderedSet_selectByType_TT)));
+			_AnyClassifier_Sequence_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _Sequence_selectByKind_TT)));
+			_AnyClassifier_Sequence_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _Sequence_selectByType_TT)));
+			_AnyClassifier_Set_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _Set_selectByKind_TT)));
+			_AnyClassifier_Set_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_AnyClassifier,
+				createTemplateParameterSubstitution(tp_AnyClassifier, _Set_selectByType_TT)));
+			_Bag_Tuple.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Tuple_1)));
+			_Bag_Tuple_1.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Tuple_1)));
+			_Bag_Bag_collect_V.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Bag_collect_V)));
+			_Bag_Bag_flatten_T2.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Bag_flatten_T2)));
+			_Bag_Bag_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Bag_selectByKind_TT)));
+			_Bag_Bag_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Bag_selectByType_TT)));
+			_Bag_Bag_T.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Bag_T)));
+			_Bag_Bag_T_1.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Bag_T)));
+			_Bag_Bag_T_2.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Bag_T)));
+			_Bag_Bag_T_3.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Bag_T)));
+			_Bag_Collection_T.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Collection_T)));
+			_Bag_OclElement.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _OclElement)));
+			_Bag_OclSelf.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _OclSelf)));
+			_Bag_OclSelf_1.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _OclSelf)));
+			_Bag_OclSelf_2.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _OclSelf)));
+			_Bag_OclSelf_3.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _OclSelf)));
+			_Bag_OclSelf_4.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _OclSelf)));
+			_Bag_OclSelf_5.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _OclSelf)));
+			_Bag_Sequence_T.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Sequence_T)));
+			_Bag_Set_flatten_T2.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Set_flatten_T2)));
+			_Bag_Set_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Set_selectByKind_TT)));
+			_Bag_Set_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Set_selectByType_TT)));
+			_Bag_Set_T.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _Set_T)));
+			_Bag_UniqueCollection_T.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _UniqueCollection_T)));
+			_Bag_UniqueCollection_T_1.getTemplateBindings().add(createTemplateBinding(ts_Bag_Bag_T,
+				createTemplateParameterSubstitution(tp_Bag_Bag_T, _UniqueCollection_T)));
+			_ClassClassifier_OclInvalid.getTemplateBindings().add(createTemplateBinding(ts_ClassClassifier,
+				createTemplateParameterSubstitution(tp_ClassClassifier, _OclInvalid)));
+			_ClassClassifier_OclSelf.getTemplateBindings().add(createTemplateBinding(ts_ClassClassifier,
+				createTemplateParameterSubstitution(tp_ClassClassifier, _OclSelf)));
+			_ClassClassifier_OclVoid.getTemplateBindings().add(createTemplateBinding(ts_ClassClassifier,
+				createTemplateParameterSubstitution(tp_ClassClassifier, _OclVoid)));
+			_CollectionClassifier_OclSelf_Collection_T.getTemplateBindings().add(createTemplateBinding(ts_CollectionClassifier,
+				createTemplateParameterSubstitution(tp_CollectionClassifier_1, _OclSelf),
+				createTemplateParameterSubstitution(tp_CollectionClassifier, _Collection_T)));
+			_Collection_Integer.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Integer)));
+			_Collection_String.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _String)));
+			_Collection_Tuple.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Tuple_2)));
+			_Collection_Tuple_1.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Tuple_2)));
+			_Collection_Bag_collect_V.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Bag_collect_V)));
+			_Collection_Bag_flatten_T2.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Bag_flatten_T2)));
+			_Collection_Bag_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Bag_selectByKind_TT)));
+			_Collection_Bag_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Bag_selectByType_TT)));
+			_Collection_Bag_T.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Bag_T)));
+			_Collection_Bag_T_1.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Bag_T)));
+			_Collection_Bag_T_2.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Bag_T)));
+			_Collection_Collection_collect_V.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Collection_collect_V)));
+			_Collection_Collection_excludesAll_T2.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Collection_excludesAll_T2)));
+			_Collection_Collection_flatten_T2.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Collection_flatten_T2)));
+			_Collection_Collection_includesAll_T2.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Collection_includesAll_T2)));
+			_Collection_Collection_product_T2.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Collection_product_T2)));
+			_Collection_Collection_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Collection_selectByKind_TT)));
+			_Collection_Collection_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Collection_selectByType_TT)));
+			_Collection_Collection_T.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Collection_T)));
+			_Collection_Collection_T_1.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Collection_T)));
+			_Collection_Collection_T_2.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Collection_T)));
+			_Collection_EnumerationLiteral.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _EnumerationLiteral)));
+			_Collection_OclAny.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _OclAny)));
+			_Collection_OclAny_1.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _OclAny)));
+			_Collection_OclAny_2.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _OclAny)));
+			_Collection_OclAny_3.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _OclAny)));
+			_Collection_OclElement.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _OclElement)));
+			_Collection_OclSelf.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _OclSelf)));
+			_Collection_OrderedSet_flatten_T2.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _OrderedSet_flatten_T2)));
+			_Collection_OrderedSet_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _OrderedSet_selectByKind_TT)));
+			_Collection_OrderedSet_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _OrderedSet_selectByType_TT)));
+			_Collection_OrderedSet_T.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _OrderedSet_T)));
+			_Collection_OrderedSet_T_1.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _OrderedSet_T)));
+			_Collection_Sequence_collect_V.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Sequence_collect_V)));
+			_Collection_Sequence_flatten_T2.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Sequence_flatten_T2)));
+			_Collection_Sequence_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Sequence_selectByKind_TT)));
+			_Collection_Sequence_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Sequence_selectByType_TT)));
+			_Collection_Sequence_T.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Sequence_T)));
+			_Collection_Sequence_T_1.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Sequence_T)));
+			_Collection_Set_flatten_T2.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Set_flatten_T2)));
+			_Collection_Set_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Set_selectByKind_TT)));
+			_Collection_Set_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Set_selectByType_TT)));
+			_Collection_Set_T.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Set_T)));
+			_Collection_Set_T_1.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _Set_T)));
+			_Collection_UniqueCollection_T.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _UniqueCollection_T)));
+			_Collection_UniqueCollection_T_1.getTemplateBindings().add(createTemplateBinding(ts_Collection_Collection_T,
+				createTemplateParameterSubstitution(tp_Collection_Collection_T, _UniqueCollection_T)));
+			_EnumerationClassifier_OclSelf.getTemplateBindings().add(createTemplateBinding(ts_EnumerationClassifier,
+				createTemplateParameterSubstitution(tp_EnumerationClassifier, _OclSelf)));
+			_OrderedSet_Collection_T.getTemplateBindings().add(createTemplateBinding(ts_OrderedSet_OrderedSet_T,
+				createTemplateParameterSubstitution(tp_OrderedSet_OrderedSet_T, _Collection_T)));
+			_OrderedSet_EnumerationLiteral.getTemplateBindings().add(createTemplateBinding(ts_OrderedSet_OrderedSet_T,
+				createTemplateParameterSubstitution(tp_OrderedSet_OrderedSet_T, _EnumerationLiteral)));
+			_OrderedSet_OrderedSet_flatten_T2.getTemplateBindings().add(createTemplateBinding(ts_OrderedSet_OrderedSet_T,
+				createTemplateParameterSubstitution(tp_OrderedSet_OrderedSet_T, _OrderedSet_flatten_T2)));
+			_OrderedSet_OrderedSet_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_OrderedSet_OrderedSet_T,
+				createTemplateParameterSubstitution(tp_OrderedSet_OrderedSet_T, _OrderedSet_selectByKind_TT)));
+			_OrderedSet_OrderedSet_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_OrderedSet_OrderedSet_T,
+				createTemplateParameterSubstitution(tp_OrderedSet_OrderedSet_T, _OrderedSet_selectByType_TT)));
+			_OrderedSet_Sequence_T.getTemplateBindings().add(createTemplateBinding(ts_OrderedSet_OrderedSet_T,
+				createTemplateParameterSubstitution(tp_OrderedSet_OrderedSet_T, _Sequence_T)));
+			_OrderedSet_Set_T.getTemplateBindings().add(createTemplateBinding(ts_OrderedSet_OrderedSet_T,
+				createTemplateParameterSubstitution(tp_OrderedSet_OrderedSet_T, _Set_T)));
+			_OrderedSet_UniqueCollection_T.getTemplateBindings().add(createTemplateBinding(ts_OrderedSet_OrderedSet_T,
+				createTemplateParameterSubstitution(tp_OrderedSet_OrderedSet_T, _UniqueCollection_T)));
+			_Sequence_Integer.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _Integer)));
+			_Sequence_String.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _String)));
+			_Sequence_Bag_T.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _Bag_T)));
+			_Sequence_Collection_T.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _Collection_T)));
+			_Sequence_EnumerationLiteral.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _EnumerationLiteral)));
+			_Sequence_OrderedSet_flatten_T2.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _OrderedSet_flatten_T2)));
+			_Sequence_OrderedSet_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _OrderedSet_selectByKind_TT)));
+			_Sequence_OrderedSet_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _OrderedSet_selectByType_TT)));
+			_Sequence_OrderedSet_T.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _OrderedSet_T)));
+			_Sequence_Sequence_collect_V.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _Sequence_collect_V)));
+			_Sequence_Sequence_flatten_T2.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _Sequence_flatten_T2)));
+			_Sequence_Sequence_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _Sequence_selectByKind_TT)));
+			_Sequence_Sequence_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _Sequence_selectByType_TT)));
+			_Sequence_Sequence_T.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _Sequence_T)));
+			_Sequence_Sequence_T_1.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _Sequence_T)));
+			_Sequence_Sequence_T_2.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _Sequence_T)));
+			_Sequence_Set_T.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _Set_T)));
+			_Sequence_UniqueCollection_T.getTemplateBindings().add(createTemplateBinding(ts_Sequence_Sequence_T,
+				createTemplateParameterSubstitution(tp_Sequence_Sequence_T, _UniqueCollection_T)));
+			_Set_Tuple.getTemplateBindings().add(createTemplateBinding(ts_Set_Set_T,
+				createTemplateParameterSubstitution(tp_Set_Set_T, _Tuple_1)));
+			_Set_Bag_T.getTemplateBindings().add(createTemplateBinding(ts_Set_Set_T,
+				createTemplateParameterSubstitution(tp_Set_Set_T, _Bag_T)));
+			_Set_Collection_T.getTemplateBindings().add(createTemplateBinding(ts_Set_Set_T,
+				createTemplateParameterSubstitution(tp_Set_Set_T, _Collection_T)));
+			_Set_OclElement.getTemplateBindings().add(createTemplateBinding(ts_Set_Set_T,
+				createTemplateParameterSubstitution(tp_Set_Set_T, _OclElement)));
+			_Set_OclSelf.getTemplateBindings().add(createTemplateBinding(ts_Set_Set_T,
+				createTemplateParameterSubstitution(tp_Set_Set_T, _OclSelf)));
+			_Set_Set_flatten_T2.getTemplateBindings().add(createTemplateBinding(ts_Set_Set_T,
+				createTemplateParameterSubstitution(tp_Set_Set_T, _Set_flatten_T2)));
+			_Set_Set_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_Set_Set_T,
+				createTemplateParameterSubstitution(tp_Set_Set_T, _Set_selectByKind_TT)));
+			_Set_Set_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_Set_Set_T,
+				createTemplateParameterSubstitution(tp_Set_Set_T, _Set_selectByType_TT)));
+			_Set_UniqueCollection_T.getTemplateBindings().add(createTemplateBinding(ts_Set_Set_T,
+				createTemplateParameterSubstitution(tp_Set_Set_T, _UniqueCollection_T)));
+			_UniqueCollection_Tuple.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _Tuple_1)));
+			_UniqueCollection_Tuple_1.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _Tuple_1)));
+			_UniqueCollection_Bag_T.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _Bag_T)));
+			_UniqueCollection_Bag_T_1.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _Bag_T)));
+			_UniqueCollection_Bag_T_2.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _Bag_T)));
+			_UniqueCollection_Bag_T_3.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _Bag_T)));
+			_UniqueCollection_Collection_T.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _Collection_T)));
+			_UniqueCollection_EnumerationLiteral.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _EnumerationLiteral)));
+			_UniqueCollection_OclAny.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _OclAny)));
+			_UniqueCollection_OclElement.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _OclElement)));
+			_UniqueCollection_OclSelf.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _OclSelf)));
+			_UniqueCollection_OclSelf_1.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _OclSelf)));
+			_UniqueCollection_OclSelf_2.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _OclSelf)));
+			_UniqueCollection_OclSelf_3.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _OclSelf)));
+			_UniqueCollection_OclSelf_4.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _OclSelf)));
+			_UniqueCollection_OclSelf_5.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _OclSelf)));
+			_UniqueCollection_OrderedSet_flatten_T2.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _OrderedSet_flatten_T2)));
+			_UniqueCollection_OrderedSet_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _OrderedSet_selectByKind_TT)));
+			_UniqueCollection_OrderedSet_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _OrderedSet_selectByType_TT)));
+			_UniqueCollection_OrderedSet_T.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _OrderedSet_T)));
+			_UniqueCollection_Sequence_T.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _Sequence_T)));
+			_UniqueCollection_Sequence_T_1.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _Sequence_T)));
+			_UniqueCollection_Sequence_T_2.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _Sequence_T)));
+			_UniqueCollection_Set_flatten_T2.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _Set_flatten_T2)));
+			_UniqueCollection_Set_selectByKind_TT.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _Set_selectByKind_TT)));
+			_UniqueCollection_Set_selectByType_TT.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _Set_selectByType_TT)));
+			_UniqueCollection_Set_T.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _Set_T)));
+			_UniqueCollection_UniqueCollection_T.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _UniqueCollection_T)));
+			_UniqueCollection_UniqueCollection_T_1.getTemplateBindings().add(createTemplateBinding(ts_UniqueCollection_UniqueCollection_T,
+				createTemplateParameterSubstitution(tp_UniqueCollection_UniqueCollection_T, _UniqueCollection_T)));
+		}
+		
+		protected void installPrecedences() {
+			final Precedence prec_ADDITIVE = createPrecedence("ADDITIVE", AssociativityKind.LEFT);
+			final Precedence prec_AND = createPrecedence("AND", AssociativityKind.LEFT);
+			final Precedence prec_EQUALITY = createPrecedence("EQUALITY", AssociativityKind.LEFT);
+			final Precedence prec_IMPLIES = createPrecedence("IMPLIES", AssociativityKind.LEFT);
+			final Precedence prec_MULTIPLICATIVE = createPrecedence("MULTIPLICATIVE", AssociativityKind.LEFT);
+			final Precedence prec_NAVIGATION = createPrecedence("NAVIGATION", AssociativityKind.LEFT);
+			final Precedence prec_OR = createPrecedence("OR", AssociativityKind.LEFT);
+			final Precedence prec_RELATIONAL = createPrecedence("RELATIONAL", AssociativityKind.LEFT);
+			final Precedence prec_UNARY = createPrecedence("UNARY", AssociativityKind.LEFT);
+			final Precedence prec_XOR = createPrecedence("XOR", AssociativityKind.LEFT);
+		
+			final List<Precedence> ownedPrecedences = library.getOwnedPrecedences();
+			ownedPrecedences.add(prec_NAVIGATION);
+			ownedPrecedences.add(prec_UNARY);
+			ownedPrecedences.add(prec_MULTIPLICATIVE);
+			ownedPrecedences.add(prec_ADDITIVE);
+			ownedPrecedences.add(prec_RELATIONAL);
+			ownedPrecedences.add(prec_EQUALITY);
+			ownedPrecedences.add(prec_AND);
+			ownedPrecedences.add(prec_OR);
+			ownedPrecedences.add(prec_XOR);
+			ownedPrecedences.add(prec_IMPLIES);
+		
+			op_Boolean__lt__gt_.setPrecedence(prec_EQUALITY);
+			op_Boolean__eq_.setPrecedence(prec_EQUALITY);
+			op_Boolean_and.setPrecedence(prec_AND);
+			op_Boolean_implies.setPrecedence(prec_IMPLIES);
+			op_Boolean_not.setPrecedence(prec_UNARY);
+			op_Boolean_or.setPrecedence(prec_OR);
+			op_Boolean_xor.setPrecedence(prec_XOR);
+			op_Integer__mul_.setPrecedence(prec_MULTIPLICATIVE);
+			op_Integer__add_.setPrecedence(prec_ADDITIVE);
+			op_Integer__sub_.setPrecedence(prec_UNARY);
+			op_Integer__sub__1.setPrecedence(prec_ADDITIVE);
+			op_Integer__div_.setPrecedence(prec_MULTIPLICATIVE);
+			op_Real__mul_.setPrecedence(prec_MULTIPLICATIVE);
+			op_Real__add_.setPrecedence(prec_ADDITIVE);
+			op_Real__sub_.setPrecedence(prec_UNARY);
+			op_Real__sub__1.setPrecedence(prec_ADDITIVE);
+			op_Real__div_.setPrecedence(prec_MULTIPLICATIVE);
+			op_Real__lt_.setPrecedence(prec_RELATIONAL);
+			op_Real__lt__eq_.setPrecedence(prec_RELATIONAL);
+			op_Real__lt__gt_.setPrecedence(prec_EQUALITY);
+			op_Real__eq_.setPrecedence(prec_EQUALITY);
+			op_Real__gt_.setPrecedence(prec_RELATIONAL);
+			op_Real__gt__eq_.setPrecedence(prec_RELATIONAL);
+			op_String__add_.setPrecedence(prec_ADDITIVE);
+			op_String__lt_.setPrecedence(prec_RELATIONAL);
+			op_String__lt__eq_.setPrecedence(prec_RELATIONAL);
+			op_String__lt__gt_.setPrecedence(prec_EQUALITY);
+			op_String__eq_.setPrecedence(prec_EQUALITY);
+			op_String__gt_.setPrecedence(prec_RELATIONAL);
+			op_String__gt__eq_.setPrecedence(prec_RELATIONAL);
+			op_Bag_Bag_T__lt__gt_.setPrecedence(prec_EQUALITY);
+			op_Bag_Bag_T__eq_.setPrecedence(prec_EQUALITY);
+			op_Collection_Collection_T__lt__gt_.setPrecedence(prec_EQUALITY);
+			op_Collection_Collection_T__eq_.setPrecedence(prec_EQUALITY);
+			op_OclAny__lt__gt_.setPrecedence(prec_EQUALITY);
+			op_OclAny__eq_.setPrecedence(prec_EQUALITY);
+			op_OclInvalid__lt__gt_.setPrecedence(prec_EQUALITY);
+			op_OclInvalid__eq_.setPrecedence(prec_EQUALITY);
+			op_OclTuple__lt__gt_.setPrecedence(prec_EQUALITY);
+			op_OclTuple__eq_.setPrecedence(prec_EQUALITY);
+			op_OclVoid__lt__gt_.setPrecedence(prec_EQUALITY);
+			op_OclVoid__eq_.setPrecedence(prec_EQUALITY);
+			op_OclVoid_and.setPrecedence(prec_AND);
+			op_OclVoid_implies.setPrecedence(prec_IMPLIES);
+			op_OclVoid_or.setPrecedence(prec_OR);
+			op_OrderedSet_OrderedSet_T__sub_.setPrecedence(prec_ADDITIVE);
+			op_OrderedSet_OrderedSet_T__lt__gt_.setPrecedence(prec_EQUALITY);
+			op_OrderedSet_OrderedSet_T__eq_.setPrecedence(prec_EQUALITY);
+			op_Sequence_Sequence_T__lt__gt_.setPrecedence(prec_EQUALITY);
+			op_Sequence_Sequence_T__eq_.setPrecedence(prec_EQUALITY);
+			op_Set_Set_T__sub_.setPrecedence(prec_ADDITIVE);
+			op_Set_Set_T__lt__gt_.setPrecedence(prec_EQUALITY);
+			op_Set_Set_T__eq_.setPrecedence(prec_EQUALITY);
+			op_UniqueCollection_UniqueCollection_T__sub_.setPrecedence(prec_ADDITIVE);
+		}
+		
+		protected void installComments() {
+			installComment(_Boolean, "The standard type Boolean represents the common true/false values.\nBoolean is itself an instance of the metatype PrimitiveType (from UML).");
+			installComment(op_Boolean__lt__gt_, "Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise.");
+			installComment(op_Boolean__eq_, "Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise.");
+			installComment(op_Boolean_allInstances, "Returns oclText[Set{false, true}].");
+			installComment(op_Boolean_and, "True if both b1 and b are oclText[true].");
+			installComment(op_Boolean_implies, "True if oclText[self] is oclText[false], or if oclText[self] is oclText[true] and b is oclText[true].");
+			installComment(op_Boolean_not, "True if oclText[self] is oclText[false].");
+			installComment(op_Boolean_or, "True if either oclText[self] or b is oclText[true].");
+			installComment(op_Boolean_toString, "Converts oclText[self] to a string value.");
+			installComment(op_Boolean_xor, "True if either oclText[self] or b is oclText[true], but not both.");
+			installComment(_Integer, "The standard type Integer represents the mathematical concept of integer.\nNote that UnlimitedNatural is a subclass of Integer, so for each parameter of type Integer,\nyou can use an unlimited natural as the actual parameter.\nInteger is itself an instance of the metatype PrimitiveType (from UML).");
+			installComment(op_Integer__mul_, "The value of the multiplication of oclText[self] and i.");
+			installComment(op_Integer__add_, "The value of the addition of oclText[self] and i.");
+			installComment(op_Integer__sub_, "The negative value of oclText[self].");
+			installComment(op_Integer__sub__1, "The value of the subtraction of i from oclText[self].");
+			installComment(op_Integer__div_, "The value of oclText[self] divided by i.\nEvaluates to oclText[invalid] if r is equal to zero.");
+			installComment(op_Integer_abs, "The absolute value of oclText[self].");
+			installComment(op_Integer_compareTo, "The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than.");
+			installComment(op_Integer_div, "The number of times that i fits completely within oclText[self].");
+			installComment(op_Integer_max, "The maximum of oclText[self] an i.");
+			installComment(op_Integer_min, "The minimum of oclText[self] an i.");
+			installComment(op_Integer_mod, "The result is oclText[self] modulo i.");
+			installComment(op_Integer_toString, "Converts oclText[self] to a string value.");
+			installComment(_Real, "The standard type Real represents the mathematical concept of real.\nNote that UnlimitedNatural is a subclass of Integer and that Integer is a subclass of Real,\nso for each parameter of type Real, you can use an unlimited natural or an integer as the actual parameter.\nReal is itself an instance of the metatype PrimitiveType (from UML).");
+			installComment(op_Real__mul_, "The value of the multiplication of oclText[self] and r.");
+			installComment(op_Real__add_, "The value of the addition of oclText[self] and r.");
+			installComment(op_Real__sub_, "The negative value of oclText[self].");
+			installComment(op_Real__sub__1, "The value of the subtraction of r from oclText[self].");
+			installComment(op_Real__div_, "The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero.");
+			installComment(op_Real__lt_, "True if oclText[self] is less than r.");
+			installComment(op_Real__lt__eq_, "True if oclText[self] is less than or equal to r.");
+			installComment(op_Real__lt__gt_, "Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise.");
+			installComment(op_Real__eq_, "Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise.");
+			installComment(op_Real__gt_, "True if oclText[self] is greater than r.");
+			installComment(op_Real__gt__eq_, "True if oclText[self] is greater than or equal to r.");
+			installComment(op_Real_abs, "The absolute value of oclText[self].");
+			installComment(op_Real_compareTo, "The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than.");
+			installComment(op_Real_floor, "The largest integer that is less than or equal to oclText[self].");
+			installComment(op_Real_max, "The maximum of oclText[self] and r.");
+			installComment(op_Real_min, "The minimum of oclText[self] and r.");
+			installComment(op_Real_round, "The integer that is closest to oclText[self]. When there are two such integers, the largest one.");
+			installComment(op_Real_toString, "Converts oclText[self] to a string value.");
+			installComment(_String, "The standard type String represents strings, which can be both ASCII or Unicode.\nString is itself an instance of the metatype PrimitiveType (from UML).");
+			installComment(op_String__add_, "The concatenation of oclText[self] and s.");
+			installComment(op_String__lt_, "True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment.");
+			installComment(op_String__lt__eq_, "True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment.");
+			installComment(op_String__gt_, "True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment.");
+			installComment(op_String__gt__eq_, "True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment.");
+			installComment(op_String_at, "Queries the character at position i in oclText[self].");
+			installComment(op_String_characters, "Obtains the characters of oclText[self] as a sequence.");
+			installComment(op_String_compareTo, "The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than.");
+			installComment(op_String_concat, "The concatenation of oclText[self] and s.");
+			installComment(op_String_equalsIgnoreCase, "Queries whether s and oclText[self] are equivalent under case-insensitive collation.");
+			installComment(op_String_indexOf, "Queries the index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].\nThe empty string is considered to be a substring of every string but the empty string, at index 1.\nNo string is a substring of the empty string.");
+			installComment(op_String_size, "The number of characters in oclText[self].");
+			installComment(op_String_substring, "The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size().");
+			installComment(op_String_toBoolean, "Converts oclText[self] to a boolean value.");
+			installComment(op_String_toInteger, "Converts oclText[self] to an Integer value.");
+			installComment(op_String_toLower, "This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour.");
+			installComment(op_String_toLowerCase, "Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.\nOtherwise, returns the same string as oclText[self].");
+			installComment(op_String_toReal, "Converts oclText[self] to a Real value.");
+			installComment(op_String_toString, "Returns oclText[self].");
+			installComment(op_String_toUpper, "This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour.");
+			installComment(op_String_toUpperCase, "Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.\nOtherwise, returns the same string as oclText[self].");
+			installComment(_UnlimitedNatural, "The standard type UnlimitedNatural is used to encode the non-negative values of a multiplicity specification.\nThis includes a special e[unlimited] value (*) that encodes the upper value of  a multiplicity specification.\nUnlimitedNatural is itself an instance of the metatype UnlimitedNaturalType.\n\nNote that although UnlimitedNatural is a subclass of Integer, the e[unlimited] value cannot be represented as an Integer.\nAny use of the e[unlimited] value as an integer or real is replaced by the oclText[invalid] value.");
+			installComment(op_UnlimitedNatural_oclAsType, "Evaluates to oclText[self], where oclText[self] is of the type identified by T.\nThe type T may be any classifier defined in the UML model;\nif the actual type of oclText[self] at evaluation time does not conform to T,\nthen the oclAsType operation evaluates to oclText[invalid].\n\nThe standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to\nReal or Integer, but the e[unlimited] value may not.\nConversion of e[unlimited] to Real or Integer returns oclText[invalid].");
+			installComment(_Bag_Bag_T_4, "A bag is a collection with duplicates allowed. That is, one object can be an element of a bag many times.\nThere is no ordering defined on the elements in a bag.\nBag is itself an instance of the metatype BagType.");
+			installComment(op_Bag_Bag_T__eq_, "True if oclText[self] and bag contain the same elements, the same number of times.");
+			installComment(it_Bag_Bag_T_closure, "The closure of applying body transitively to every distinct element of the source collection.");
+			installComment(it_Bag_Bag_T_collectNested, "The Bag of elements which results from applying body to every member of the source nonordered collection.");
+			installComment(op_Bag_Bag_T_excluding, "The bag containing all elements of oclText[self] apart from all occurrences of object.");
+			installComment(op_Bag_Bag_T_flatten, "Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].\nIf the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self].");
+			installComment(op_Bag_Bag_T_including, "The bag containing all elements of oclText[self] plus object.");
+			installComment(op_Bag_Bag_T_intersection, "The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and s.");
+			installComment(op_Bag_Bag_T_intersection_1, "The intersection of oclText[self] and s; the set of all elements that are in both oclText[self] and s.");
+			installComment(it_Bag_Bag_T_reject, "The sub-bag of the source bag for which body is oclText[false].\n\noclCode[self->reject(iterator | body) = self->select(iterator | not body)].");
+			installComment(it_Bag_Bag_T_select, "The sub-bag of the source bag for which body is oclText[true].\n\noclCode[self->select(iterator | body) =\nself->iterate(iterator; result : Bag<T> = Bag{} |\nif body then result->including(iterator)\nelse result\nendif)]");
+			installComment(it_Bag_Bag_T_sortedBy, "Results in the Sequence containing all elements of the source collection.\nThe element for which body has the lowest value comes first, and so on.\nThe type of the body expression must have the < operation defined.\nThe < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c).");
+			installComment(op_Bag_Bag_T_union, "The union of oclText[self] and bag; the bag of all elements that are in oclText[self] and all elements that are in bag.");
+			installComment(op_Bag_Bag_T_union_1, "The union of oclText[self] and s; the set of all elements that are in oclText[self] and all elements that are in s.");
+			installComment(op_Class_oclType, "Evaluates to the type of which self is an instance.");
+			installComment(pr_CollectionClassifier_elementType, "Evaluates to the type of the collection elements.");
+			installComment(_Collection_Collection_T_3, "Collection is the abstract supertype of all collection types in the OCL Standard Library.\nEach occurrence of an object in a collection is called an element.\nIf an object occurs twice in a collection, there are two elements.\n\nThis sub clause defines the properties on Collections that have identical semantics for all collection subtypes.\nSome operations may be defined within the subtype as well,\nwhich means that there is an additional postcondition or a more specialized return value.\nCollection is itself an instance of the metatype CollectionType.\n\nThe definition of several common operations is different for each subtype.\nThese operations are not mentioned in this sub clause.\n\nThe semantics of the collection operations is given in the form of a postcondition that uses the IterateExp of the IteratorExp construct.\nThe semantics of those constructs is defined in Clause 10 (\u00E2\u20AC\u0153Semantics Described using UML\u00E2\u20AC\uFFFD).\nIn several cases the postcondition refers to other collection operations,\nwhich in turn are defined in terms of the IterateExp or IteratorExp constructs.\n\nWell-formedness rules\n\n[1] A collection cannot contain oclText[invalid] values.\n\ncontext Collection\ninv: self->forAll(not oclIsInvalid())");
+			installComment(op_Collection_Collection_T__lt__gt_, "True if c is not equal to oclText[self].");
+			installComment(op_Collection_Collection_T__eq_, "True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,\nin the case of an ordered collection type.");
+			installComment(it_Collection_Collection_T_any, "Returns any element in the source collection for which body evaluates to oclText[true].\nIf there is more than one element for which body is oclText[true], one of them is returned.\nThere must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null].");
+			installComment(op_Collection_Collection_T_asBag, "The Bag that contains all the elements from oclText[self].");
+			installComment(op_Collection_Collection_T_asOrderedSet, "An OrderedSet that contains all the elements from oclText[self], with duplicates removed,\nin an order dependent on the particular concrete collection type.");
+			installComment(op_Collection_Collection_T_asSequence, "Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type.");
+			installComment(op_Collection_Collection_T_asSet, "The Set containing all the elements from oclText[self], with duplicates removed.");
+			installComment(it_Collection_Collection_T_collectNested, "The Collection of elements which results from applying body to every member of the source collection.");
+			installComment(it_Collection_Collection_T_collect, "The Collection of elements that results from applying body to every member of the source set.\nThe result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.\ncollectNested is defined individually for each subclass of CollectionType.");
+			installComment(op_Collection_Collection_T_count, "The number of times that object occurs in the collection oclText[self].");
+			installComment(op_Collection_Collection_T_excludes, "True if object is not an element of oclText[self], oclText[false] otherwise.");
+			installComment(op_Collection_Collection_T_excludesAll, "Does oclText[self] contain none of the elements of c2 ?");
+			installComment(op_Collection_Collection_T_excluding, "The collection containing all elements of oclText[self] apart from object.");
+			installComment(it_Collection_Collection_T_exists_1, "Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection.");
+			installComment(op_Collection_Collection_T_flatten, "If the element type is not a collection type, this results in the same collection as oclText[self].\nIf the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self].");
+			installComment(it_Collection_Collection_T_forAll_1, "Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false].");
+			installComment(op_Collection_Collection_T_includes, "True if object is an element of oclText[self], oclText[false] otherwise.");
+			installComment(op_Collection_Collection_T_includesAll, "Does oclText[self] contain all the elements of c2 ?");
+			installComment(op_Collection_Collection_T_including, "The collection containing all elements of oclText[self] plus object.");
+			installComment(op_Collection_Collection_T_isEmpty, "Is oclText[self] the empty collection?\n\nNote: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}].");
+			installComment(it_Collection_Collection_T_isUnique, "Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false].");
+			installComment(op_Collection_Collection_T_max, "The element with the maximum value of all elements in oclText[self].\nElements must be of a type supporting the max operation.\nThe max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.\nUnlimitedNatural, Integer and Real fulfill this condition.");
+			installComment(op_Collection_Collection_T_min, "The element with the minimum value of all elements in oclText[self].\nElements must be of a type supporting the min operation.\nThe min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.\nUnlimitedNatural, Integer and Real fulfill this condition.");
+			installComment(op_Collection_Collection_T_notEmpty, "Is oclText[self] not the empty collection?\n\noclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}].");
+			installComment(op_Collection_Collection_T_oclType, "Evaluates to the type of which oclText[self] is an instance.");
+			installComment(it_Collection_Collection_T_one, "Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true].");
+			installComment(op_Collection_Collection_T_product, "The cartesian product operation of oclText[self] and c2.");
+			installComment(it_Collection_Collection_T_reject, "The sub-collection of the source collection for which body is oclText[false].");
+			installComment(it_Collection_Collection_T_select, "The sub-collection of the source collection for which body is oclText[true].");
+			installComment(op_Collection_Collection_T_size, "The number of elements in the collection oclText[self].");
+			installComment(it_Collection_Collection_T_sortedBy, "Results in the Collection containing all elements of the source collection.\nThe element for which body has the lowest value comes first, and so on.\nThe type of the body expression must have the < operation defined.\nThe < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c).");
+			installComment(op_Collection_Collection_T_sum, "The addition of all elements in oclText[self].\nElements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.\nThe e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).\nUnlimitedNatural, Integer and Real fulfill this condition.\n\nIf the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,\nwhich may result in unpredictable results during evaluation.\nIf an implementation is able to detect a lack of associativity or commutativity,\nthe implementation may bypass the evaluation and return an oclText[invalid] result.");
+			installComment(_Enumeration, "The Enumeration type is the type of an OrderedSet of EnumerationLiteral.");
+			installComment(op_Enumeration_allInstances, "Return a set of all enumeration values of oclText[self].");
+			installComment(op_Enumeration_oclType, "Evaluates to the type of which oclText[self] is an instance.");
+			installComment(_EnumerationClassifier, "The standard type EnumerationClassifier represents the metatype of an Enumeration.");
+			installComment(pr_EnumerationClassifier_ownedLiteral, "Evaluates to the literals of the enumeration.");
+			installComment(_EnumerationLiteral, "The standard type EnumerationLiteral represents a named constant value of an Enumeration.");
+			installComment(_OclAny, "All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.\nConceptually, OclAny behaves as a supertype for all the types.\nFeatures of OclAny are available on each object in all OCL expressions.\nOclAny is itself an instance of the metatype AnyType.\n\nAll classes in a UML model inherit all operations defined on OclAny.\nTo avoid name conflicts between properties in the model and the properties inherited from OclAny,\nall names on the properties of OclAny start with \u00E2\u20AC\u02DCocl.\u00E2\u20AC\u2122\nAlthough theoretically there may still be name conflicts, they can be avoided.\nOne can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.\n\nOperations of OclAny, where the instance of OclAny is called object.");
+			installComment(op_OclAny__lt__gt_, "True if oclText[self] is a different object from object2. Infix operator.");
+			installComment(op_OclAny__eq_, "True if oclText[self] is the same object as object2. Infix operator.");
+			installComment(op_OclAny_oclAsSet, "Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,");
+			installComment(op_OclAny_oclAsType, "Evaluates to oclText[self], where oclText[self] is of the type identified by T.\nThe type T may be any classifier defined in the UML model;\nif the actual type of oclText[self] at evaluation time does not conform to T,\nthen the oclAsType operation evaluates to oclText[invalid].\n\nIn the case of feature redefinition, casting an object to a supertype of its actual type\ndoes not access the supertype\u00E2\u20AC\u2122s definition of the feature;\naccording to the semantics of redefinition, the redefined feature simply does not exist for the object.\nHowever, when casting to a supertype, any features additionally defined by the subtype are suppressed.");
+			installComment(op_OclAny_oclIsInState, "Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec.");
+			installComment(op_OclAny_oclIsInvalid, "Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid.");
+			installComment(op_OclAny_oclIsKindOf, "Evaluates to oclText[true] if the type of oclText[self] conforms to t.\nThat is, oclText[self] is of type t or a subtype of t.");
+			installComment(op_OclAny_oclIsNew, "Can only be used in a postcondition.\nEvaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn\u00E2\u20AC\u2122t exist at precondition time).");
+			installComment(op_OclAny_oclIsTypeOf, "Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t");
+			installComment(op_OclAny_oclIsUndefined, "Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null].");
+			installComment(op_OclAny_oclType, "Evaluates to the type of which oclText[self] is an instance.");
+			installComment(_OclComparable, "The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived\ncompareTo implementation may be sorted.");
+			installComment(op_OclComparable_compareTo, "Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.\n\nThe compareTo operation should be commutative.");
+			installComment(_OclElement, "The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined\nfor OclElement are therefore applicable to all user-defined types.");
+			installComment(op_OclElement_allInstances, "Return a set of all instances of the type and derived types of self.");
+			installComment(op_OclElement_oclContainer, "Returns the object for which self is a composed content or null if there is no such object.");
+			installComment(op_OclElement_oclContents, "Returns the composed contents of self.");
+			installComment(_OclInvalid, "The type OclInvalid is a type that conforms to all other types.\nIt has one single instance, identified as  oclText[invalid].\nAny property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().\nOclInvalid is itself an instance of the metatype InvalidType.");
+			installComment(op_OclInvalid__lt__gt_, "Returns oclText[invalid].");
+			installComment(op_OclInvalid__eq_, "Returns oclText[invalid].");
+			installComment(op_OclInvalid_allInstances, "Returns oclText[invalid].");
+			installComment(op_OclInvalid_toString, "Returns \'invalid\'.");
+			installComment(_OclLambda, "The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda\ntherefore apply to all lambda expressions.");
+			installComment(_OclMessage, "OclMessage\nThis sub clause contains the definition of the standard type OclMessage.\nAs defined in this sub clause, each ocl message type is actually a template type with one parameter.\n\u00E2\u20AC\u02DCT\u00E2\u20AC\u2122 denotes the parameter.\nA concrete ocl message type is created by substituting an operation or signal for the T.\n\nThe predefined type OclMessage is an instance of MessageType.\nEvery OclMessage is fully determined by either the operation, or signal given as parameter.\nNote that there is conceptually an undefined (infinite) number of these types,\nas each is determined by a different operation or signal.\nThese types are unnamed. Every type has as attributes the name of the operation or signal,\nand either all formal parameters of the operation, or all attributes of the signal.\nOclMessage is itself an instance of the metatype MessageType.\n\nOclMessage has a number of predefined operations, as shown in the OCL Standard Library.");
+			installComment(op_OclMessage_hasReturned, "True if type of template parameter is an operation call, and the called operation has returned a value.\nThis implies the fact that the message has been sent. False in all other cases.");
+			installComment(op_OclMessage_isOperationCall, "Returns oclText[true] if the OclMessage represents the sending of a UML Operation call.");
+			installComment(op_OclMessage_isSignalSent, "Returns oclText[true] if the OclMessage represents the sending of a UML Signal.");
+			installComment(op_OclMessage_result, "Returns the result of the called operation, if type of template parameter is an operation call,\nand the called operation has returned a value. Otherwise the oclText[invalid] value is returned.");
+			installComment(_OclSelf, "The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation\nand Iteration signatures. Instances of OclSelf are never created.");
+			installComment(_OclSummable, "The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived\nsum and zero implementations may be summed.");
+			installComment(op_OclSummable_sum, "Return the sum of self and that.\n\nThe sum operation should be associative.");
+			installComment(op_OclSummable_zero, "Return the \'zero\' value of self to initialize a summation.\n\nzero().sum(self) = self.");
+			installComment(_OclTuple, "The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple\ntherefore apply to all tuples.");
+			installComment(_OclType, "The type OclType is the implicit supertype of any UML type. Operations defined\nfor OclType are therefore applicable to all UML types.");
+			installComment(op_OclType_conformsTo, "Returns true if type2 conforms to self.");
+			installComment(_OclVoid, "The type OclVoid is a type that conforms to all other types except OclInvalid.\nIt has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.\nAny property call applied on oclText[null] results in oclText[invalid], except for the\noclIsUndefined(), oclIsInvalid(), =(OclAny) and <>(OclAny) operations.\nHowever, by virtue of the implicit conversion to a collection literal,\nan expression evaluating to oclText[null] can be used as source of collection operations (such as \u00E2\u20AC\u02DCisEmpty\u00E2\u20AC\u2122).\nIf the source is the oclText[null] literal, it is implicitly converted to Bag{}.\n\nOclVoid is itself an instance of the metatype VoidType.");
+			installComment(op_OclVoid__eq_, "Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]\nif object is oclText[invalid], oclText[false] otherwise.");
+			installComment(op_OclVoid_allInstances, "Returns oclText[Set{null}].");
+			installComment(op_OclVoid_toString, "Returns oclText[null].");
+			installComment(_OrderedSet_OrderedSet_T, "The OrderedSet is a Set, the elements of which are ordered.\nIt contains no duplicates. OrderedSet is itself an instance of the metatype OrderedSetType.\nAn OrderedSet is not a subtype of Set, neither a subtype of Sequence.\nThe common supertype of Sets and OrderedSets is Collection.");
+			installComment(op_OrderedSet_OrderedSet_T__sub_, "The elements of oclText[self], which are not in s.");
+			installComment(op_OrderedSet_OrderedSet_T_append, "The set of elements, consisting of all elements of oclText[self], followed by object.");
+			installComment(op_OrderedSet_OrderedSet_T_excluding, "The ordered set  containing all elements of oclText[self] apart from object.\n\nThe order of the remaining elements is not changed.");
+			installComment(op_OrderedSet_OrderedSet_T_including, "The ordered set containing all elements of oclText[self] plus object added as the last element if not already present.");
+			installComment(op_OrderedSet_OrderedSet_T_insertAt, "The ordered set consisting of oclText[self] with object present at position index.");
+			installComment(op_OrderedSet_OrderedSet_T_prepend, "The sequence consisting of object, followed by all elements in oclText[self].");
+			installComment(it_OrderedSet_OrderedSet_T_reject, "The ordered set of the source ordered set for which body is oclText[false].");
+			installComment(op_OrderedSet_OrderedSet_T_reverse, "The ordered set of elements with same elements but with the opposite order.");
+			installComment(it_OrderedSet_OrderedSet_T_select, "The ordered set of the source ordered set for which body is oclText[true]");
+			installComment(it_OrderedSet_OrderedSet_T_sortedBy, "Results in the ordered set containing all elements of the source collection.\nThe element for which body has the lowest value comes first, and so on.\nThe type of the body expression must have the < operation defined.\nThe < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c).");
+			installComment(op_OrderedSet_OrderedSet_T_subOrderedSet, "The sub-set of oclText[self] starting at number lower, up to and including element number upper.");
+			installComment(op_OrderedSet_OrderedSet_T_union, "The ordered set consisting of all elements in oclText[self] and all elements in o.");
+			installComment(_Sequence_Sequence_T_3, "A sequence is a collection where the elements are ordered.\nAn element may be part of a sequence more than once.\nSequence is itself an instance of the metatype SequenceType.\nA Sentence is not a subtype of Bag.\nThe common supertype of Sentence and Bags is Collection.");
+			installComment(op_Sequence_Sequence_T__eq_, "True if oclText[self] contains the same elements as s in the same order.");
+			installComment(op_Sequence_Sequence_T_append, "The sequence of elements, consisting of all elements of oclText[self], followed by object.");
+			installComment(op_Sequence_Sequence_T_at, "The i-th element of sequence.");
+			installComment(it_Sequence_Sequence_T_closure, "The closure of applying body transitively to every distinct element of the source collection.");
+			installComment(it_Sequence_Sequence_T_collectNested, "The sequence of elements that results from applying body to every member of the source ordered collection.");
+			installComment(op_Sequence_Sequence_T_excluding, "The sequence containing all elements of oclText[self] apart from all occurrences of object.\n\nThe order of the remaining elements is not changed.");
+			installComment(op_Sequence_Sequence_T_first, "The first element in oclText[self].");
+			installComment(op_Sequence_Sequence_T_flatten, "Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].\nIf the element type is a collection type, the result is the sequence containing all the elements\nof all the recursively flattened elements of oclText[self]. The order of the elements is partial.");
+			installComment(op_Sequence_Sequence_T_including, "The sequence containing all elements of oclText[self] plus object added as the last element.");
+			installComment(op_Sequence_Sequence_T_indexOf, "The index of object obj in the ordered collection.");
+			installComment(op_Sequence_Sequence_T_insertAt, "The sequence consisting of oclText[self] with object inserted at position index.");
+			installComment(op_Sequence_Sequence_T_intersection, "The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and s.");
+			installComment(op_Sequence_Sequence_T_intersection_1, "The intersection of oclText[self] and s; the set of all elements that are in both oclText[self] and s.");
+			installComment(op_Sequence_Sequence_T_last, "The last element in oclText[self].");
+			installComment(op_Sequence_Sequence_T_prepend, "The sequence consisting of object, followed by all elements in oclText[self].");
+			installComment(it_Sequence_Sequence_T_reject, "The subsequence of the source sequence for which body is oclText[false].");
+			installComment(op_Sequence_Sequence_T_reverse, "The sequence containing the same elements but with the opposite order.");
+			installComment(it_Sequence_Sequence_T_select, "The subsequence of the source sequence for which body is oclText[true].");
+			installComment(it_Sequence_Sequence_T_sortedBy, "Results in the Sequence containing all elements of the source collection.\nThe element for which body has the lowest value comes first, and so on.\nThe type of the body expression must have the < operation defined.\nThe < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c).");
+			installComment(op_Sequence_Sequence_T_subSequence, "The sub-sequence of oclText[self] starting at number lower, up to and including element number upper.");
+			installComment(op_Sequence_Sequence_T_union, "The sequence consisting of all elements in oclText[self], followed by all elements in s.");
+			installComment(op_Set_Set_T__sub_, "The elements of oclText[self], which are not in s.");
+			installComment(op_Set_Set_T__eq_, "Evaluates to oclText[true] if oclText[self] and s contain the same elements.");
+			installComment(op_Set_Set_T_excluding, "The set containing all elements of oclText[self] without object.");
+			installComment(op_Set_Set_T_flatten, "Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].\nIf the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self].");
+			installComment(op_Set_Set_T_including, "The set containing all elements of oclText[self] plus object.");
+			installComment(op_Set_Set_T_intersection, "The intersection of oclText[self] and s (i.e., the set of all elements that are in both oclText[self] and s).");
+			installComment(it_Set_Set_T_reject, "The subset of the source set for which body is oclText[false].");
+			installComment(it_Set_Set_T_select, "The subset of set for which expr is oclText[true].");
+			installComment(it_Set_Set_T_sortedBy, "Results in the ordered set containing all elements of the source collection.\nThe element for which body has the lowest value comes first, and so on.\nThe type of the body expression must have the < operation defined.\nThe < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c).");
+			installComment(op_Set_Set_T_union, "The set consisting of all elements in oclText[self] and all elements in s.");
+			installComment(_UniqueCollection_UniqueCollection_T_2, "The UniqueCollection type provides the shared functionality of the OrderedSet and Set\ncollections for which the elements are unique.\nThe common supertype of UniqueCollection is Collection.");
+			installComment(op_UniqueCollection_UniqueCollection_T__sub_, "The elements of oclText[self], which are not in s.");
+			installComment(it_UniqueCollection_UniqueCollection_T_sortedBy, "Results in the ordered set containing all elements of the source collection.\nThe element for which body has the lowest value comes first, and so on.\nThe type of the body expression must have the < operation defined.\nThe < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c).");
+			installComment(op_UniqueCollection_UniqueCollection_T_symmetricDifference, "The set containing all the elements that are in oclText[self] or s, but not in both.");
+			installComment(op_UniqueCollection_UniqueCollection_T_union, "The set consisting of all elements in oclText[self] and all elements in s.");
+		}
 	}
 }
diff --git a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/model/OclMetaModel.java b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/model/OclMetaModel.java
index d7c5b70..db068bb 100644
--- a/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/model/OclMetaModel.java
+++ b/examples/org.eclipse.ocl.examples.pivot/emf-gen/org/eclipse/ocl/examples/pivot/model/OclMetaModel.java
@@ -29,11 +29,13 @@
 import java.util.List;
 
 import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
+import org.eclipse.ocl.examples.domain.library.LibraryFeature;
 import org.eclipse.ocl.examples.pivot.*;
 import org.eclipse.ocl.examples.pivot.Class;
 import org.eclipse.ocl.examples.pivot.Package;
 import org.eclipse.ocl.examples.pivot.manager.PivotStandardLibrary;
+import org.eclipse.ocl.examples.pivot.model.OCLstdlib;
 import org.eclipse.ocl.examples.pivot.utilities.PivotUtil;
 
 /**
@@ -41,4215 +43,1911 @@
  * auto-generated from model/Pivot.ecore.
  * It facilitates efficient model loading without the overheads of model reading.
  */
-@SuppressWarnings("nls")
-public class OclMetaModel extends XMLResourceImpl
+@SuppressWarnings({"nls", "unused"})
+public class OclMetaModel extends XMIResourceImpl
 {
 	/**
 	 *	The URI of this Standard Library.
 	 */
 	public static final String PIVOT_URI = "http://www.eclipse.org/ocl/3.1.0/Pivot";
 
-	public OclMetaModel(PivotStandardLibrary standardLibrary, String name, String nsURI) {
+	public OclMetaModel(PivotStandardLibrary standardLibrary, String name, String nsPrefix, String nsURI) {
 		super(URI.createURI(PIVOT_URI));
-		Package metaModel = create(standardLibrary);
+		Contents contents = new Contents(standardLibrary);
+		Package metaModel = contents.create(name != null ? name : "pivot", nsPrefix != null ? nsPrefix : "pivot", nsURI != null ? nsURI : "http://www.eclipse.org/ocl/3.1.0/Pivot");
 		getContents().add(metaModel);
-		if (name != null) {
-			metaModel.setName(name);
-		}
-		if (nsURI != null) {
-			metaModel.setNsURI(nsURI);
-		}
 	}
-	
-	/**
-	 *	Create and return a pivot model of the Pivot Model.
-	 */
-	public static Package create(PivotStandardLibrary standardLibrary)
+
+	protected static class Contents extends AbstractContents
 	{
-		Package symbol_0 = PivotFactory.eINSTANCE.createPackage(); // http://www.eclipse.org/ocl/3.1.0/Pivot
-		Class symbol_1 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Annotation
-		Property symbol_2 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Annotation!NamedElement // Pivot.ecore::pivot::Annotation::NamedElement http://www.eclipse.org/ocl/3.1.0/Pivot!Annotation!NamedElement
-		Property symbol_3 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Annotation!ownedContent // Pivot.ecore::pivot::Annotation::ownedContent http://www.eclipse.org/ocl/3.1.0/Pivot!Annotation!ownedContent
-		Property symbol_4 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Annotation!ownedDetail // Pivot.ecore::pivot::Annotation::ownedDetail http://www.eclipse.org/ocl/3.1.0/Pivot!Annotation!ownedDetail
-		Property symbol_5 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Annotation!reference // Pivot.ecore::pivot::Annotation::reference http://www.eclipse.org/ocl/3.1.0/Pivot!Annotation!reference
-		
-		Class symbol_6 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!AnyType
-		
-		Class symbol_7 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClass
-		Property symbol_8 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClass!AssociationClassCallExp // Pivot.ecore::pivot::AssociationClass::AssociationClassCallExp http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClass!AssociationClassCallExp
-		Property symbol_9 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClass!unownedAttribute // Pivot.ecore::pivot::AssociationClass::unownedAttribute http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClass!unownedAttribute
-		
-		Class symbol_10 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClassCallExp
-		Property symbol_11 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClassCallExp!referredAssociationClass // Pivot.ecore::pivot::AssociationClassCallExp::referredAssociationClass http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClassCallExp!referredAssociationClass
-		
-		Enumeration symbol_12 = PivotFactory.eINSTANCE.createEnumeration(); // http://www.eclipse.org/ocl/3.1.0/Pivot!AssociativityKind
-		
-		Class symbol_13 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!BagType
-		
-		PrimitiveType symbol_14 = standardLibrary.getBooleanType(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-		Class symbol_15 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!BooleanLiteralExp
-		Property symbol_16 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!BooleanLiteralExp!booleanSymbol // Pivot.ecore::pivot::BooleanLiteralExp::booleanSymbol http://www.eclipse.org/ocl/3.1.0/Pivot!BooleanLiteralExp!booleanSymbol
-		
-		Class symbol_17 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CallExp
-		Property symbol_18 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CallExp!implicit // Pivot.ecore::pivot::CallExp::implicit http://www.eclipse.org/ocl/3.1.0/Pivot!CallExp!implicit
-		Property symbol_19 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CallExp!source // Pivot.ecore::pivot::CallExp::source http://www.eclipse.org/ocl/3.1.0/Pivot!CallExp!source
-		
-		Class symbol_20 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CallOperationAction
-		Property symbol_21 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CallOperationAction!MessageExp // Pivot.ecore::pivot::CallOperationAction::MessageExp http://www.eclipse.org/ocl/3.1.0/Pivot!CallOperationAction!MessageExp
-		Property symbol_22 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CallOperationAction!operation // Pivot.ecore::pivot::CallOperationAction::operation http://www.eclipse.org/ocl/3.1.0/Pivot!CallOperationAction!operation
-		
-		Class symbol_23 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Class
-		Property symbol_24 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Class!isAbstract // Pivot.ecore::pivot::Class::isAbstract http://www.eclipse.org/ocl/3.1.0/Pivot!Class!isAbstract
-		Property symbol_25 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Class!isInterface // Pivot.ecore::pivot::Class::isInterface http://www.eclipse.org/ocl/3.1.0/Pivot!Class!isInterface
-		
-		Class symbol_26 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ClassifierType
-		Property symbol_27 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ClassifierType!instanceType // Pivot.ecore::pivot::ClassifierType::instanceType http://www.eclipse.org/ocl/3.1.0/Pivot!ClassifierType!instanceType
-		
-		Class symbol_28 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionItem
-		Property symbol_29 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionItem!item // Pivot.ecore::pivot::CollectionItem::item http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionItem!item
-		
-		Enumeration symbol_30 = PivotFactory.eINSTANCE.createEnumeration(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionKind
-		
-		Class symbol_31 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralExp
-		Property symbol_32 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralExp!kind // Pivot.ecore::pivot::CollectionLiteralExp::kind http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralExp!kind
-		Property symbol_33 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralExp!part // Pivot.ecore::pivot::CollectionLiteralExp::part http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralExp!part
-		
-		Class symbol_34 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralPart
-		Property symbol_35 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralPart!CollectionLiteralExp // Pivot.ecore::pivot::CollectionLiteralPart::CollectionLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralPart!CollectionLiteralExp
-		
-		Class symbol_36 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionRange
-		Property symbol_37 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionRange!first // Pivot.ecore::pivot::CollectionRange::first http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionRange!first
-		Property symbol_38 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionRange!last // Pivot.ecore::pivot::CollectionRange::last http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionRange!last
-		
-		Class symbol_39 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionType
-		Property symbol_40 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionType!elementType // Pivot.ecore::pivot::CollectionType::elementType http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionType!elementType
-		
-		Class symbol_41 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Comment
-		Property symbol_42 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Comment!Element // Pivot.ecore::pivot::Comment::Element http://www.eclipse.org/ocl/3.1.0/Pivot!Comment!Element
-		Property symbol_43 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Comment!annotatedElement // Pivot.ecore::pivot::Comment::annotatedElement http://www.eclipse.org/ocl/3.1.0/Pivot!Comment!annotatedElement
-		Property symbol_44 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Comment!body // Pivot.ecore::pivot::Comment::body http://www.eclipse.org/ocl/3.1.0/Pivot!Comment!body
-		
-		Class symbol_45 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint
-		Property symbol_46 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint!constrainedElement // Pivot.ecore::pivot::Constraint::constrainedElement http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint!constrainedElement
-		Property symbol_47 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint!context // Pivot.ecore::pivot::Constraint::context http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint!context
-		Property symbol_48 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint!isCallable // Pivot.ecore::pivot::Constraint::isCallable http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint!isCallable
-		Property symbol_49 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint!specification // Pivot.ecore::pivot::Constraint::specification http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint!specification
-		Property symbol_50 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint!stereotype // Pivot.ecore::pivot::Constraint::stereotype http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint!stereotype
-		
-		Class symbol_51 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorExp
-		Property symbol_52 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorExp!part // Pivot.ecore::pivot::ConstructorExp::part http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorExp!part
-		
-		Class symbol_53 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorPart
-		Property symbol_54 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorPart!ConstructorExp // Pivot.ecore::pivot::ConstructorPart::ConstructorExp http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorPart!ConstructorExp
-		Property symbol_55 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorPart!initExpression // Pivot.ecore::pivot::ConstructorPart::initExpression http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorPart!initExpression
-		Property symbol_56 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorPart!referredProperty // Pivot.ecore::pivot::ConstructorPart::referredProperty http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorPart!referredProperty
-		
-		Class symbol_57 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!DataType
-		Property symbol_58 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!DataType!behavioralType // Pivot.ecore::pivot::DataType::behavioralType http://www.eclipse.org/ocl/3.1.0/Pivot!DataType!behavioralType
-		Property symbol_59 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!DataType!isSerializable // Pivot.ecore::pivot::DataType::isSerializable http://www.eclipse.org/ocl/3.1.0/Pivot!DataType!isSerializable
-		
-		Class symbol_60 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Detail
-		Property symbol_61 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Detail!Annotation // Pivot.ecore::pivot::Detail::Annotation http://www.eclipse.org/ocl/3.1.0/Pivot!Detail!Annotation
-		Property symbol_62 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Detail!value // Pivot.ecore::pivot::Detail::value http://www.eclipse.org/ocl/3.1.0/Pivot!Detail!value
-		
-		Class symbol_63 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-		Property symbol_64 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element!Annotation // Pivot.ecore::pivot::Element::Annotation http://www.eclipse.org/ocl/3.1.0/Pivot!Element!Annotation
-		Property symbol_65 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element!Comment // Pivot.ecore::pivot::Element::Comment http://www.eclipse.org/ocl/3.1.0/Pivot!Element!Comment
-		Property symbol_66 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element!Constraint // Pivot.ecore::pivot::Element::Constraint http://www.eclipse.org/ocl/3.1.0/Pivot!Element!Constraint
-		Property symbol_67 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element!ownedComment // Pivot.ecore::pivot::Element::ownedComment http://www.eclipse.org/ocl/3.1.0/Pivot!Element!ownedComment
-		
-		Class symbol_68 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!EnumLiteralExp
-		Property symbol_69 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!EnumLiteralExp!referredEnumLiteral // Pivot.ecore::pivot::EnumLiteralExp::referredEnumLiteral http://www.eclipse.org/ocl/3.1.0/Pivot!EnumLiteralExp!referredEnumLiteral
-		
-		Class symbol_70 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Enumeration
-		Property symbol_71 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Enumeration!ownedLiteral // Pivot.ecore::pivot::Enumeration::ownedLiteral http://www.eclipse.org/ocl/3.1.0/Pivot!Enumeration!ownedLiteral
-		
-		Class symbol_72 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!EnumerationLiteral
-		Property symbol_73 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!EnumerationLiteral!EnumLiteralExp // Pivot.ecore::pivot::EnumerationLiteral::EnumLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!EnumerationLiteral!EnumLiteralExp
-		Property symbol_74 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!EnumerationLiteral!enumeration // Pivot.ecore::pivot::EnumerationLiteral::enumeration http://www.eclipse.org/ocl/3.1.0/Pivot!EnumerationLiteral!enumeration
-		Property symbol_75 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!EnumerationLiteral!value // Pivot.ecore::pivot::EnumerationLiteral::value http://www.eclipse.org/ocl/3.1.0/Pivot!EnumerationLiteral!value
-		
-		Class symbol_76 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl
-		Property symbol_77 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl!bodyExpression // Pivot.ecore::pivot::ExpressionInOcl::bodyExpression http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl!bodyExpression
-		Property symbol_78 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl!contextVariable // Pivot.ecore::pivot::ExpressionInOcl::contextVariable http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl!contextVariable
-		Property symbol_79 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl!messageExpression // Pivot.ecore::pivot::ExpressionInOcl::messageExpression http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl!messageExpression
-		Property symbol_80 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl!parameterVariable // Pivot.ecore::pivot::ExpressionInOcl::parameterVariable http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl!parameterVariable
-		Property symbol_81 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl!resultVariable // Pivot.ecore::pivot::ExpressionInOcl::resultVariable http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl!resultVariable
-		
-		Class symbol_82 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Feature
-		Property symbol_83 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Feature!implementation // Pivot.ecore::pivot::Feature::implementation http://www.eclipse.org/ocl/3.1.0/Pivot!Feature!implementation
-		Property symbol_84 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Feature!implementationClass // Pivot.ecore::pivot::Feature::implementationClass http://www.eclipse.org/ocl/3.1.0/Pivot!Feature!implementationClass
-		
-		Class symbol_85 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!FeatureCallExp
-		Property symbol_86 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!FeatureCallExp!isPre // Pivot.ecore::pivot::FeatureCallExp::isPre http://www.eclipse.org/ocl/3.1.0/Pivot!FeatureCallExp!isPre
-		
-		Class symbol_87 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!IfExp
-		Property symbol_88 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!IfExp!condition // Pivot.ecore::pivot::IfExp::condition http://www.eclipse.org/ocl/3.1.0/Pivot!IfExp!condition
-		Property symbol_89 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!IfExp!elseExpression // Pivot.ecore::pivot::IfExp::elseExpression http://www.eclipse.org/ocl/3.1.0/Pivot!IfExp!elseExpression
-		Property symbol_90 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!IfExp!thenExpression // Pivot.ecore::pivot::IfExp::thenExpression http://www.eclipse.org/ocl/3.1.0/Pivot!IfExp!thenExpression
-		
-		DataType symbol_91 = PivotFactory.eINSTANCE.createDataType(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Int
-		
-		PrimitiveType symbol_92 = standardLibrary.getIntegerType(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Integer
-		Class symbol_93 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!IntegerLiteralExp
-		Property symbol_94 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!IntegerLiteralExp!integerSymbol // Pivot.ecore::pivot::IntegerLiteralExp::integerSymbol http://www.eclipse.org/ocl/3.1.0/Pivot!IntegerLiteralExp!integerSymbol
-		
-		Class symbol_95 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!InvalidLiteralExp
-		
-		Class symbol_96 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!InvalidType
-		
-		Class symbol_97 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!IterateExp
-		Property symbol_98 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!IterateExp!result // Pivot.ecore::pivot::IterateExp::result http://www.eclipse.org/ocl/3.1.0/Pivot!IterateExp!result
-		
-		Class symbol_99 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Iteration
-		Property symbol_100 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Iteration!LoopExp // Pivot.ecore::pivot::Iteration::LoopExp http://www.eclipse.org/ocl/3.1.0/Pivot!Iteration!LoopExp
-		Property symbol_101 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Iteration!ownedAccumulator // Pivot.ecore::pivot::Iteration::ownedAccumulator http://www.eclipse.org/ocl/3.1.0/Pivot!Iteration!ownedAccumulator
-		Property symbol_102 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Iteration!ownedIterator // Pivot.ecore::pivot::Iteration::ownedIterator http://www.eclipse.org/ocl/3.1.0/Pivot!Iteration!ownedIterator
-		
-		Class symbol_103 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!IteratorExp
-		
-		Class symbol_104 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!LambdaType
-		Property symbol_105 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!LambdaType!contextType // Pivot.ecore::pivot::LambdaType::contextType http://www.eclipse.org/ocl/3.1.0/Pivot!LambdaType!contextType
-		Property symbol_106 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!LambdaType!parameterType // Pivot.ecore::pivot::LambdaType::parameterType http://www.eclipse.org/ocl/3.1.0/Pivot!LambdaType!parameterType
-		Property symbol_107 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!LambdaType!resultType // Pivot.ecore::pivot::LambdaType::resultType http://www.eclipse.org/ocl/3.1.0/Pivot!LambdaType!resultType
-		
-		Class symbol_108 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!LetExp
-		Property symbol_109 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!LetExp!in // Pivot.ecore::pivot::LetExp::in http://www.eclipse.org/ocl/3.1.0/Pivot!LetExp!in
-		Property symbol_110 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!LetExp!variable // Pivot.ecore::pivot::LetExp::variable http://www.eclipse.org/ocl/3.1.0/Pivot!LetExp!variable
-		
-		Class symbol_111 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Library
-		
-		DataType symbol_112 = PivotFactory.eINSTANCE.createDataType(); // http://www.eclipse.org/ocl/3.1.0/Pivot!LibraryFeature
-		
-		Class symbol_113 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!LiteralExp
-		
-		Class symbol_114 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!LoopExp
-		Property symbol_115 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!LoopExp!body // Pivot.ecore::pivot::LoopExp::body http://www.eclipse.org/ocl/3.1.0/Pivot!LoopExp!body
-		Property symbol_116 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!LoopExp!iterator // Pivot.ecore::pivot::LoopExp::iterator http://www.eclipse.org/ocl/3.1.0/Pivot!LoopExp!iterator
-		Property symbol_117 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!LoopExp!referredIteration // Pivot.ecore::pivot::LoopExp::referredIteration http://www.eclipse.org/ocl/3.1.0/Pivot!LoopExp!referredIteration
-		
-		Class symbol_118 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageExp
-		Property symbol_119 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageExp!argument // Pivot.ecore::pivot::MessageExp::argument http://www.eclipse.org/ocl/3.1.0/Pivot!MessageExp!argument
-		Property symbol_120 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageExp!calledOperation // Pivot.ecore::pivot::MessageExp::calledOperation http://www.eclipse.org/ocl/3.1.0/Pivot!MessageExp!calledOperation
-		Property symbol_121 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageExp!sentSignal // Pivot.ecore::pivot::MessageExp::sentSignal http://www.eclipse.org/ocl/3.1.0/Pivot!MessageExp!sentSignal
-		Property symbol_122 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageExp!target // Pivot.ecore::pivot::MessageExp::target http://www.eclipse.org/ocl/3.1.0/Pivot!MessageExp!target
-		
-		Class symbol_123 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageType
-		Property symbol_124 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageType!referredOperation // Pivot.ecore::pivot::MessageType::referredOperation http://www.eclipse.org/ocl/3.1.0/Pivot!MessageType!referredOperation
-		Property symbol_125 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageType!referredSignal // Pivot.ecore::pivot::MessageType::referredSignal http://www.eclipse.org/ocl/3.1.0/Pivot!MessageType!referredSignal
-		
-		Class symbol_126 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MorePivotable
-		
-		Class symbol_127 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement
-		Property symbol_128 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!isOrdered // Pivot.ecore::pivot::MultiplicityElement::isOrdered http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!isOrdered
-		Property symbol_129 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!isUnique // Pivot.ecore::pivot::MultiplicityElement::isUnique http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!isUnique
-		Property symbol_130 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!lower // Pivot.ecore::pivot::MultiplicityElement::lower http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!lower
-		Property symbol_131 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!upper // Pivot.ecore::pivot::MultiplicityElement::upper http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!upper
-		
-		Class symbol_132 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Nameable
-		
-		Class symbol_133 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		Property symbol_134 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement!isStatic // Pivot.ecore::pivot::NamedElement::isStatic http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement!isStatic
-		Property symbol_135 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement!name // Pivot.ecore::pivot::NamedElement::name http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement!name
-		Property symbol_136 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement!ownedAnnotation // Pivot.ecore::pivot::NamedElement::ownedAnnotation http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement!ownedAnnotation
-		Property symbol_137 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement!ownedRule // Pivot.ecore::pivot::NamedElement::ownedRule http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement!ownedRule
-		
-		Class symbol_138 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Namespace
-		
-		Class symbol_139 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!NavigationCallExp
-		Property symbol_140 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!NavigationCallExp!navigationSource // Pivot.ecore::pivot::NavigationCallExp::navigationSource http://www.eclipse.org/ocl/3.1.0/Pivot!NavigationCallExp!navigationSource
-		Property symbol_141 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!NavigationCallExp!qualifier // Pivot.ecore::pivot::NavigationCallExp::qualifier http://www.eclipse.org/ocl/3.1.0/Pivot!NavigationCallExp!qualifier
-		
-		Class symbol_142 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!NullLiteralExp
-		
-		Class symbol_143 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!NumericLiteralExp
-		
-		DataType symbol_144 = PivotFactory.eINSTANCE.createDataType(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Object
-		
-		Class symbol_145 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-		Property symbol_146 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!CallExp // Pivot.ecore::pivot::OclExpression::CallExp http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!CallExp
-		Property symbol_147 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!CollectionItem // Pivot.ecore::pivot::OclExpression::CollectionItem http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!CollectionItem
-		Property symbol_148 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!CollectionRange // Pivot.ecore::pivot::OclExpression::CollectionRange http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!CollectionRange
-		Property symbol_149 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!ConstructorPart // Pivot.ecore::pivot::OclExpression::ConstructorPart http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!ConstructorPart
-		Property symbol_150 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!ExpressionInOcl // Pivot.ecore::pivot::OclExpression::ExpressionInOcl http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!ExpressionInOcl
-		Property symbol_151 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!IfExp // Pivot.ecore::pivot::OclExpression::IfExp http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!IfExp
-		Property symbol_152 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!LetExp // Pivot.ecore::pivot::OclExpression::LetExp http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!LetExp
-		Property symbol_153 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!LoopExp // Pivot.ecore::pivot::OclExpression::LoopExp http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!LoopExp
-		Property symbol_154 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!MessageExp // Pivot.ecore::pivot::OclExpression::MessageExp http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!MessageExp
-		Property symbol_155 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!NavigationCallExp // Pivot.ecore::pivot::OclExpression::NavigationCallExp http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!NavigationCallExp
-		Property symbol_156 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!OperationCallExp // Pivot.ecore::pivot::OclExpression::OperationCallExp http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!OperationCallExp
-		Property symbol_157 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!TupleLiteralPart // Pivot.ecore::pivot::OclExpression::TupleLiteralPart http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!TupleLiteralPart
-		Property symbol_158 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!Variable // Pivot.ecore::pivot::OclExpression::Variable http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression!Variable
-		
-		Class symbol_159 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OpaqueExpression
-		Property symbol_160 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OpaqueExpression!body // Pivot.ecore::pivot::OpaqueExpression::body http://www.eclipse.org/ocl/3.1.0/Pivot!OpaqueExpression!body
-		Property symbol_161 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OpaqueExpression!language // Pivot.ecore::pivot::OpaqueExpression::language http://www.eclipse.org/ocl/3.1.0/Pivot!OpaqueExpression!language
-		Property symbol_162 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OpaqueExpression!message // Pivot.ecore::pivot::OpaqueExpression::message http://www.eclipse.org/ocl/3.1.0/Pivot!OpaqueExpression!message
-		Property symbol_163 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OpaqueExpression!valueExpression // Pivot.ecore::pivot::OpaqueExpression::valueExpression http://www.eclipse.org/ocl/3.1.0/Pivot!OpaqueExpression!valueExpression
-		
-		Class symbol_164 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation
-		Property symbol_165 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!CallOperationAction // Pivot.ecore::pivot::Operation::CallOperationAction http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!CallOperationAction
-		Property symbol_166 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!MessageType // Pivot.ecore::pivot::Operation::MessageType http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!MessageType
-		Property symbol_167 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!OperationCallExp // Pivot.ecore::pivot::Operation::OperationCallExp http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!OperationCallExp
-		Property symbol_168 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!class // Pivot.ecore::pivot::Operation::class http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!class
-		Property symbol_169 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!ownedParameter // Pivot.ecore::pivot::Operation::ownedParameter http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!ownedParameter
-		Property symbol_170 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!owningType // Pivot.ecore::pivot::Operation::owningType http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!owningType
-		Property symbol_171 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!precedence // Pivot.ecore::pivot::Operation::precedence http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!precedence
-		Property symbol_172 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!raisedException // Pivot.ecore::pivot::Operation::raisedException http://www.eclipse.org/ocl/3.1.0/Pivot!Operation!raisedException
-		
-		Class symbol_173 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OperationCallExp
-		Property symbol_174 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OperationCallExp!argument // Pivot.ecore::pivot::OperationCallExp::argument http://www.eclipse.org/ocl/3.1.0/Pivot!OperationCallExp!argument
-		Property symbol_175 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OperationCallExp!referredOperation // Pivot.ecore::pivot::OperationCallExp::referredOperation http://www.eclipse.org/ocl/3.1.0/Pivot!OperationCallExp!referredOperation
-		
-		Class symbol_176 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OperationTemplateParameter
-		
-		Class symbol_177 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!OrderedSetType
-		
-		Class symbol_178 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Package
-		Property symbol_179 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Package!nestedPackage // Pivot.ecore::pivot::Package::nestedPackage http://www.eclipse.org/ocl/3.1.0/Pivot!Package!nestedPackage
-		Property symbol_180 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Package!nestingPackage // Pivot.ecore::pivot::Package::nestingPackage http://www.eclipse.org/ocl/3.1.0/Pivot!Package!nestingPackage
-		Property symbol_181 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Package!nsPrefix // Pivot.ecore::pivot::Package::nsPrefix http://www.eclipse.org/ocl/3.1.0/Pivot!Package!nsPrefix
-		Property symbol_182 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Package!nsURI // Pivot.ecore::pivot::Package::nsURI http://www.eclipse.org/ocl/3.1.0/Pivot!Package!nsURI
-		Property symbol_183 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Package!ownedPrecedence // Pivot.ecore::pivot::Package::ownedPrecedence http://www.eclipse.org/ocl/3.1.0/Pivot!Package!ownedPrecedence
-		Property symbol_184 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Package!ownedType // Pivot.ecore::pivot::Package::ownedType http://www.eclipse.org/ocl/3.1.0/Pivot!Package!ownedType
-		
-		Class symbol_185 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!PackageableElement
-		
-		Class symbol_186 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Parameter
-		Property symbol_187 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Parameter!Iteration // Pivot.ecore::pivot::Parameter::Iteration http://www.eclipse.org/ocl/3.1.0/Pivot!Parameter!Iteration
-		Property symbol_188 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Parameter!Variable // Pivot.ecore::pivot::Parameter::Variable http://www.eclipse.org/ocl/3.1.0/Pivot!Parameter!Variable
-		Property symbol_189 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Parameter!operation // Pivot.ecore::pivot::Parameter::operation http://www.eclipse.org/ocl/3.1.0/Pivot!Parameter!operation
-		
-		Class symbol_190 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-		Property symbol_191 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement!TemplateParameter // Pivot.ecore::pivot::ParameterableElement::TemplateParameter http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement!TemplateParameter
-		Property symbol_192 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement!TemplateParameterSubstitution // Pivot.ecore::pivot::ParameterableElement::TemplateParameterSubstitution http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement!TemplateParameterSubstitution
-		Property symbol_193 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement!owningTemplateParameter // Pivot.ecore::pivot::ParameterableElement::owningTemplateParameter http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement!owningTemplateParameter
-		Property symbol_194 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement!templateParameter // Pivot.ecore::pivot::ParameterableElement::templateParameter http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement!templateParameter
-		
-		Class symbol_195 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Pivotable
-		
-		Class symbol_196 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Precedence
-		Property symbol_197 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Precedence!Operation // Pivot.ecore::pivot::Precedence::Operation http://www.eclipse.org/ocl/3.1.0/Pivot!Precedence!Operation
-		Property symbol_198 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Precedence!Package // Pivot.ecore::pivot::Precedence::Package http://www.eclipse.org/ocl/3.1.0/Pivot!Precedence!Package
-		Property symbol_199 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Precedence!associativity // Pivot.ecore::pivot::Precedence::associativity http://www.eclipse.org/ocl/3.1.0/Pivot!Precedence!associativity
-		Property symbol_200 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Precedence!order // Pivot.ecore::pivot::Precedence::order http://www.eclipse.org/ocl/3.1.0/Pivot!Precedence!order
-		
-		Class symbol_201 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!PrimitiveLiteralExp
-		
-		Class symbol_202 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!PrimitiveType
-		
-		Class symbol_203 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property
-		Property symbol_204 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!ConstructorPart // Pivot.ecore::pivot::Property::ConstructorPart http://www.eclipse.org/ocl/3.1.0/Pivot!Property!ConstructorPart
-		Property symbol_205 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!NavigationCallExp // Pivot.ecore::pivot::Property::NavigationCallExp http://www.eclipse.org/ocl/3.1.0/Pivot!Property!NavigationCallExp
-		Property symbol_206 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!Property // Pivot.ecore::pivot::Property::Property http://www.eclipse.org/ocl/3.1.0/Pivot!Property!Property
-		Property symbol_207 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!PropertyCallExp // Pivot.ecore::pivot::Property::PropertyCallExp http://www.eclipse.org/ocl/3.1.0/Pivot!Property!PropertyCallExp
-		Property symbol_208 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!association // Pivot.ecore::pivot::Property::association http://www.eclipse.org/ocl/3.1.0/Pivot!Property!association
-		Property symbol_209 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!class // Pivot.ecore::pivot::Property::class http://www.eclipse.org/ocl/3.1.0/Pivot!Property!class
-		Property symbol_210 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!default // Pivot.ecore::pivot::Property::default http://www.eclipse.org/ocl/3.1.0/Pivot!Property!default
-		Property symbol_211 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!implicit // Pivot.ecore::pivot::Property::implicit http://www.eclipse.org/ocl/3.1.0/Pivot!Property!implicit
-		Property symbol_212 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isComposite // Pivot.ecore::pivot::Property::isComposite http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isComposite
-		Property symbol_213 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isDerived // Pivot.ecore::pivot::Property::isDerived http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isDerived
-		Property symbol_214 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isID // Pivot.ecore::pivot::Property::isID http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isID
-		Property symbol_215 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isReadOnly // Pivot.ecore::pivot::Property::isReadOnly http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isReadOnly
-		Property symbol_216 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isResolveProxies // Pivot.ecore::pivot::Property::isResolveProxies http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isResolveProxies
-		Property symbol_217 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isTransient // Pivot.ecore::pivot::Property::isTransient http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isTransient
-		Property symbol_218 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isUnsettable // Pivot.ecore::pivot::Property::isUnsettable http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isUnsettable
-		Property symbol_219 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isVolatile // Pivot.ecore::pivot::Property::isVolatile http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isVolatile
-		Property symbol_220 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!keys // Pivot.ecore::pivot::Property::keys http://www.eclipse.org/ocl/3.1.0/Pivot!Property!keys
-		Property symbol_221 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!opposite // Pivot.ecore::pivot::Property::opposite http://www.eclipse.org/ocl/3.1.0/Pivot!Property!opposite
-		Property symbol_222 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!owningType // Pivot.ecore::pivot::Property::owningType http://www.eclipse.org/ocl/3.1.0/Pivot!Property!owningType
-		
-		Class symbol_223 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!PropertyCallExp
-		Property symbol_224 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!PropertyCallExp!referredProperty // Pivot.ecore::pivot::PropertyCallExp::referredProperty http://www.eclipse.org/ocl/3.1.0/Pivot!PropertyCallExp!referredProperty
-		
-		PrimitiveType symbol_225 = standardLibrary.getRealType(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Real
-		Class symbol_226 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!RealLiteralExp
-		Property symbol_227 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!RealLiteralExp!realSymbol // Pivot.ecore::pivot::RealLiteralExp::realSymbol http://www.eclipse.org/ocl/3.1.0/Pivot!RealLiteralExp!realSymbol
-		
-		Class symbol_228 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!SelfType
-		
-		Class symbol_229 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!SendSignalAction
-		Property symbol_230 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!SendSignalAction!MessageExp // Pivot.ecore::pivot::SendSignalAction::MessageExp http://www.eclipse.org/ocl/3.1.0/Pivot!SendSignalAction!MessageExp
-		Property symbol_231 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!SendSignalAction!signal // Pivot.ecore::pivot::SendSignalAction::signal http://www.eclipse.org/ocl/3.1.0/Pivot!SendSignalAction!signal
-		
-		Class symbol_232 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!SequenceType
-		
-		Class symbol_233 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!SetType
-		
-		Class symbol_234 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Signal
-		Property symbol_235 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Signal!MessageType // Pivot.ecore::pivot::Signal::MessageType http://www.eclipse.org/ocl/3.1.0/Pivot!Signal!MessageType
-		Property symbol_236 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Signal!SendSignalAction // Pivot.ecore::pivot::Signal::SendSignalAction http://www.eclipse.org/ocl/3.1.0/Pivot!Signal!SendSignalAction
-		
-		Class symbol_237 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!State
-		Property symbol_238 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!State!StateExp // Pivot.ecore::pivot::State::StateExp http://www.eclipse.org/ocl/3.1.0/Pivot!State!StateExp
-		
-		Class symbol_239 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!StateExp
-		Property symbol_240 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!StateExp!referredState // Pivot.ecore::pivot::StateExp::referredState http://www.eclipse.org/ocl/3.1.0/Pivot!StateExp!referredState
-		
-		PrimitiveType symbol_241 = standardLibrary.getStringType(); // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-		Class symbol_242 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!StringLiteralExp
-		Property symbol_243 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!StringLiteralExp!stringSymbol // Pivot.ecore::pivot::StringLiteralExp::stringSymbol http://www.eclipse.org/ocl/3.1.0/Pivot!StringLiteralExp!stringSymbol
-		
-		Class symbol_244 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateBinding
-		Property symbol_245 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateBinding!boundElement // Pivot.ecore::pivot::TemplateBinding::boundElement http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateBinding!boundElement
-		Property symbol_246 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateBinding!parameterSubstitution // Pivot.ecore::pivot::TemplateBinding::parameterSubstitution http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateBinding!parameterSubstitution
-		Property symbol_247 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateBinding!signature // Pivot.ecore::pivot::TemplateBinding::signature http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateBinding!signature
-		
-		Class symbol_248 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter
-		Property symbol_249 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter!TemplateParameterSubstitution // Pivot.ecore::pivot::TemplateParameter::TemplateParameterSubstitution http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter!TemplateParameterSubstitution
-		Property symbol_250 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter!TemplateSignature // Pivot.ecore::pivot::TemplateParameter::TemplateSignature http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter!TemplateSignature
-		Property symbol_251 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter!default // Pivot.ecore::pivot::TemplateParameter::default http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter!default
-		Property symbol_252 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter!ownedDefault // Pivot.ecore::pivot::TemplateParameter::ownedDefault http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter!ownedDefault
-		Property symbol_253 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter!ownedParameteredElement // Pivot.ecore::pivot::TemplateParameter::ownedParameteredElement http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter!ownedParameteredElement
-		Property symbol_254 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter!parameteredElement // Pivot.ecore::pivot::TemplateParameter::parameteredElement http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter!parameteredElement
-		Property symbol_255 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter!signature // Pivot.ecore::pivot::TemplateParameter::signature http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter!signature
-		
-		Class symbol_256 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterSubstitution
-		Property symbol_257 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterSubstitution!actual // Pivot.ecore::pivot::TemplateParameterSubstitution::actual http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterSubstitution!actual
-		Property symbol_258 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterSubstitution!formal // Pivot.ecore::pivot::TemplateParameterSubstitution::formal http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterSubstitution!formal
-		Property symbol_259 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterSubstitution!ownedActual // Pivot.ecore::pivot::TemplateParameterSubstitution::ownedActual http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterSubstitution!ownedActual
-		Property symbol_260 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterSubstitution!templateBinding // Pivot.ecore::pivot::TemplateParameterSubstitution::templateBinding http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterSubstitution!templateBinding
-		
-		Class symbol_261 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterType
-		Property symbol_262 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterType!specification // Pivot.ecore::pivot::TemplateParameterType::specification http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterType!specification
-		
-		Class symbol_263 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature
-		Property symbol_264 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature!TemplateBinding // Pivot.ecore::pivot::TemplateSignature::TemplateBinding http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature!TemplateBinding
-		Property symbol_265 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature!ownedParameter // Pivot.ecore::pivot::TemplateSignature::ownedParameter http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature!ownedParameter
-		Property symbol_266 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature!parameter // Pivot.ecore::pivot::TemplateSignature::parameter http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature!parameter
-		Property symbol_267 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature!template // Pivot.ecore::pivot::TemplateSignature::template http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature!template
-		
-		Class symbol_268 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement
-		Property symbol_269 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement!ownedTemplateSignature // Pivot.ecore::pivot::TemplateableElement::ownedTemplateSignature http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement!ownedTemplateSignature
-		Property symbol_270 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement!templateBinding // Pivot.ecore::pivot::TemplateableElement::templateBinding http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement!templateBinding
-		Property symbol_271 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement!unspecializedElement // Pivot.ecore::pivot::TemplateableElement::unspecializedElement http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement!unspecializedElement
-		
-		DataType symbol_272 = PivotFactory.eINSTANCE.createDataType(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Throwable
-		
-		Class symbol_273 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralExp
-		Property symbol_274 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralExp!part // Pivot.ecore::pivot::TupleLiteralExp::part http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralExp!part
-		
-		Class symbol_275 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralPart
-		Property symbol_276 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralPart!TupleLiteralExp // Pivot.ecore::pivot::TupleLiteralPart::TupleLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralPart!TupleLiteralExp
-		Property symbol_277 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralPart!initExpression // Pivot.ecore::pivot::TupleLiteralPart::initExpression http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralPart!initExpression
-		
-		Class symbol_278 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TupleType
-		
-		Class symbol_279 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-		Property symbol_280 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!ClassifierType // Pivot.ecore::pivot::Type::ClassifierType http://www.eclipse.org/ocl/3.1.0/Pivot!Type!ClassifierType
-		Property symbol_281 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!CollectionType // Pivot.ecore::pivot::Type::CollectionType http://www.eclipse.org/ocl/3.1.0/Pivot!Type!CollectionType
-		Property symbol_282 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!DataType // Pivot.ecore::pivot::Type::DataType http://www.eclipse.org/ocl/3.1.0/Pivot!Type!DataType
-		Property symbol_283 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!LambdaType // Pivot.ecore::pivot::Type::LambdaType http://www.eclipse.org/ocl/3.1.0/Pivot!Type!LambdaType
-		Property symbol_284 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!Operation // Pivot.ecore::pivot::Type::Operation http://www.eclipse.org/ocl/3.1.0/Pivot!Type!Operation
-		Property symbol_285 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!Type // Pivot.ecore::pivot::Type::Type http://www.eclipse.org/ocl/3.1.0/Pivot!Type!Type
-		Property symbol_286 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!TypeExp // Pivot.ecore::pivot::Type::TypeExp http://www.eclipse.org/ocl/3.1.0/Pivot!Type!TypeExp
-		Property symbol_287 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!TypeTemplateParameter // Pivot.ecore::pivot::Type::TypeTemplateParameter http://www.eclipse.org/ocl/3.1.0/Pivot!Type!TypeTemplateParameter
-		Property symbol_288 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!TypedElement // Pivot.ecore::pivot::Type::TypedElement http://www.eclipse.org/ocl/3.1.0/Pivot!Type!TypedElement
-		Property symbol_289 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!UnspecifiedType // Pivot.ecore::pivot::Type::UnspecifiedType http://www.eclipse.org/ocl/3.1.0/Pivot!Type!UnspecifiedType
-		Property symbol_290 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!instanceClassName // Pivot.ecore::pivot::Type::instanceClassName http://www.eclipse.org/ocl/3.1.0/Pivot!Type!instanceClassName
-		Property symbol_291 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!ownedAttribute // Pivot.ecore::pivot::Type::ownedAttribute http://www.eclipse.org/ocl/3.1.0/Pivot!Type!ownedAttribute
-		Property symbol_292 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!ownedOperation // Pivot.ecore::pivot::Type::ownedOperation http://www.eclipse.org/ocl/3.1.0/Pivot!Type!ownedOperation
-		Property symbol_293 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!package // Pivot.ecore::pivot::Type::package http://www.eclipse.org/ocl/3.1.0/Pivot!Type!package
-		Property symbol_294 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!superClass // Pivot.ecore::pivot::Type::superClass http://www.eclipse.org/ocl/3.1.0/Pivot!Type!superClass
-		
-		Class symbol_295 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypeExp
-		Property symbol_296 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypeExp!referredType // Pivot.ecore::pivot::TypeExp::referredType http://www.eclipse.org/ocl/3.1.0/Pivot!TypeExp!referredType
-		
-		Class symbol_297 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypeTemplateParameter
-		Property symbol_298 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypeTemplateParameter!allowSubstitutable // Pivot.ecore::pivot::TypeTemplateParameter::allowSubstitutable http://www.eclipse.org/ocl/3.1.0/Pivot!TypeTemplateParameter!allowSubstitutable
-		Property symbol_299 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypeTemplateParameter!constrainingType // Pivot.ecore::pivot::TypeTemplateParameter::constrainingType http://www.eclipse.org/ocl/3.1.0/Pivot!TypeTemplateParameter!constrainingType
-		
-		Class symbol_300 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedElement
-		Property symbol_301 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedElement!type // Pivot.ecore::pivot::TypedElement::type http://www.eclipse.org/ocl/3.1.0/Pivot!TypedElement!type
-		
-		Class symbol_302 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedMultiplicityElement
-		
-		PrimitiveType symbol_303 = standardLibrary.getUnlimitedNaturalType(); // http://www.eclipse.org/ocl/3.1.0/Pivot!UnlimitedNatural
-		Class symbol_304 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!UnlimitedNaturalLiteralExp
-		Property symbol_305 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!UnlimitedNaturalLiteralExp!unlimitedNaturalSymbol // Pivot.ecore::pivot::UnlimitedNaturalLiteralExp::unlimitedNaturalSymbol http://www.eclipse.org/ocl/3.1.0/Pivot!UnlimitedNaturalLiteralExp!unlimitedNaturalSymbol
-		
-		Class symbol_306 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!UnspecifiedType
-		Property symbol_307 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!UnspecifiedType!lowerBound // Pivot.ecore::pivot::UnspecifiedType::lowerBound http://www.eclipse.org/ocl/3.1.0/Pivot!UnspecifiedType!lowerBound
-		Property symbol_308 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!UnspecifiedType!upperBound // Pivot.ecore::pivot::UnspecifiedType::upperBound http://www.eclipse.org/ocl/3.1.0/Pivot!UnspecifiedType!upperBound
-		
-		Class symbol_309 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!UnspecifiedValueExp
-		
-		Class symbol_310 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification
-		Property symbol_311 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification!Constraint // Pivot.ecore::pivot::ValueSpecification::Constraint http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification!Constraint
-		
-		Class symbol_312 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable
-		Property symbol_313 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable!ExpressionInOcl // Pivot.ecore::pivot::Variable::ExpressionInOcl http://www.eclipse.org/ocl/3.1.0/Pivot!Variable!ExpressionInOcl
-		Property symbol_314 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable!IterateExp // Pivot.ecore::pivot::Variable::IterateExp http://www.eclipse.org/ocl/3.1.0/Pivot!Variable!IterateExp
-		Property symbol_315 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable!LetExp // Pivot.ecore::pivot::Variable::LetExp http://www.eclipse.org/ocl/3.1.0/Pivot!Variable!LetExp
-		Property symbol_316 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable!LoopExp // Pivot.ecore::pivot::Variable::LoopExp http://www.eclipse.org/ocl/3.1.0/Pivot!Variable!LoopExp
-		Property symbol_317 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable!implicit // Pivot.ecore::pivot::Variable::implicit http://www.eclipse.org/ocl/3.1.0/Pivot!Variable!implicit
-		Property symbol_318 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable!initExpression // Pivot.ecore::pivot::Variable::initExpression http://www.eclipse.org/ocl/3.1.0/Pivot!Variable!initExpression
-		Property symbol_319 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable!representedParameter // Pivot.ecore::pivot::Variable::representedParameter http://www.eclipse.org/ocl/3.1.0/Pivot!Variable!representedParameter
-		
-		Class symbol_320 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!VariableDeclaration
-		Property symbol_321 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!VariableDeclaration!VariableExp // Pivot.ecore::pivot::VariableDeclaration::VariableExp http://www.eclipse.org/ocl/3.1.0/Pivot!VariableDeclaration!VariableExp
-		
-		Class symbol_322 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!VariableExp
-		Property symbol_323 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!VariableExp!implicit // Pivot.ecore::pivot::VariableExp::implicit http://www.eclipse.org/ocl/3.1.0/Pivot!VariableExp!implicit
-		Property symbol_324 = PivotFactory.eINSTANCE.createProperty(); // http://www.eclipse.org/ocl/3.1.0/Pivot!VariableExp!referredVariable // Pivot.ecore::pivot::VariableExp::referredVariable http://www.eclipse.org/ocl/3.1.0/Pivot!VariableExp!referredVariable
-		
-		Class symbol_325 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Visitable
-		
-		Class symbol_326 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Visitor{R,C}
-		TemplateSignature symbol_327 = PivotFactory.eINSTANCE.createTemplateSignature(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Visitor{R,C}!
-		TypeTemplateParameter symbol_328 = PivotFactory.eINSTANCE.createTypeTemplateParameter();
-		Class symbol_329 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Visitor{R,C}?R
-		TypeTemplateParameter symbol_330 = PivotFactory.eINSTANCE.createTypeTemplateParameter();
-		Class symbol_331 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Visitor{R,C}?C
-		
-		
-		Class symbol_332 = PivotFactory.eINSTANCE.createClass(); // http://www.eclipse.org/ocl/3.1.0/Pivot!VoidType
-		
+		protected Contents(PivotStandardLibrary standardLibrary) {
+			super(standardLibrary);
+		}
 
-		symbol_0.setName("pivot");
-		symbol_0.setNsPrefix("pivot");
-		symbol_0.setNsURI("http://www.eclipse.org/ocl/3.1.0/Pivot");
-		//
-		// Pivot.ecore::pivot::Annotation http://www.eclipse.org/ocl/3.1.0/Pivot!Annotation
-		//
-		symbol_1.setName("Annotation");
-		symbol_1.getSuperClasses().add(symbol_133); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		{ // Pivot.ecore::pivot::Annotation::NamedElement
-			symbol_2.setName("NamedElement");
-			symbol_2.setType(symbol_133);  // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-			symbol_2.setLower(BigInteger.valueOf(0));
-			
-			symbol_2.setImplicit(true);
-			symbol_2.setIsResolveProxies(true);
-			symbol_2.setOpposite(symbol_136);
-			
-			symbol_1.getOwnedAttributes().add(symbol_2);
-		}
-		{ // Pivot.ecore::pivot::Annotation::ownedContent
-			symbol_3.setName("ownedContent");
-			symbol_3.setType(symbol_63);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-			symbol_3.setLower(BigInteger.valueOf(0));
-			symbol_3.setUpper(BigInteger.valueOf(-1));
-			symbol_3.setIsOrdered(true);
-			
-			symbol_3.setIsComposite(true);
-			symbol_3.setIsResolveProxies(true);
-			
-			symbol_1.getOwnedAttributes().add(symbol_3);
-		}
-		{ // Pivot.ecore::pivot::Annotation::ownedDetail
-			symbol_4.setName("ownedDetail");
-			symbol_4.setType(symbol_60);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Detail
-			symbol_4.setLower(BigInteger.valueOf(0));
-			symbol_4.setUpper(BigInteger.valueOf(-1));
-			symbol_4.setIsOrdered(true);
-			
-			symbol_4.setIsComposite(true);
-			symbol_4.setIsResolveProxies(true);
-			symbol_4.setOpposite(symbol_61);
-			
-			symbol_1.getOwnedAttributes().add(symbol_4);
-		}
-		{ // Pivot.ecore::pivot::Annotation::reference
-			symbol_5.setName("reference");
-			symbol_5.setType(symbol_63);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-			symbol_5.setLower(BigInteger.valueOf(0));
-			symbol_5.setUpper(BigInteger.valueOf(-1));
-			symbol_5.setIsOrdered(true);
-			
-			symbol_5.setIsResolveProxies(true);
-			symbol_5.setOpposite(symbol_64);
-			
-			symbol_1.getOwnedAttributes().add(symbol_5);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_1); // http://www.eclipse.org/ocl/3.1.0/Pivot!Annotation
-		//
-		// Pivot.ecore::pivot::AnyType http://www.eclipse.org/ocl/3.1.0/Pivot!AnyType
-		//
-		symbol_6.setName("AnyType");
-		symbol_6.getSuperClasses().add(symbol_23); // http://www.eclipse.org/ocl/3.1.0/Pivot!Class
-		
-		symbol_0.getOwnedTypes().add(symbol_6); // http://www.eclipse.org/ocl/3.1.0/Pivot!AnyType
-		//
-		// Pivot.ecore::pivot::AssociationClass http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClass
-		//
-		symbol_7.setName("AssociationClass");
-		symbol_7.getSuperClasses().add(symbol_23); // http://www.eclipse.org/ocl/3.1.0/Pivot!Class
-		{ // Pivot.ecore::pivot::AssociationClass::AssociationClassCallExp
-			symbol_8.setName("AssociationClassCallExp");
-			symbol_8.setType(symbol_10);  // http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClassCallExp
-			symbol_8.setLower(BigInteger.valueOf(0));
-			symbol_8.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_8.setImplicit(true);
-			symbol_8.setIsResolveProxies(true);
-			symbol_8.setOpposite(symbol_11);
-			
-			symbol_7.getOwnedAttributes().add(symbol_8);
-		}
-		{ // Pivot.ecore::pivot::AssociationClass::unownedAttribute
-			symbol_9.setName("unownedAttribute");
-			symbol_9.setType(symbol_203);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Property
-			symbol_9.setLower(BigInteger.valueOf(0));
-			symbol_9.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_9.setIsResolveProxies(true);
-			symbol_9.setOpposite(symbol_208);
-			
-			symbol_7.getOwnedAttributes().add(symbol_9);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_7); // http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClass
-		//
-		// Pivot.ecore::pivot::AssociationClassCallExp http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClassCallExp
-		//
-		symbol_10.setName("AssociationClassCallExp");
-		symbol_10.getSuperClasses().add(symbol_139); // http://www.eclipse.org/ocl/3.1.0/Pivot!NavigationCallExp
-		{ // Pivot.ecore::pivot::AssociationClassCallExp::referredAssociationClass
-			symbol_11.setName("referredAssociationClass");
-			symbol_11.setType(symbol_7);  // http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClass
-			symbol_11.setLower(BigInteger.valueOf(0));
-			
-			symbol_11.setIsResolveProxies(true);
-			symbol_11.setOpposite(symbol_8);
-			
-			symbol_10.getOwnedAttributes().add(symbol_11);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_10); // http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClassCallExp
-		//
-		// Pivot.ecore::pivot::AssociativityKind http://www.eclipse.org/ocl/3.1.0/Pivot!AssociativityKind
-		//
-		symbol_12.setName("AssociativityKind");
-		{
-			EnumerationLiteral symbol_333 = PivotFactory.eINSTANCE.createEnumerationLiteral(); // Pivot.ecore::pivot::AssociativityKind::Left http://www.eclipse.org/ocl/3.1.0/Pivot!AssociativityKind!Left
-			symbol_333.setName("Left");
-			symbol_12.getOwnedLiterals().add(symbol_333);
-			EnumerationLiteral symbol_334 = PivotFactory.eINSTANCE.createEnumerationLiteral(); // Pivot.ecore::pivot::AssociativityKind::Right http://www.eclipse.org/ocl/3.1.0/Pivot!AssociativityKind!Right
-			symbol_334.setName("Right");
-			symbol_12.getOwnedLiterals().add(symbol_334);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_12); // http://www.eclipse.org/ocl/3.1.0/Pivot!AssociativityKind
-		//
-		// Pivot.ecore::pivot::BagType http://www.eclipse.org/ocl/3.1.0/Pivot!BagType
-		//
-		symbol_13.setName("BagType");
-		symbol_13.getSuperClasses().add(symbol_39); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionType
-		
-		symbol_0.getOwnedTypes().add(symbol_13); // http://www.eclipse.org/ocl/3.1.0/Pivot!BagType
-		//
-		// Pivot.ecore::pivot::BooleanLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!BooleanLiteralExp
-		//
-		symbol_15.setName("BooleanLiteralExp");
-		symbol_15.getSuperClasses().add(symbol_201); // http://www.eclipse.org/ocl/3.1.0/Pivot!PrimitiveLiteralExp
-		{ // Pivot.ecore::pivot::BooleanLiteralExp::booleanSymbol
-			symbol_16.setName("booleanSymbol");
-			symbol_16.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_16.setIsResolveProxies(true);
-			symbol_16.setIsUnsettable(true);
-			
-			symbol_15.getOwnedAttributes().add(symbol_16);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_15); // http://www.eclipse.org/ocl/3.1.0/Pivot!BooleanLiteralExp
-		//
-		// Pivot.ecore::pivot::CallExp http://www.eclipse.org/ocl/3.1.0/Pivot!CallExp
-		//
-		symbol_17.setName("CallExp");
-		symbol_17.getSuperClasses().add(symbol_145); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-		{ // Pivot.ecore::pivot::CallExp::implicit
-			symbol_18.setName("implicit");
-			symbol_18.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			symbol_18.setLower(BigInteger.valueOf(0));
-			
-			symbol_18.setIsResolveProxies(true);
-			
-			symbol_17.getOwnedAttributes().add(symbol_18);
-		}
-		{ // Pivot.ecore::pivot::CallExp::source
-			symbol_19.setName("source");
-			symbol_19.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			symbol_19.setLower(BigInteger.valueOf(0));
-			
-			symbol_19.setIsComposite(true);
-			symbol_19.setIsResolveProxies(true);
-			symbol_19.setOpposite(symbol_146);
-			
-			symbol_17.getOwnedAttributes().add(symbol_19);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_17); // http://www.eclipse.org/ocl/3.1.0/Pivot!CallExp
-		//
-		// Pivot.ecore::pivot::CallOperationAction http://www.eclipse.org/ocl/3.1.0/Pivot!CallOperationAction
-		//
-		symbol_20.setName("CallOperationAction");
-		symbol_20.getSuperClasses().add(symbol_133); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		{ // Pivot.ecore::pivot::CallOperationAction::MessageExp
-			symbol_21.setName("MessageExp");
-			symbol_21.setType(symbol_118);  // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageExp
-			symbol_21.setLower(BigInteger.valueOf(0));
-			
-			symbol_21.setImplicit(true);
-			symbol_21.setIsResolveProxies(true);
-			symbol_21.setOpposite(symbol_120);
-			
-			symbol_20.getOwnedAttributes().add(symbol_21);
-		}
-		{ // Pivot.ecore::pivot::CallOperationAction::operation
-			symbol_22.setName("operation");
-			symbol_22.setType(symbol_164);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation
-			
-			symbol_22.setIsResolveProxies(true);
-			symbol_22.setOpposite(symbol_165);
-			
-			symbol_20.getOwnedAttributes().add(symbol_22);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_20); // http://www.eclipse.org/ocl/3.1.0/Pivot!CallOperationAction
-		//
-		// Pivot.ecore::pivot::Class http://www.eclipse.org/ocl/3.1.0/Pivot!Class
-		//
-		symbol_23.setName("Class");
-		symbol_23.getSuperClasses().add(symbol_279); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-		symbol_23.getSuperClasses().add(symbol_138); // http://www.eclipse.org/ocl/3.1.0/Pivot!Namespace
-		{ // Pivot.ecore::pivot::Class::isAbstract
-			symbol_24.setName("isAbstract");
-			symbol_24.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_24.setIsResolveProxies(true);
-			{
-				Comment symbol_335 = PivotFactory.eINSTANCE.createComment();
-				symbol_335.setBody("True when a class is abstract.");
-				symbol_24.getOwnedComments().add(symbol_335);
-			}
-			
-			symbol_23.getOwnedAttributes().add(symbol_24);
-		}
-		{ // Pivot.ecore::pivot::Class::isInterface
-			symbol_25.setName("isInterface");
-			symbol_25.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_25.setIsResolveProxies(true);
-			
-			symbol_23.getOwnedAttributes().add(symbol_25);
-		}
-		{
-			Comment symbol_336 = PivotFactory.eINSTANCE.createComment();
-			symbol_336.setBody("A class is a type that has objects as its instances.");
-			symbol_23.getOwnedComments().add(symbol_336);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_23); // http://www.eclipse.org/ocl/3.1.0/Pivot!Class
-		//
-		// Pivot.ecore::pivot::ClassifierType http://www.eclipse.org/ocl/3.1.0/Pivot!ClassifierType
-		//
-		symbol_26.setName("ClassifierType");
-		symbol_26.getSuperClasses().add(symbol_23); // http://www.eclipse.org/ocl/3.1.0/Pivot!Class
-		{ // Pivot.ecore::pivot::ClassifierType::instanceType
-			symbol_27.setName("instanceType");
-			symbol_27.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			
-			symbol_27.setIsResolveProxies(true);
-			symbol_27.setOpposite(symbol_280);
-			
-			symbol_26.getOwnedAttributes().add(symbol_27);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_26); // http://www.eclipse.org/ocl/3.1.0/Pivot!ClassifierType
-		//
-		// Pivot.ecore::pivot::CollectionItem http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionItem
-		//
-		symbol_28.setName("CollectionItem");
-		symbol_28.getSuperClasses().add(symbol_34); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralPart
-		{ // Pivot.ecore::pivot::CollectionItem::item
-			symbol_29.setName("item");
-			symbol_29.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			
-			symbol_29.setIsComposite(true);
-			symbol_29.setIsResolveProxies(true);
-			symbol_29.setOpposite(symbol_147);
-			
-			symbol_28.getOwnedAttributes().add(symbol_29);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_28); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionItem
-		//
-		// Pivot.ecore::pivot::CollectionKind http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionKind
-		//
-		symbol_30.setName("CollectionKind");
-		{
-			EnumerationLiteral symbol_337 = PivotFactory.eINSTANCE.createEnumerationLiteral(); // Pivot.ecore::pivot::CollectionKind::Collection http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionKind!Collection
-			symbol_337.setName("Collection");
-			symbol_30.getOwnedLiterals().add(symbol_337);
-			EnumerationLiteral symbol_338 = PivotFactory.eINSTANCE.createEnumerationLiteral(); // Pivot.ecore::pivot::CollectionKind::Set http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionKind!Set
-			symbol_338.setName("Set");
-			symbol_30.getOwnedLiterals().add(symbol_338);
-			EnumerationLiteral symbol_339 = PivotFactory.eINSTANCE.createEnumerationLiteral(); // Pivot.ecore::pivot::CollectionKind::OrderedSet http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionKind!OrderedSet
-			symbol_339.setName("OrderedSet");
-			symbol_30.getOwnedLiterals().add(symbol_339);
-			EnumerationLiteral symbol_340 = PivotFactory.eINSTANCE.createEnumerationLiteral(); // Pivot.ecore::pivot::CollectionKind::Bag http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionKind!Bag
-			symbol_340.setName("Bag");
-			symbol_30.getOwnedLiterals().add(symbol_340);
-			EnumerationLiteral symbol_341 = PivotFactory.eINSTANCE.createEnumerationLiteral(); // Pivot.ecore::pivot::CollectionKind::Sequence http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionKind!Sequence
-			symbol_341.setName("Sequence");
-			symbol_30.getOwnedLiterals().add(symbol_341);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_30); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionKind
-		//
-		// Pivot.ecore::pivot::CollectionLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralExp
-		//
-		symbol_31.setName("CollectionLiteralExp");
-		symbol_31.getSuperClasses().add(symbol_113); // http://www.eclipse.org/ocl/3.1.0/Pivot!LiteralExp
-		{ // Pivot.ecore::pivot::CollectionLiteralExp::kind
-			symbol_32.setName("kind");
-			symbol_32.setType(symbol_30);  // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionKind
-			
-			symbol_32.setIsResolveProxies(true);
-			
-			symbol_31.getOwnedAttributes().add(symbol_32);
-		}
-		{ // Pivot.ecore::pivot::CollectionLiteralExp::part
-			symbol_33.setName("part");
-			symbol_33.setType(symbol_34);  // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralPart
-			symbol_33.setLower(BigInteger.valueOf(0));
-			symbol_33.setUpper(BigInteger.valueOf(-1));
-			symbol_33.setIsOrdered(true);
-			
-			symbol_33.setIsComposite(true);
-			symbol_33.setIsResolveProxies(true);
-			symbol_33.setOpposite(symbol_35);
-			
-			symbol_31.getOwnedAttributes().add(symbol_33);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_31); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralExp
-		//
-		// Pivot.ecore::pivot::CollectionLiteralPart http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralPart
-		//
-		symbol_34.setName("CollectionLiteralPart");
-		symbol_34.getSuperClasses().add(symbol_300); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedElement
-		{ // Pivot.ecore::pivot::CollectionLiteralPart::CollectionLiteralExp
-			symbol_35.setName("CollectionLiteralExp");
-			symbol_35.setType(symbol_31);  // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralExp
-			symbol_35.setLower(BigInteger.valueOf(0));
-			
-			symbol_35.setImplicit(true);
-			symbol_35.setIsResolveProxies(true);
-			symbol_35.setOpposite(symbol_33);
-			
-			symbol_34.getOwnedAttributes().add(symbol_35);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_34); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralPart
-		//
-		// Pivot.ecore::pivot::CollectionRange http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionRange
-		//
-		symbol_36.setName("CollectionRange");
-		symbol_36.getSuperClasses().add(symbol_34); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionLiteralPart
-		{ // Pivot.ecore::pivot::CollectionRange::first
-			symbol_37.setName("first");
-			symbol_37.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			
-			symbol_37.setIsComposite(true);
-			symbol_37.setIsResolveProxies(true);
-			
-			symbol_36.getOwnedAttributes().add(symbol_37);
-		}
-		{ // Pivot.ecore::pivot::CollectionRange::last
-			symbol_38.setName("last");
-			symbol_38.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			
-			symbol_38.setIsComposite(true);
-			symbol_38.setIsResolveProxies(true);
-			symbol_38.setOpposite(symbol_148);
-			
-			symbol_36.getOwnedAttributes().add(symbol_38);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_36); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionRange
-		//
-		// Pivot.ecore::pivot::CollectionType http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionType
-		//
-		symbol_39.setName("CollectionType");
-		symbol_39.getSuperClasses().add(symbol_57); // http://www.eclipse.org/ocl/3.1.0/Pivot!DataType
-		{ // Pivot.ecore::pivot::CollectionType::elementType
-			symbol_40.setName("elementType");
-			symbol_40.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			
-			symbol_40.setIsResolveProxies(true);
-			symbol_40.setOpposite(symbol_281);
-			
-			symbol_39.getOwnedAttributes().add(symbol_40);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_39); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionType
-		//
-		// Pivot.ecore::pivot::Comment http://www.eclipse.org/ocl/3.1.0/Pivot!Comment
-		//
-		symbol_41.setName("Comment");
-		symbol_41.getSuperClasses().add(symbol_63); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-		{ // Pivot.ecore::pivot::Comment::Element
-			symbol_42.setName("Element");
-			symbol_42.setType(symbol_63);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-			symbol_42.setLower(BigInteger.valueOf(0));
-			
-			symbol_42.setImplicit(true);
-			symbol_42.setIsResolveProxies(true);
-			symbol_42.setOpposite(symbol_67);
-			
-			symbol_41.getOwnedAttributes().add(symbol_42);
-		}
-		{ // Pivot.ecore::pivot::Comment::annotatedElement
-			symbol_43.setName("annotatedElement");
-			symbol_43.setType(symbol_63);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-			symbol_43.setLower(BigInteger.valueOf(0));
-			symbol_43.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_43.setIsResolveProxies(true);
-			symbol_43.setOpposite(symbol_65);
-			{
-				Comment symbol_342 = PivotFactory.eINSTANCE.createComment();
-				symbol_342.setBody("References the Element(s) being commented.");
-				symbol_43.getOwnedComments().add(symbol_342);
-			}
-			
-			symbol_41.getOwnedAttributes().add(symbol_43);
-		}
-		{ // Pivot.ecore::pivot::Comment::body
-			symbol_44.setName("body");
-			symbol_44.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			symbol_44.setLower(BigInteger.valueOf(0));
-			
-			symbol_44.setIsResolveProxies(true);
-			{
-				Comment symbol_343 = PivotFactory.eINSTANCE.createComment();
-				symbol_343.setBody("Specifies a string that is the comment.");
-				symbol_44.getOwnedComments().add(symbol_343);
-			}
-			
-			symbol_41.getOwnedAttributes().add(symbol_44);
-		}
-		{
-			Comment symbol_344 = PivotFactory.eINSTANCE.createComment();
-			symbol_344.setBody("A comment is a textual annotation that can be attached to a set of elements.");
-			symbol_41.getOwnedComments().add(symbol_344);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_41); // http://www.eclipse.org/ocl/3.1.0/Pivot!Comment
-		//
-		// Pivot.ecore::pivot::Constraint http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint
-		//
-		symbol_45.setName("Constraint");
-		symbol_45.getSuperClasses().add(symbol_133); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		{ // Pivot.ecore::pivot::Constraint::constrainedElement
-			symbol_46.setName("constrainedElement");
-			symbol_46.setType(symbol_63);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-			symbol_46.setLower(BigInteger.valueOf(0));
-			symbol_46.setUpper(BigInteger.valueOf(-1));
-			symbol_46.setIsOrdered(true);
-			
-			symbol_46.setIsResolveProxies(true);
-			symbol_46.setOpposite(symbol_66);
-			{
-				Comment symbol_345 = PivotFactory.eINSTANCE.createComment();
-				symbol_345.setBody("The ordered set of Elements referenced by this Constraint.");
-				symbol_46.getOwnedComments().add(symbol_345);
-			}
-			
-			symbol_45.getOwnedAttributes().add(symbol_46);
-		}
-		{ // Pivot.ecore::pivot::Constraint::context
-			symbol_47.setName("context");
-			symbol_47.setType(symbol_133);  // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-			symbol_47.setLower(BigInteger.valueOf(0));
-			
-			symbol_47.setIsResolveProxies(true);
-			symbol_47.setOpposite(symbol_137);
-			
-			symbol_45.getOwnedAttributes().add(symbol_47);
-		}
-		{ // Pivot.ecore::pivot::Constraint::isCallable
-			symbol_48.setName("isCallable");
-			symbol_48.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_48.setIsResolveProxies(true);
-			
-			symbol_45.getOwnedAttributes().add(symbol_48);
-		}
-		{ // Pivot.ecore::pivot::Constraint::specification
-			symbol_49.setName("specification");
-			symbol_49.setType(symbol_310);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification
-			
-			symbol_49.setIsComposite(true);
-			symbol_49.setIsResolveProxies(true);
-			symbol_49.setOpposite(symbol_311);
-			{
-				Comment symbol_346 = PivotFactory.eINSTANCE.createComment();
-				symbol_346.setBody("A condition that must be true when evaluated in order for the constraint to be satisfied.");
-				symbol_49.getOwnedComments().add(symbol_346);
-			}
-			
-			symbol_45.getOwnedAttributes().add(symbol_49);
-		}
-		{ // Pivot.ecore::pivot::Constraint::stereotype
-			symbol_50.setName("stereotype");
-			symbol_50.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			symbol_50.setLower(BigInteger.valueOf(0));
-			
-			symbol_50.setIsResolveProxies(true);
-			
-			symbol_45.getOwnedAttributes().add(symbol_50);
-		}
-		{
-			Comment symbol_347 = PivotFactory.eINSTANCE.createComment();
-			symbol_347.setBody("A constraint is a condition or restriction expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element.");
-			symbol_45.getOwnedComments().add(symbol_347);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_45); // http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint
-		//
-		// Pivot.ecore::pivot::ConstructorExp http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorExp
-		//
-		symbol_51.setName("ConstructorExp");
-		symbol_51.getSuperClasses().add(symbol_145); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-		{ // Pivot.ecore::pivot::ConstructorExp::part
-			symbol_52.setName("part");
-			symbol_52.setType(symbol_53);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorPart
-			symbol_52.setLower(BigInteger.valueOf(0));
-			symbol_52.setUpper(BigInteger.valueOf(-1));
-			symbol_52.setIsOrdered(true);
-			
-			symbol_52.setIsComposite(true);
-			symbol_52.setIsResolveProxies(true);
-			symbol_52.setOpposite(symbol_54);
-			
-			symbol_51.getOwnedAttributes().add(symbol_52);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_51); // http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorExp
-		//
-		// Pivot.ecore::pivot::ConstructorPart http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorPart
-		//
-		symbol_53.setName("ConstructorPart");
-		symbol_53.getSuperClasses().add(symbol_63); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-		{ // Pivot.ecore::pivot::ConstructorPart::ConstructorExp
-			symbol_54.setName("ConstructorExp");
-			symbol_54.setType(symbol_51);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorExp
-			symbol_54.setLower(BigInteger.valueOf(0));
-			
-			symbol_54.setImplicit(true);
-			symbol_54.setIsResolveProxies(true);
-			symbol_54.setOpposite(symbol_52);
-			
-			symbol_53.getOwnedAttributes().add(symbol_54);
-		}
-		{ // Pivot.ecore::pivot::ConstructorPart::initExpression
-			symbol_55.setName("initExpression");
-			symbol_55.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			
-			symbol_55.setIsComposite(true);
-			symbol_55.setIsResolveProxies(true);
-			symbol_55.setOpposite(symbol_149);
-			
-			symbol_53.getOwnedAttributes().add(symbol_55);
-		}
-		{ // Pivot.ecore::pivot::ConstructorPart::referredProperty
-			symbol_56.setName("referredProperty");
-			symbol_56.setType(symbol_203);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Property
-			
-			symbol_56.setIsResolveProxies(true);
-			symbol_56.setOpposite(symbol_204);
-			
-			symbol_53.getOwnedAttributes().add(symbol_56);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_53); // http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorPart
-		//
-		// Pivot.ecore::pivot::DataType http://www.eclipse.org/ocl/3.1.0/Pivot!DataType
-		//
-		symbol_57.setName("DataType");
-		symbol_57.getSuperClasses().add(symbol_23); // http://www.eclipse.org/ocl/3.1.0/Pivot!Class
-		{ // Pivot.ecore::pivot::DataType::behavioralType
-			symbol_58.setName("behavioralType");
-			symbol_58.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			symbol_58.setLower(BigInteger.valueOf(0));
-			
-			symbol_58.setIsResolveProxies(true);
-			symbol_58.setOpposite(symbol_282);
-			
-			symbol_57.getOwnedAttributes().add(symbol_58);
-		}
-		{ // Pivot.ecore::pivot::DataType::isSerializable
-			symbol_59.setName("isSerializable");
-			symbol_59.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_59.setIsResolveProxies(true);
-			
-			symbol_57.getOwnedAttributes().add(symbol_59);
-		}
-		{
-			Comment symbol_348 = PivotFactory.eINSTANCE.createComment();
-			symbol_348.setBody("DataType is an abstract class that acts as a common superclass for different kinds of data types.");
-			symbol_57.getOwnedComments().add(symbol_348);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_57); // http://www.eclipse.org/ocl/3.1.0/Pivot!DataType
-		//
-		// Pivot.ecore::pivot::Detail http://www.eclipse.org/ocl/3.1.0/Pivot!Detail
-		//
-		symbol_60.setName("Detail");
-		symbol_60.getSuperClasses().add(symbol_133); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		{ // Pivot.ecore::pivot::Detail::Annotation
-			symbol_61.setName("Annotation");
-			symbol_61.setType(symbol_1);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Annotation
-			symbol_61.setLower(BigInteger.valueOf(0));
-			
-			symbol_61.setImplicit(true);
-			symbol_61.setIsResolveProxies(true);
-			symbol_61.setOpposite(symbol_4);
-			
-			symbol_60.getOwnedAttributes().add(symbol_61);
-		}
-		{ // Pivot.ecore::pivot::Detail::value
-			symbol_62.setName("value");
-			symbol_62.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			symbol_62.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_62.setIsResolveProxies(true);
-			
-			symbol_60.getOwnedAttributes().add(symbol_62);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_60); // http://www.eclipse.org/ocl/3.1.0/Pivot!Detail
-		//
-		// Pivot.ecore::pivot::Element http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-		//
-		symbol_63.setName("Element");
-		symbol_63.getSuperClasses().add(symbol_325); // http://www.eclipse.org/ocl/3.1.0/Pivot!Visitable
-		{ // Pivot.ecore::pivot::Element::Annotation
-			symbol_64.setName("Annotation");
-			symbol_64.setType(symbol_1);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Annotation
-			symbol_64.setLower(BigInteger.valueOf(0));
-			symbol_64.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_64.setImplicit(true);
-			symbol_64.setIsResolveProxies(true);
-			
-			symbol_63.getOwnedAttributes().add(symbol_64);
-		}
-		{ // Pivot.ecore::pivot::Element::Comment
-			symbol_65.setName("Comment");
-			symbol_65.setType(symbol_41);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Comment
-			symbol_65.setLower(BigInteger.valueOf(0));
-			symbol_65.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_65.setImplicit(true);
-			symbol_65.setIsResolveProxies(true);
-			symbol_65.setOpposite(symbol_43);
-			
-			symbol_63.getOwnedAttributes().add(symbol_65);
-		}
-		{ // Pivot.ecore::pivot::Element::Constraint
-			symbol_66.setName("Constraint");
-			symbol_66.setType(symbol_45);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint
-			symbol_66.setLower(BigInteger.valueOf(0));
-			symbol_66.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_66.setImplicit(true);
-			symbol_66.setIsResolveProxies(true);
-			symbol_66.setOpposite(symbol_46);
-			
-			symbol_63.getOwnedAttributes().add(symbol_66);
-		}
-		{ // Pivot.ecore::pivot::Element::ownedComment
-			symbol_67.setName("ownedComment");
-			symbol_67.setType(symbol_41);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Comment
-			symbol_67.setLower(BigInteger.valueOf(0));
-			symbol_67.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_67.setIsComposite(true);
-			symbol_67.setIsResolveProxies(true);
-			symbol_67.setOpposite(symbol_42);
-			{
-				Comment symbol_349 = PivotFactory.eINSTANCE.createComment();
-				symbol_349.setBody("The Comments owned by this element.");
-				symbol_67.getOwnedComments().add(symbol_349);
-			}
-			
-			symbol_63.getOwnedAttributes().add(symbol_67);
-		}
-		{	// Pivot.ecore::pivot::Element::allOwnedElements()
-			Operation symbol_350 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element!allOwnedElements()
-			symbol_350.setName("allOwnedElements");
-			symbol_350.setType(symbol_63);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-			symbol_350.setLower(BigInteger.valueOf(0));
-			symbol_350.setUpper(BigInteger.valueOf(-1));
-			
-			
-			symbol_63.getOwnedOperations().add(symbol_350);
-		}
-		{
-			Comment symbol_351 = PivotFactory.eINSTANCE.createComment();
-			symbol_351.setBody("An element is a constituent of a model.");
-			symbol_63.getOwnedComments().add(symbol_351);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_63); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-		//
-		// Pivot.ecore::pivot::EnumLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!EnumLiteralExp
-		//
-		symbol_68.setName("EnumLiteralExp");
-		symbol_68.getSuperClasses().add(symbol_113); // http://www.eclipse.org/ocl/3.1.0/Pivot!LiteralExp
-		{ // Pivot.ecore::pivot::EnumLiteralExp::referredEnumLiteral
-			symbol_69.setName("referredEnumLiteral");
-			symbol_69.setType(symbol_72);  // http://www.eclipse.org/ocl/3.1.0/Pivot!EnumerationLiteral
-			symbol_69.setLower(BigInteger.valueOf(0));
-			
-			symbol_69.setIsResolveProxies(true);
-			symbol_69.setOpposite(symbol_73);
-			
-			symbol_68.getOwnedAttributes().add(symbol_69);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_68); // http://www.eclipse.org/ocl/3.1.0/Pivot!EnumLiteralExp
-		//
-		// Pivot.ecore::pivot::Enumeration http://www.eclipse.org/ocl/3.1.0/Pivot!Enumeration
-		//
-		symbol_70.setName("Enumeration");
-		symbol_70.getSuperClasses().add(symbol_57); // http://www.eclipse.org/ocl/3.1.0/Pivot!DataType
-		{ // Pivot.ecore::pivot::Enumeration::ownedLiteral
-			symbol_71.setName("ownedLiteral");
-			symbol_71.setType(symbol_72);  // http://www.eclipse.org/ocl/3.1.0/Pivot!EnumerationLiteral
-			symbol_71.setLower(BigInteger.valueOf(0));
-			symbol_71.setUpper(BigInteger.valueOf(-1));
-			symbol_71.setIsOrdered(true);
-			
-			symbol_71.setIsComposite(true);
-			symbol_71.setIsResolveProxies(true);
-			symbol_71.setOpposite(symbol_74);
-			{
-				Comment symbol_352 = PivotFactory.eINSTANCE.createComment();
-				symbol_352.setBody("The ordered set of literals for this Enumeration.");
-				symbol_71.getOwnedComments().add(symbol_352);
-			}
-			
-			symbol_70.getOwnedAttributes().add(symbol_71);
-		}
-		{
-			Comment symbol_353 = PivotFactory.eINSTANCE.createComment();
-			symbol_353.setBody("An enumeration defines a set of literals that can be used as its values.");
-			symbol_70.getOwnedComments().add(symbol_353);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_70); // http://www.eclipse.org/ocl/3.1.0/Pivot!Enumeration
-		//
-		// Pivot.ecore::pivot::EnumerationLiteral http://www.eclipse.org/ocl/3.1.0/Pivot!EnumerationLiteral
-		//
-		symbol_72.setName("EnumerationLiteral");
-		symbol_72.getSuperClasses().add(symbol_133); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		{ // Pivot.ecore::pivot::EnumerationLiteral::EnumLiteralExp
-			symbol_73.setName("EnumLiteralExp");
-			symbol_73.setType(symbol_68);  // http://www.eclipse.org/ocl/3.1.0/Pivot!EnumLiteralExp
-			symbol_73.setLower(BigInteger.valueOf(0));
-			symbol_73.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_73.setImplicit(true);
-			symbol_73.setIsResolveProxies(true);
-			symbol_73.setOpposite(symbol_69);
-			
-			symbol_72.getOwnedAttributes().add(symbol_73);
-		}
-		{ // Pivot.ecore::pivot::EnumerationLiteral::enumeration
-			symbol_74.setName("enumeration");
-			symbol_74.setType(symbol_70);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Enumeration
-			symbol_74.setLower(BigInteger.valueOf(0));
-			
-			symbol_74.setIsResolveProxies(true);
-			symbol_74.setOpposite(symbol_71);
-			{
-				Comment symbol_354 = PivotFactory.eINSTANCE.createComment();
-				symbol_354.setBody("The Enumeration that this EnumerationLiteral is a member of.");
-				symbol_74.getOwnedComments().add(symbol_354);
-			}
-			
-			symbol_72.getOwnedAttributes().add(symbol_74);
-		}
-		{ // Pivot.ecore::pivot::EnumerationLiteral::value
-			symbol_75.setName("value");
-			symbol_75.setType(symbol_92);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Integer
-			symbol_75.setLower(BigInteger.valueOf(0));
-			
-			symbol_75.setIsResolveProxies(true);
-			
-			symbol_72.getOwnedAttributes().add(symbol_75);
-		}
-		{
-			Comment symbol_355 = PivotFactory.eINSTANCE.createComment();
-			symbol_355.setBody("An enumeration literal is a value of an enumeration.");
-			symbol_72.getOwnedComments().add(symbol_355);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_72); // http://www.eclipse.org/ocl/3.1.0/Pivot!EnumerationLiteral
-		//
-		// Pivot.ecore::pivot::ExpressionInOcl http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl
-		//
-		symbol_76.setName("ExpressionInOcl");
-		symbol_76.getSuperClasses().add(symbol_159); // http://www.eclipse.org/ocl/3.1.0/Pivot!OpaqueExpression
-		{ // Pivot.ecore::pivot::ExpressionInOcl::bodyExpression
-			symbol_77.setName("bodyExpression");
-			symbol_77.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			
-			symbol_77.setIsComposite(true);
-			symbol_77.setIsResolveProxies(true);
-			
-			symbol_76.getOwnedAttributes().add(symbol_77);
-		}
-		{ // Pivot.ecore::pivot::ExpressionInOcl::contextVariable
-			symbol_78.setName("contextVariable");
-			symbol_78.setType(symbol_312);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable
-			symbol_78.setLower(BigInteger.valueOf(0));
-			
-			symbol_78.setIsComposite(true);
-			symbol_78.setIsResolveProxies(true);
-			symbol_78.setOpposite(symbol_313);
-			
-			symbol_76.getOwnedAttributes().add(symbol_78);
-		}
-		{ // Pivot.ecore::pivot::ExpressionInOcl::messageExpression
-			symbol_79.setName("messageExpression");
-			symbol_79.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			symbol_79.setLower(BigInteger.valueOf(0));
-			
-			symbol_79.setIsComposite(true);
-			symbol_79.setIsResolveProxies(true);
-			symbol_79.setOpposite(symbol_150);
-			
-			symbol_76.getOwnedAttributes().add(symbol_79);
-		}
-		{ // Pivot.ecore::pivot::ExpressionInOcl::parameterVariable
-			symbol_80.setName("parameterVariable");
-			symbol_80.setType(symbol_312);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable
-			symbol_80.setLower(BigInteger.valueOf(0));
-			symbol_80.setUpper(BigInteger.valueOf(-1));
-			symbol_80.setIsOrdered(true);
-			
-			symbol_80.setIsComposite(true);
-			symbol_80.setIsResolveProxies(true);
-			
-			symbol_76.getOwnedAttributes().add(symbol_80);
-		}
-		{ // Pivot.ecore::pivot::ExpressionInOcl::resultVariable
-			symbol_81.setName("resultVariable");
-			symbol_81.setType(symbol_312);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable
-			symbol_81.setLower(BigInteger.valueOf(0));
-			
-			symbol_81.setIsComposite(true);
-			symbol_81.setIsResolveProxies(true);
-			
-			symbol_76.getOwnedAttributes().add(symbol_81);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_76); // http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl
-		//
-		// Pivot.ecore::pivot::Feature http://www.eclipse.org/ocl/3.1.0/Pivot!Feature
-		//
-		symbol_82.setName("Feature");
-		symbol_82.getSuperClasses().add(symbol_302); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedMultiplicityElement
-		{ // Pivot.ecore::pivot::Feature::implementation
-			symbol_83.setName("implementation");
-			symbol_83.setType(symbol_112);  // http://www.eclipse.org/ocl/3.1.0/Pivot!LibraryFeature
-			symbol_83.setLower(BigInteger.valueOf(0));
-			
-			symbol_83.setIsResolveProxies(true);
-			symbol_83.setIsTransient(true);
-			
-			symbol_82.getOwnedAttributes().add(symbol_83);
-		}
-		{ // Pivot.ecore::pivot::Feature::implementationClass
-			symbol_84.setName("implementationClass");
-			symbol_84.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			symbol_84.setLower(BigInteger.valueOf(0));
-			
-			symbol_84.setIsResolveProxies(true);
-			
-			symbol_82.getOwnedAttributes().add(symbol_84);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_82); // http://www.eclipse.org/ocl/3.1.0/Pivot!Feature
-		//
-		// Pivot.ecore::pivot::FeatureCallExp http://www.eclipse.org/ocl/3.1.0/Pivot!FeatureCallExp
-		//
-		symbol_85.setName("FeatureCallExp");
-		symbol_85.getSuperClasses().add(symbol_17); // http://www.eclipse.org/ocl/3.1.0/Pivot!CallExp
-		{ // Pivot.ecore::pivot::FeatureCallExp::isPre
-			symbol_86.setName("isPre");
-			symbol_86.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_86.setIsResolveProxies(true);
-			
-			symbol_85.getOwnedAttributes().add(symbol_86);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_85); // http://www.eclipse.org/ocl/3.1.0/Pivot!FeatureCallExp
-		//
-		// Pivot.ecore::pivot::IfExp http://www.eclipse.org/ocl/3.1.0/Pivot!IfExp
-		//
-		symbol_87.setName("IfExp");
-		symbol_87.getSuperClasses().add(symbol_145); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-		{ // Pivot.ecore::pivot::IfExp::condition
-			symbol_88.setName("condition");
-			symbol_88.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			
-			symbol_88.setIsComposite(true);
-			symbol_88.setIsResolveProxies(true);
-			
-			symbol_87.getOwnedAttributes().add(symbol_88);
-		}
-		{ // Pivot.ecore::pivot::IfExp::elseExpression
-			symbol_89.setName("elseExpression");
-			symbol_89.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			
-			symbol_89.setIsComposite(true);
-			symbol_89.setIsResolveProxies(true);
-			symbol_89.setOpposite(symbol_151);
-			
-			symbol_87.getOwnedAttributes().add(symbol_89);
-		}
-		{ // Pivot.ecore::pivot::IfExp::thenExpression
-			symbol_90.setName("thenExpression");
-			symbol_90.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			
-			symbol_90.setIsComposite(true);
-			symbol_90.setIsResolveProxies(true);
-			
-			symbol_87.getOwnedAttributes().add(symbol_90);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_87); // http://www.eclipse.org/ocl/3.1.0/Pivot!IfExp
-		//
-		// Pivot.ecore::pivot::Int http://www.eclipse.org/ocl/3.1.0/Pivot!Int
-		//
-		symbol_91.setName("Int");
-		symbol_91.getSuperClasses().add(standardLibrary.getOclElementType());
-		
-		symbol_0.getOwnedTypes().add(symbol_91); // http://www.eclipse.org/ocl/3.1.0/Pivot!Int
-		//
-		// Pivot.ecore::pivot::IntegerLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!IntegerLiteralExp
-		//
-		symbol_93.setName("IntegerLiteralExp");
-		symbol_93.getSuperClasses().add(symbol_143); // http://www.eclipse.org/ocl/3.1.0/Pivot!NumericLiteralExp
-		{ // Pivot.ecore::pivot::IntegerLiteralExp::integerSymbol
-			symbol_94.setName("integerSymbol");
-			symbol_94.setType(symbol_92);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Integer
-			
-			symbol_94.setIsResolveProxies(true);
-			
-			symbol_93.getOwnedAttributes().add(symbol_94);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_93); // http://www.eclipse.org/ocl/3.1.0/Pivot!IntegerLiteralExp
-		//
-		// Pivot.ecore::pivot::InvalidLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!InvalidLiteralExp
-		//
-		symbol_95.setName("InvalidLiteralExp");
-		symbol_95.getSuperClasses().add(symbol_113); // http://www.eclipse.org/ocl/3.1.0/Pivot!LiteralExp
-		
-		symbol_0.getOwnedTypes().add(symbol_95); // http://www.eclipse.org/ocl/3.1.0/Pivot!InvalidLiteralExp
-		//
-		// Pivot.ecore::pivot::InvalidType http://www.eclipse.org/ocl/3.1.0/Pivot!InvalidType
-		//
-		symbol_96.setName("InvalidType");
-		symbol_96.getSuperClasses().add(symbol_23); // http://www.eclipse.org/ocl/3.1.0/Pivot!Class
-		
-		symbol_0.getOwnedTypes().add(symbol_96); // http://www.eclipse.org/ocl/3.1.0/Pivot!InvalidType
-		//
-		// Pivot.ecore::pivot::IterateExp http://www.eclipse.org/ocl/3.1.0/Pivot!IterateExp
-		//
-		symbol_97.setName("IterateExp");
-		symbol_97.getSuperClasses().add(symbol_114); // http://www.eclipse.org/ocl/3.1.0/Pivot!LoopExp
-		{ // Pivot.ecore::pivot::IterateExp::result
-			symbol_98.setName("result");
-			symbol_98.setType(symbol_312);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable
-			symbol_98.setLower(BigInteger.valueOf(0));
-			symbol_98.setIsOrdered(true);
-			
-			symbol_98.setIsComposite(true);
-			symbol_98.setIsResolveProxies(true);
-			symbol_98.setOpposite(symbol_314);
-			
-			symbol_97.getOwnedAttributes().add(symbol_98);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_97); // http://www.eclipse.org/ocl/3.1.0/Pivot!IterateExp
-		//
-		// Pivot.ecore::pivot::Iteration http://www.eclipse.org/ocl/3.1.0/Pivot!Iteration
-		//
-		symbol_99.setName("Iteration");
-		symbol_99.getSuperClasses().add(symbol_164); // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation
-		{ // Pivot.ecore::pivot::Iteration::LoopExp
-			symbol_100.setName("LoopExp");
-			symbol_100.setType(symbol_114);  // http://www.eclipse.org/ocl/3.1.0/Pivot!LoopExp
-			symbol_100.setLower(BigInteger.valueOf(0));
-			symbol_100.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_100.setImplicit(true);
-			symbol_100.setIsResolveProxies(true);
-			symbol_100.setOpposite(symbol_117);
-			
-			symbol_99.getOwnedAttributes().add(symbol_100);
-		}
-		{ // Pivot.ecore::pivot::Iteration::ownedAccumulator
-			symbol_101.setName("ownedAccumulator");
-			symbol_101.setType(symbol_186);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Parameter
-			symbol_101.setLower(BigInteger.valueOf(0));
-			symbol_101.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_101.setIsComposite(true);
-			symbol_101.setIsResolveProxies(true);
-			symbol_101.setOpposite(symbol_187);
-			
-			symbol_99.getOwnedAttributes().add(symbol_101);
-		}
-		{ // Pivot.ecore::pivot::Iteration::ownedIterator
-			symbol_102.setName("ownedIterator");
-			symbol_102.setType(symbol_186);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Parameter
-			symbol_102.setLower(BigInteger.valueOf(0));
-			symbol_102.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_102.setIsComposite(true);
-			symbol_102.setIsResolveProxies(true);
-			
-			symbol_99.getOwnedAttributes().add(symbol_102);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_99); // http://www.eclipse.org/ocl/3.1.0/Pivot!Iteration
-		//
-		// Pivot.ecore::pivot::IteratorExp http://www.eclipse.org/ocl/3.1.0/Pivot!IteratorExp
-		//
-		symbol_103.setName("IteratorExp");
-		symbol_103.getSuperClasses().add(symbol_114); // http://www.eclipse.org/ocl/3.1.0/Pivot!LoopExp
-		
-		symbol_0.getOwnedTypes().add(symbol_103); // http://www.eclipse.org/ocl/3.1.0/Pivot!IteratorExp
-		//
-		// Pivot.ecore::pivot::LambdaType http://www.eclipse.org/ocl/3.1.0/Pivot!LambdaType
-		//
-		symbol_104.setName("LambdaType");
-		symbol_104.getSuperClasses().add(symbol_57); // http://www.eclipse.org/ocl/3.1.0/Pivot!DataType
-		{ // Pivot.ecore::pivot::LambdaType::contextType
-			symbol_105.setName("contextType");
-			symbol_105.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			
-			symbol_105.setIsResolveProxies(true);
-			
-			symbol_104.getOwnedAttributes().add(symbol_105);
-		}
-		{ // Pivot.ecore::pivot::LambdaType::parameterType
-			symbol_106.setName("parameterType");
-			symbol_106.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			symbol_106.setLower(BigInteger.valueOf(0));
-			symbol_106.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_106.setIsResolveProxies(true);
-			symbol_106.setOpposite(symbol_283);
-			
-			symbol_104.getOwnedAttributes().add(symbol_106);
-		}
-		{ // Pivot.ecore::pivot::LambdaType::resultType
-			symbol_107.setName("resultType");
-			symbol_107.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			
-			symbol_107.setIsResolveProxies(true);
-			
-			symbol_104.getOwnedAttributes().add(symbol_107);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_104); // http://www.eclipse.org/ocl/3.1.0/Pivot!LambdaType
-		//
-		// Pivot.ecore::pivot::LetExp http://www.eclipse.org/ocl/3.1.0/Pivot!LetExp
-		//
-		symbol_108.setName("LetExp");
-		symbol_108.getSuperClasses().add(symbol_145); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-		{ // Pivot.ecore::pivot::LetExp::in
-			symbol_109.setName("in");
-			symbol_109.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			
-			symbol_109.setIsComposite(true);
-			symbol_109.setIsResolveProxies(true);
-			symbol_109.setOpposite(symbol_152);
-			
-			symbol_108.getOwnedAttributes().add(symbol_109);
-		}
-		{ // Pivot.ecore::pivot::LetExp::variable
-			symbol_110.setName("variable");
-			symbol_110.setType(symbol_312);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable
-			
-			symbol_110.setIsComposite(true);
-			symbol_110.setIsResolveProxies(true);
-			symbol_110.setOpposite(symbol_315);
-			
-			symbol_108.getOwnedAttributes().add(symbol_110);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_108); // http://www.eclipse.org/ocl/3.1.0/Pivot!LetExp
-		//
-		// Pivot.ecore::pivot::Library http://www.eclipse.org/ocl/3.1.0/Pivot!Library
-		//
-		symbol_111.setName("Library");
-		symbol_111.getSuperClasses().add(symbol_178); // http://www.eclipse.org/ocl/3.1.0/Pivot!Package
-		
-		symbol_0.getOwnedTypes().add(symbol_111); // http://www.eclipse.org/ocl/3.1.0/Pivot!Library
-		//
-		// Pivot.ecore::pivot::LibraryFeature http://www.eclipse.org/ocl/3.1.0/Pivot!LibraryFeature
-		//
-		symbol_112.setName("LibraryFeature");
-		symbol_112.getSuperClasses().add(standardLibrary.getOclElementType());
-		
-		symbol_0.getOwnedTypes().add(symbol_112); // http://www.eclipse.org/ocl/3.1.0/Pivot!LibraryFeature
-		//
-		// Pivot.ecore::pivot::LiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!LiteralExp
-		//
-		symbol_113.setName("LiteralExp");
-		symbol_113.getSuperClasses().add(symbol_145); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-		
-		symbol_0.getOwnedTypes().add(symbol_113); // http://www.eclipse.org/ocl/3.1.0/Pivot!LiteralExp
-		//
-		// Pivot.ecore::pivot::LoopExp http://www.eclipse.org/ocl/3.1.0/Pivot!LoopExp
-		//
-		symbol_114.setName("LoopExp");
-		symbol_114.getSuperClasses().add(symbol_17); // http://www.eclipse.org/ocl/3.1.0/Pivot!CallExp
-		{ // Pivot.ecore::pivot::LoopExp::body
-			symbol_115.setName("body");
-			symbol_115.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			
-			symbol_115.setIsComposite(true);
-			symbol_115.setIsResolveProxies(true);
-			symbol_115.setOpposite(symbol_153);
-			
-			symbol_114.getOwnedAttributes().add(symbol_115);
-		}
-		{ // Pivot.ecore::pivot::LoopExp::iterator
-			symbol_116.setName("iterator");
-			symbol_116.setType(symbol_312);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable
-			symbol_116.setLower(BigInteger.valueOf(0));
-			symbol_116.setUpper(BigInteger.valueOf(-1));
-			symbol_116.setIsOrdered(true);
-			
-			symbol_116.setIsComposite(true);
-			symbol_116.setIsResolveProxies(true);
-			symbol_116.setOpposite(symbol_316);
-			
-			symbol_114.getOwnedAttributes().add(symbol_116);
-		}
-		{ // Pivot.ecore::pivot::LoopExp::referredIteration
-			symbol_117.setName("referredIteration");
-			symbol_117.setType(symbol_99);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Iteration
-			symbol_117.setLower(BigInteger.valueOf(0));
-			
-			symbol_117.setIsResolveProxies(true);
-			symbol_117.setOpposite(symbol_100);
-			
-			symbol_114.getOwnedAttributes().add(symbol_117);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_114); // http://www.eclipse.org/ocl/3.1.0/Pivot!LoopExp
-		//
-		// Pivot.ecore::pivot::MessageExp http://www.eclipse.org/ocl/3.1.0/Pivot!MessageExp
-		//
-		symbol_118.setName("MessageExp");
-		symbol_118.getSuperClasses().add(symbol_145); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-		{ // Pivot.ecore::pivot::MessageExp::argument
-			symbol_119.setName("argument");
-			symbol_119.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			symbol_119.setLower(BigInteger.valueOf(0));
-			symbol_119.setUpper(BigInteger.valueOf(-1));
-			symbol_119.setIsOrdered(true);
-			
-			symbol_119.setIsComposite(true);
-			symbol_119.setIsResolveProxies(true);
-			symbol_119.setOpposite(symbol_154);
-			
-			symbol_118.getOwnedAttributes().add(symbol_119);
-		}
-		{ // Pivot.ecore::pivot::MessageExp::calledOperation
-			symbol_120.setName("calledOperation");
-			symbol_120.setType(symbol_20);  // http://www.eclipse.org/ocl/3.1.0/Pivot!CallOperationAction
-			symbol_120.setLower(BigInteger.valueOf(0));
-			
-			symbol_120.setIsComposite(true);
-			symbol_120.setIsResolveProxies(true);
-			symbol_120.setOpposite(symbol_21);
-			
-			symbol_118.getOwnedAttributes().add(symbol_120);
-		}
-		{ // Pivot.ecore::pivot::MessageExp::sentSignal
-			symbol_121.setName("sentSignal");
-			symbol_121.setType(symbol_229);  // http://www.eclipse.org/ocl/3.1.0/Pivot!SendSignalAction
-			symbol_121.setLower(BigInteger.valueOf(0));
-			
-			symbol_121.setIsComposite(true);
-			symbol_121.setIsResolveProxies(true);
-			symbol_121.setOpposite(symbol_230);
-			
-			symbol_118.getOwnedAttributes().add(symbol_121);
-		}
-		{ // Pivot.ecore::pivot::MessageExp::target
-			symbol_122.setName("target");
-			symbol_122.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			
-			symbol_122.setIsComposite(true);
-			symbol_122.setIsResolveProxies(true);
-			
-			symbol_118.getOwnedAttributes().add(symbol_122);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_118); // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageExp
-		//
-		// Pivot.ecore::pivot::MessageType http://www.eclipse.org/ocl/3.1.0/Pivot!MessageType
-		//
-		symbol_123.setName("MessageType");
-		symbol_123.getSuperClasses().add(symbol_279); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-		{ // Pivot.ecore::pivot::MessageType::referredOperation
-			symbol_124.setName("referredOperation");
-			symbol_124.setType(symbol_164);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation
-			symbol_124.setLower(BigInteger.valueOf(0));
-			
-			symbol_124.setIsResolveProxies(true);
-			symbol_124.setOpposite(symbol_166);
-			
-			symbol_123.getOwnedAttributes().add(symbol_124);
-		}
-		{ // Pivot.ecore::pivot::MessageType::referredSignal
-			symbol_125.setName("referredSignal");
-			symbol_125.setType(symbol_234);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Signal
-			symbol_125.setLower(BigInteger.valueOf(0));
-			
-			symbol_125.setIsResolveProxies(true);
-			symbol_125.setOpposite(symbol_235);
-			
-			symbol_123.getOwnedAttributes().add(symbol_125);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_123); // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageType
-		//
-		// Pivot.ecore::pivot::MorePivotable http://www.eclipse.org/ocl/3.1.0/Pivot!MorePivotable
-		//
-		symbol_126.setName("MorePivotable");
-		symbol_126.getSuperClasses().add(standardLibrary.getOclElementType());
-		
-		symbol_0.getOwnedTypes().add(symbol_126); // http://www.eclipse.org/ocl/3.1.0/Pivot!MorePivotable
-		//
-		// Pivot.ecore::pivot::MultiplicityElement http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement
-		//
-		symbol_127.setName("MultiplicityElement");
-		symbol_127.getSuperClasses().add(symbol_63); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-		{ // Pivot.ecore::pivot::MultiplicityElement::isOrdered
-			symbol_128.setName("isOrdered");
-			symbol_128.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_128.setIsResolveProxies(true);
-			{
-				Comment symbol_356 = PivotFactory.eINSTANCE.createComment();
-				symbol_356.setBody("For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.");
-				symbol_128.getOwnedComments().add(symbol_356);
-			}
-			
-			symbol_127.getOwnedAttributes().add(symbol_128);
-		}
-		{ // Pivot.ecore::pivot::MultiplicityElement::isUnique
-			symbol_129.setName("isUnique");
-			symbol_129.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_129.setIsResolveProxies(true);
-			{
-				Comment symbol_357 = PivotFactory.eINSTANCE.createComment();
-				symbol_357.setBody("For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.");
-				symbol_129.getOwnedComments().add(symbol_357);
-			}
-			
-			symbol_127.getOwnedAttributes().add(symbol_129);
-		}
-		{ // Pivot.ecore::pivot::MultiplicityElement::lower
-			symbol_130.setName("lower");
-			symbol_130.setType(symbol_92);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Integer
-			symbol_130.setLower(BigInteger.valueOf(0));
-			
-			symbol_130.setIsResolveProxies(true);
-			{
-				Comment symbol_358 = PivotFactory.eINSTANCE.createComment();
-				symbol_358.setBody("Specifies the lower bound of the multiplicity interval.");
-				symbol_130.getOwnedComments().add(symbol_358);
-			}
-			
-			symbol_127.getOwnedAttributes().add(symbol_130);
-		}
-		{ // Pivot.ecore::pivot::MultiplicityElement::upper
-			symbol_131.setName("upper");
-			symbol_131.setType(symbol_303);  // http://www.eclipse.org/ocl/3.1.0/Pivot!UnlimitedNatural
-			symbol_131.setLower(BigInteger.valueOf(0));
-			
-			symbol_131.setIsResolveProxies(true);
-			{
-				Comment symbol_359 = PivotFactory.eINSTANCE.createComment();
-				symbol_359.setBody("Specifies the upper bound of the multiplicity interval.");
-				symbol_131.getOwnedComments().add(symbol_359);
-			}
-			
-			symbol_127.getOwnedAttributes().add(symbol_131);
-		}
-		{	// Pivot.ecore::pivot::MultiplicityElement::includesCardinality()
-			Operation symbol_360 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!includesCardinality(http://www.eclipse.org/ocl/3.1.0/Pivot!Integer)
-			symbol_360.setName("includesCardinality");
-			symbol_360.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			Parameter symbol_361 = PivotFactory.eINSTANCE.createParameter(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!includesCardinality(http://www.eclipse.org/ocl/3.1.0/Pivot!Integer)!C
-			symbol_361.setName("C");
-			symbol_361.setType(symbol_92);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Integer
-			
-			
-			symbol_360.getOwnedParameters().add(symbol_361);
-			{
-				Comment symbol_362 = PivotFactory.eINSTANCE.createComment();
-				symbol_362.setBody("The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.");
-				symbol_360.getOwnedComments().add(symbol_362);
-			}
-			
-			symbol_127.getOwnedOperations().add(symbol_360);
-		}
-		{	// Pivot.ecore::pivot::MultiplicityElement::includesMultiplicity()
-			Operation symbol_363 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!includesMultiplicity(http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement)
-			symbol_363.setName("includesMultiplicity");
-			symbol_363.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			Parameter symbol_364 = PivotFactory.eINSTANCE.createParameter(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!includesMultiplicity(http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement)!M
-			symbol_364.setName("M");
-			symbol_364.setType(symbol_127);  // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement
-			
-			
-			symbol_363.getOwnedParameters().add(symbol_364);
-			{
-				Comment symbol_365 = PivotFactory.eINSTANCE.createComment();
-				symbol_365.setBody("The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.");
-				symbol_363.getOwnedComments().add(symbol_365);
-			}
-			
-			symbol_127.getOwnedOperations().add(symbol_363);
-		}
-		{	// Pivot.ecore::pivot::MultiplicityElement::isMultivalued()
-			Operation symbol_366 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!isMultivalued()
-			symbol_366.setName("isMultivalued");
-			symbol_366.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			{
-				Comment symbol_367 = PivotFactory.eINSTANCE.createComment();
-				symbol_367.setBody("The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.");
-				symbol_366.getOwnedComments().add(symbol_367);
-			}
-			
-			symbol_127.getOwnedOperations().add(symbol_366);
-		}
-		{	// Pivot.ecore::pivot::MultiplicityElement::lowerBound()
-			Operation symbol_368 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!lowerBound()
-			symbol_368.setName("lowerBound");
-			symbol_368.setType(symbol_92);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Integer
-			
-			{
-				Comment symbol_369 = PivotFactory.eINSTANCE.createComment();
-				symbol_369.setBody("The query lowerBound() returns the lower bound of the multiplicity as an integer.");
-				symbol_368.getOwnedComments().add(symbol_369);
-			}
-			
-			symbol_127.getOwnedOperations().add(symbol_368);
-		}
-		{	// Pivot.ecore::pivot::MultiplicityElement::upperBound()
-			Operation symbol_370 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement!upperBound()
-			symbol_370.setName("upperBound");
-			symbol_370.setType(symbol_303);  // http://www.eclipse.org/ocl/3.1.0/Pivot!UnlimitedNatural
-			
-			{
-				Comment symbol_371 = PivotFactory.eINSTANCE.createComment();
-				symbol_371.setBody("The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.");
-				symbol_370.getOwnedComments().add(symbol_371);
-			}
-			
-			symbol_127.getOwnedOperations().add(symbol_370);
-		}
-		{
-			Comment symbol_372 = PivotFactory.eINSTANCE.createComment();
-			symbol_372.setBody("A multiplicity is a definition of an inclusive interval of non-negative integers beginning with a lower bound and ending with a (possibly infinite) upper bound. A multiplicity element embeds this information to specify the allowable cardinalities for an instantiation of this element.");
-			symbol_127.getOwnedComments().add(symbol_372);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_127); // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement
-		//
-		// Pivot.ecore::pivot::Nameable http://www.eclipse.org/ocl/3.1.0/Pivot!Nameable
-		//
-		symbol_132.setName("Nameable");
-		symbol_132.getSuperClasses().add(standardLibrary.getOclElementType());
-		
-		symbol_0.getOwnedTypes().add(symbol_132); // http://www.eclipse.org/ocl/3.1.0/Pivot!Nameable
-		//
-		// Pivot.ecore::pivot::NamedElement http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		//
-		symbol_133.setName("NamedElement");
-		symbol_133.getSuperClasses().add(symbol_63); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-		symbol_133.getSuperClasses().add(symbol_132); // http://www.eclipse.org/ocl/3.1.0/Pivot!Nameable
-		{ // Pivot.ecore::pivot::NamedElement::isStatic
-			symbol_134.setName("isStatic");
-			symbol_134.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_134.setIsResolveProxies(true);
-			
-			symbol_133.getOwnedAttributes().add(symbol_134);
-		}
-		{ // Pivot.ecore::pivot::NamedElement::name
-			symbol_135.setName("name");
-			symbol_135.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			symbol_135.setLower(BigInteger.valueOf(0));
-			
-			symbol_135.setIsResolveProxies(true);
-			{
-				Comment symbol_373 = PivotFactory.eINSTANCE.createComment();
-				symbol_373.setBody("The name of the NamedElement.");
-				symbol_135.getOwnedComments().add(symbol_373);
-			}
-			
-			symbol_133.getOwnedAttributes().add(symbol_135);
-		}
-		{ // Pivot.ecore::pivot::NamedElement::ownedAnnotation
-			symbol_136.setName("ownedAnnotation");
-			symbol_136.setType(symbol_1);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Annotation
-			symbol_136.setLower(BigInteger.valueOf(0));
-			symbol_136.setUpper(BigInteger.valueOf(-1));
-			symbol_136.setIsOrdered(true);
-			
-			symbol_136.setIsComposite(true);
-			symbol_136.setIsResolveProxies(true);
-			symbol_136.setOpposite(symbol_2);
-			
-			symbol_133.getOwnedAttributes().add(symbol_136);
-		}
-		{ // Pivot.ecore::pivot::NamedElement::ownedRule
-			symbol_137.setName("ownedRule");
-			symbol_137.setType(symbol_45);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint
-			symbol_137.setLower(BigInteger.valueOf(0));
-			symbol_137.setUpper(BigInteger.valueOf(-1));
-			symbol_137.setIsOrdered(true);
-			
-			symbol_137.setIsComposite(true);
-			symbol_137.setIsResolveProxies(true);
-			symbol_137.setOpposite(symbol_47);
-			
-			symbol_133.getOwnedAttributes().add(symbol_137);
-		}
-		{
-			Comment symbol_374 = PivotFactory.eINSTANCE.createComment();
-			symbol_374.setBody("A named element represents an element with a name.");
-			symbol_133.getOwnedComments().add(symbol_374);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_133); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		//
-		// Pivot.ecore::pivot::Namespace http://www.eclipse.org/ocl/3.1.0/Pivot!Namespace
-		//
-		symbol_138.setName("Namespace");
-		symbol_138.getSuperClasses().add(symbol_133); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		
-		symbol_0.getOwnedTypes().add(symbol_138); // http://www.eclipse.org/ocl/3.1.0/Pivot!Namespace
-		//
-		// Pivot.ecore::pivot::NavigationCallExp http://www.eclipse.org/ocl/3.1.0/Pivot!NavigationCallExp
-		//
-		symbol_139.setName("NavigationCallExp");
-		symbol_139.getSuperClasses().add(symbol_85); // http://www.eclipse.org/ocl/3.1.0/Pivot!FeatureCallExp
-		{ // Pivot.ecore::pivot::NavigationCallExp::navigationSource
-			symbol_140.setName("navigationSource");
-			symbol_140.setType(symbol_203);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Property
-			symbol_140.setLower(BigInteger.valueOf(0));
-			symbol_140.setIsOrdered(true);
-			
-			symbol_140.setIsResolveProxies(true);
-			symbol_140.setOpposite(symbol_205);
-			
-			symbol_139.getOwnedAttributes().add(symbol_140);
-		}
-		{ // Pivot.ecore::pivot::NavigationCallExp::qualifier
-			symbol_141.setName("qualifier");
-			symbol_141.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			symbol_141.setLower(BigInteger.valueOf(0));
-			symbol_141.setUpper(BigInteger.valueOf(-1));
-			symbol_141.setIsOrdered(true);
-			
-			symbol_141.setIsResolveProxies(true);
-			symbol_141.setOpposite(symbol_155);
-			
-			symbol_139.getOwnedAttributes().add(symbol_141);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_139); // http://www.eclipse.org/ocl/3.1.0/Pivot!NavigationCallExp
-		//
-		// Pivot.ecore::pivot::NullLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!NullLiteralExp
-		//
-		symbol_142.setName("NullLiteralExp");
-		symbol_142.getSuperClasses().add(symbol_201); // http://www.eclipse.org/ocl/3.1.0/Pivot!PrimitiveLiteralExp
-		
-		symbol_0.getOwnedTypes().add(symbol_142); // http://www.eclipse.org/ocl/3.1.0/Pivot!NullLiteralExp
-		//
-		// Pivot.ecore::pivot::NumericLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!NumericLiteralExp
-		//
-		symbol_143.setName("NumericLiteralExp");
-		symbol_143.getSuperClasses().add(symbol_201); // http://www.eclipse.org/ocl/3.1.0/Pivot!PrimitiveLiteralExp
-		
-		symbol_0.getOwnedTypes().add(symbol_143); // http://www.eclipse.org/ocl/3.1.0/Pivot!NumericLiteralExp
-		//
-		// Pivot.ecore::pivot::Object http://www.eclipse.org/ocl/3.1.0/Pivot!Object
-		//
-		symbol_144.setName("Object");
-		symbol_144.getSuperClasses().add(standardLibrary.getOclElementType());
-		
-		symbol_0.getOwnedTypes().add(symbol_144); // http://www.eclipse.org/ocl/3.1.0/Pivot!Object
-		//
-		// Pivot.ecore::pivot::OclExpression http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-		//
-		symbol_145.setName("OclExpression");
-		symbol_145.getSuperClasses().add(symbol_300); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedElement
-		{ // Pivot.ecore::pivot::OclExpression::CallExp
-			symbol_146.setName("CallExp");
-			symbol_146.setType(symbol_17);  // http://www.eclipse.org/ocl/3.1.0/Pivot!CallExp
-			symbol_146.setLower(BigInteger.valueOf(0));
-			
-			symbol_146.setImplicit(true);
-			symbol_146.setIsResolveProxies(true);
-			symbol_146.setOpposite(symbol_19);
-			
-			symbol_145.getOwnedAttributes().add(symbol_146);
-		}
-		{ // Pivot.ecore::pivot::OclExpression::CollectionItem
-			symbol_147.setName("CollectionItem");
-			symbol_147.setType(symbol_28);  // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionItem
-			symbol_147.setLower(BigInteger.valueOf(0));
-			
-			symbol_147.setImplicit(true);
-			symbol_147.setIsResolveProxies(true);
-			symbol_147.setOpposite(symbol_29);
-			
-			symbol_145.getOwnedAttributes().add(symbol_147);
-		}
-		{ // Pivot.ecore::pivot::OclExpression::CollectionRange
-			symbol_148.setName("CollectionRange");
-			symbol_148.setType(symbol_36);  // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionRange
-			symbol_148.setLower(BigInteger.valueOf(0));
-			symbol_148.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_148.setImplicit(true);
-			symbol_148.setIsResolveProxies(true);
-			
-			symbol_145.getOwnedAttributes().add(symbol_148);
-		}
-		{ // Pivot.ecore::pivot::OclExpression::ConstructorPart
-			symbol_149.setName("ConstructorPart");
-			symbol_149.setType(symbol_53);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorPart
-			symbol_149.setLower(BigInteger.valueOf(0));
-			
-			symbol_149.setImplicit(true);
-			symbol_149.setIsResolveProxies(true);
-			symbol_149.setOpposite(symbol_55);
-			
-			symbol_145.getOwnedAttributes().add(symbol_149);
-		}
-		{ // Pivot.ecore::pivot::OclExpression::ExpressionInOcl
-			symbol_150.setName("ExpressionInOcl");
-			symbol_150.setType(symbol_76);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl
-			symbol_150.setLower(BigInteger.valueOf(0));
-			symbol_150.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_150.setImplicit(true);
-			symbol_150.setIsResolveProxies(true);
-			
-			symbol_145.getOwnedAttributes().add(symbol_150);
-		}
-		{ // Pivot.ecore::pivot::OclExpression::IfExp
-			symbol_151.setName("IfExp");
-			symbol_151.setType(symbol_87);  // http://www.eclipse.org/ocl/3.1.0/Pivot!IfExp
-			symbol_151.setLower(BigInteger.valueOf(0));
-			symbol_151.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_151.setImplicit(true);
-			symbol_151.setIsResolveProxies(true);
-			
-			symbol_145.getOwnedAttributes().add(symbol_151);
-		}
-		{ // Pivot.ecore::pivot::OclExpression::LetExp
-			symbol_152.setName("LetExp");
-			symbol_152.setType(symbol_108);  // http://www.eclipse.org/ocl/3.1.0/Pivot!LetExp
-			symbol_152.setLower(BigInteger.valueOf(0));
-			
-			symbol_152.setImplicit(true);
-			symbol_152.setIsResolveProxies(true);
-			symbol_152.setOpposite(symbol_109);
-			
-			symbol_145.getOwnedAttributes().add(symbol_152);
-		}
-		{ // Pivot.ecore::pivot::OclExpression::LoopExp
-			symbol_153.setName("LoopExp");
-			symbol_153.setType(symbol_114);  // http://www.eclipse.org/ocl/3.1.0/Pivot!LoopExp
-			symbol_153.setLower(BigInteger.valueOf(0));
-			
-			symbol_153.setImplicit(true);
-			symbol_153.setIsResolveProxies(true);
-			symbol_153.setOpposite(symbol_115);
-			
-			symbol_145.getOwnedAttributes().add(symbol_153);
-		}
-		{ // Pivot.ecore::pivot::OclExpression::MessageExp
-			symbol_154.setName("MessageExp");
-			symbol_154.setType(symbol_118);  // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageExp
-			symbol_154.setLower(BigInteger.valueOf(0));
-			symbol_154.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_154.setImplicit(true);
-			symbol_154.setIsResolveProxies(true);
-			
-			symbol_145.getOwnedAttributes().add(symbol_154);
-		}
-		{ // Pivot.ecore::pivot::OclExpression::NavigationCallExp
-			symbol_155.setName("NavigationCallExp");
-			symbol_155.setType(symbol_139);  // http://www.eclipse.org/ocl/3.1.0/Pivot!NavigationCallExp
-			symbol_155.setLower(BigInteger.valueOf(0));
-			symbol_155.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_155.setImplicit(true);
-			symbol_155.setIsResolveProxies(true);
-			symbol_155.setOpposite(symbol_141);
-			
-			symbol_145.getOwnedAttributes().add(symbol_155);
-		}
-		{ // Pivot.ecore::pivot::OclExpression::OperationCallExp
-			symbol_156.setName("OperationCallExp");
-			symbol_156.setType(symbol_173);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OperationCallExp
-			symbol_156.setLower(BigInteger.valueOf(0));
-			
-			symbol_156.setImplicit(true);
-			symbol_156.setIsResolveProxies(true);
-			symbol_156.setOpposite(symbol_174);
-			
-			symbol_145.getOwnedAttributes().add(symbol_156);
-		}
-		{ // Pivot.ecore::pivot::OclExpression::TupleLiteralPart
-			symbol_157.setName("TupleLiteralPart");
-			symbol_157.setType(symbol_275);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralPart
-			symbol_157.setLower(BigInteger.valueOf(0));
-			
-			symbol_157.setImplicit(true);
-			symbol_157.setIsResolveProxies(true);
-			symbol_157.setOpposite(symbol_277);
-			
-			symbol_145.getOwnedAttributes().add(symbol_157);
-		}
-		{ // Pivot.ecore::pivot::OclExpression::Variable
-			symbol_158.setName("Variable");
-			symbol_158.setType(symbol_312);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable
-			symbol_158.setLower(BigInteger.valueOf(0));
-			
-			symbol_158.setImplicit(true);
-			symbol_158.setIsResolveProxies(true);
-			symbol_158.setOpposite(symbol_318);
-			
-			symbol_145.getOwnedAttributes().add(symbol_158);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_145); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-		//
-		// Pivot.ecore::pivot::OpaqueExpression http://www.eclipse.org/ocl/3.1.0/Pivot!OpaqueExpression
-		//
-		symbol_159.setName("OpaqueExpression");
-		symbol_159.getSuperClasses().add(symbol_310); // http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification
-		{ // Pivot.ecore::pivot::OpaqueExpression::body
-			symbol_160.setName("body");
-			symbol_160.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			symbol_160.setLower(BigInteger.valueOf(0));
-			symbol_160.setUpper(BigInteger.valueOf(-1));
-			symbol_160.setIsOrdered(true);
-			symbol_160.setIsUnique(false);
-			
-			symbol_160.setIsResolveProxies(true);
-			{
-				Comment symbol_375 = PivotFactory.eINSTANCE.createComment();
-				symbol_375.setBody("The text of the expression, possibly in multiple languages.");
-				symbol_160.getOwnedComments().add(symbol_375);
-			}
-			
-			symbol_159.getOwnedAttributes().add(symbol_160);
-		}
-		{ // Pivot.ecore::pivot::OpaqueExpression::language
-			symbol_161.setName("language");
-			symbol_161.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			symbol_161.setLower(BigInteger.valueOf(0));
-			symbol_161.setUpper(BigInteger.valueOf(-1));
-			symbol_161.setIsOrdered(true);
-			
-			symbol_161.setIsResolveProxies(true);
-			{
-				Comment symbol_376 = PivotFactory.eINSTANCE.createComment();
-				symbol_376.setBody("Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the languages. If the languages are unspecified, they might be implicit from the expression body or the context. Languages are matched to body strings by order.");
-				symbol_161.getOwnedComments().add(symbol_376);
-			}
-			
-			symbol_159.getOwnedAttributes().add(symbol_161);
-		}
-		{ // Pivot.ecore::pivot::OpaqueExpression::message
-			symbol_162.setName("message");
-			symbol_162.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			symbol_162.setLower(BigInteger.valueOf(0));
-			symbol_162.setUpper(BigInteger.valueOf(-1));
-			symbol_162.setIsOrdered(true);
-			symbol_162.setIsUnique(false);
-			
-			symbol_162.setIsResolveProxies(true);
-			
-			symbol_159.getOwnedAttributes().add(symbol_162);
-		}
-		{ // Pivot.ecore::pivot::OpaqueExpression::valueExpression
-			symbol_163.setName("valueExpression");
-			symbol_163.setType(symbol_76);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl
-			symbol_163.setLower(BigInteger.valueOf(0));
-			
-			symbol_163.setIsResolveProxies(true);
-			symbol_163.setIsTransient(true);
-			
-			symbol_159.getOwnedAttributes().add(symbol_163);
-		}
-		{
-			Comment symbol_377 = PivotFactory.eINSTANCE.createComment();
-			symbol_377.setBody("An opaque expression is an uninterpreted textual statement that denotes a (possibly empty) set of values when evaluated in a context.");
-			symbol_159.getOwnedComments().add(symbol_377);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_159); // http://www.eclipse.org/ocl/3.1.0/Pivot!OpaqueExpression
-		//
-		// Pivot.ecore::pivot::Operation http://www.eclipse.org/ocl/3.1.0/Pivot!Operation
-		//
-		symbol_164.setName("Operation");
-		symbol_164.getSuperClasses().add(symbol_82); // http://www.eclipse.org/ocl/3.1.0/Pivot!Feature
-		symbol_164.getSuperClasses().add(symbol_138); // http://www.eclipse.org/ocl/3.1.0/Pivot!Namespace
-		symbol_164.getSuperClasses().add(symbol_268); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement
-		symbol_164.getSuperClasses().add(symbol_190); // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-		{ // Pivot.ecore::pivot::Operation::CallOperationAction
-			symbol_165.setName("CallOperationAction");
-			symbol_165.setType(symbol_20);  // http://www.eclipse.org/ocl/3.1.0/Pivot!CallOperationAction
-			symbol_165.setLower(BigInteger.valueOf(0));
-			symbol_165.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_165.setImplicit(true);
-			symbol_165.setIsResolveProxies(true);
-			symbol_165.setOpposite(symbol_22);
-			
-			symbol_164.getOwnedAttributes().add(symbol_165);
-		}
-		{ // Pivot.ecore::pivot::Operation::MessageType
-			symbol_166.setName("MessageType");
-			symbol_166.setType(symbol_123);  // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageType
-			symbol_166.setLower(BigInteger.valueOf(0));
-			symbol_166.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_166.setImplicit(true);
-			symbol_166.setIsResolveProxies(true);
-			symbol_166.setOpposite(symbol_124);
-			
-			symbol_164.getOwnedAttributes().add(symbol_166);
-		}
-		{ // Pivot.ecore::pivot::Operation::OperationCallExp
-			symbol_167.setName("OperationCallExp");
-			symbol_167.setType(symbol_173);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OperationCallExp
-			symbol_167.setLower(BigInteger.valueOf(0));
-			symbol_167.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_167.setImplicit(true);
-			symbol_167.setIsResolveProxies(true);
-			symbol_167.setOpposite(symbol_175);
-			
-			symbol_164.getOwnedAttributes().add(symbol_167);
-		}
-		{ // Pivot.ecore::pivot::Operation::class
-			symbol_168.setName("class");
-			symbol_168.setType(symbol_23);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Class
-			symbol_168.setLower(BigInteger.valueOf(0));
-			
-			symbol_168.setIsReadOnly(true);
-			symbol_168.setIsResolveProxies(true);
-			symbol_168.setIsTransient(true);
-			symbol_168.setIsVolatile(true);
-			{
-				Comment symbol_378 = PivotFactory.eINSTANCE.createComment();
-				symbol_378.setBody("The class that owns the operation.");
-				symbol_168.getOwnedComments().add(symbol_378);
-			}
-			
-			symbol_164.getOwnedAttributes().add(symbol_168);
-		}
-		{ // Pivot.ecore::pivot::Operation::ownedParameter
-			symbol_169.setName("ownedParameter");
-			symbol_169.setType(symbol_186);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Parameter
-			symbol_169.setLower(BigInteger.valueOf(0));
-			symbol_169.setUpper(BigInteger.valueOf(-1));
-			symbol_169.setIsOrdered(true);
-			
-			symbol_169.setIsComposite(true);
-			symbol_169.setIsResolveProxies(true);
-			symbol_169.setOpposite(symbol_189);
-			{
-				Comment symbol_379 = PivotFactory.eINSTANCE.createComment();
-				symbol_379.setBody("The parameters to the operation.");
-				symbol_169.getOwnedComments().add(symbol_379);
-			}
-			
-			symbol_164.getOwnedAttributes().add(symbol_169);
-		}
-		{ // Pivot.ecore::pivot::Operation::owningType
-			symbol_170.setName("owningType");
-			symbol_170.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			symbol_170.setLower(BigInteger.valueOf(0));
-			
-			symbol_170.setIsResolveProxies(true);
-			symbol_170.setOpposite(symbol_292);
-			
-			symbol_164.getOwnedAttributes().add(symbol_170);
-		}
-		{ // Pivot.ecore::pivot::Operation::precedence
-			symbol_171.setName("precedence");
-			symbol_171.setType(symbol_196);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Precedence
-			symbol_171.setLower(BigInteger.valueOf(0));
-			
-			symbol_171.setIsResolveProxies(true);
-			symbol_171.setOpposite(symbol_197);
-			
-			symbol_164.getOwnedAttributes().add(symbol_171);
-		}
-		{ // Pivot.ecore::pivot::Operation::raisedException
-			symbol_172.setName("raisedException");
-			symbol_172.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			symbol_172.setLower(BigInteger.valueOf(0));
-			symbol_172.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_172.setIsResolveProxies(true);
-			symbol_172.setOpposite(symbol_284);
-			{
-				Comment symbol_380 = PivotFactory.eINSTANCE.createComment();
-				symbol_380.setBody("The exceptions that are declared as possible during an invocation of the operation.");
-				symbol_172.getOwnedComments().add(symbol_380);
-			}
-			
-			symbol_164.getOwnedAttributes().add(symbol_172);
-		}
-		{
-			Comment symbol_381 = PivotFactory.eINSTANCE.createComment();
-			symbol_381.setBody("An operation is owned by a class and may be invoked in the context of objects that are instances of that class. It is a typed element and a multiplicity element.\r\nOperation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.");
-			symbol_164.getOwnedComments().add(symbol_381);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_164); // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation
-		//
-		// Pivot.ecore::pivot::OperationCallExp http://www.eclipse.org/ocl/3.1.0/Pivot!OperationCallExp
-		//
-		symbol_173.setName("OperationCallExp");
-		symbol_173.getSuperClasses().add(symbol_85); // http://www.eclipse.org/ocl/3.1.0/Pivot!FeatureCallExp
-		{ // Pivot.ecore::pivot::OperationCallExp::argument
-			symbol_174.setName("argument");
-			symbol_174.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			symbol_174.setLower(BigInteger.valueOf(0));
-			symbol_174.setUpper(BigInteger.valueOf(-1));
-			symbol_174.setIsOrdered(true);
-			
-			symbol_174.setIsComposite(true);
-			symbol_174.setIsResolveProxies(true);
-			symbol_174.setOpposite(symbol_156);
-			
-			symbol_173.getOwnedAttributes().add(symbol_174);
-		}
-		{ // Pivot.ecore::pivot::OperationCallExp::referredOperation
-			symbol_175.setName("referredOperation");
-			symbol_175.setType(symbol_164);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation
-			symbol_175.setLower(BigInteger.valueOf(0));
-			
-			symbol_175.setIsResolveProxies(true);
-			symbol_175.setOpposite(symbol_167);
-			
-			symbol_173.getOwnedAttributes().add(symbol_175);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_173); // http://www.eclipse.org/ocl/3.1.0/Pivot!OperationCallExp
-		//
-		// Pivot.ecore::pivot::OperationTemplateParameter http://www.eclipse.org/ocl/3.1.0/Pivot!OperationTemplateParameter
-		//
-		symbol_176.setName("OperationTemplateParameter");
-		symbol_176.getSuperClasses().add(symbol_248); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter
-		{
-			Comment symbol_382 = PivotFactory.eINSTANCE.createComment();
-			symbol_382.setBody("An operation template parameter exposes an operation as a formal parameter for a template.");
-			symbol_176.getOwnedComments().add(symbol_382);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_176); // http://www.eclipse.org/ocl/3.1.0/Pivot!OperationTemplateParameter
-		//
-		// Pivot.ecore::pivot::OrderedSetType http://www.eclipse.org/ocl/3.1.0/Pivot!OrderedSetType
-		//
-		symbol_177.setName("OrderedSetType");
-		symbol_177.getSuperClasses().add(symbol_39); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionType
-		
-		symbol_0.getOwnedTypes().add(symbol_177); // http://www.eclipse.org/ocl/3.1.0/Pivot!OrderedSetType
-		//
-		// Pivot.ecore::pivot::Package http://www.eclipse.org/ocl/3.1.0/Pivot!Package
-		//
-		symbol_178.setName("Package");
-		symbol_178.getSuperClasses().add(symbol_138); // http://www.eclipse.org/ocl/3.1.0/Pivot!Namespace
-		symbol_178.getSuperClasses().add(symbol_268); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement
-		{ // Pivot.ecore::pivot::Package::nestedPackage
-			symbol_179.setName("nestedPackage");
-			symbol_179.setType(symbol_178);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Package
-			symbol_179.setLower(BigInteger.valueOf(0));
-			symbol_179.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_179.setIsComposite(true);
-			symbol_179.setIsResolveProxies(true);
-			symbol_179.setOpposite(symbol_180);
-			{
-				Comment symbol_383 = PivotFactory.eINSTANCE.createComment();
-				symbol_383.setBody("The set of contained packages.");
-				symbol_179.getOwnedComments().add(symbol_383);
-			}
-			
-			symbol_178.getOwnedAttributes().add(symbol_179);
-		}
-		{ // Pivot.ecore::pivot::Package::nestingPackage
-			symbol_180.setName("nestingPackage");
-			symbol_180.setType(symbol_178);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Package
-			symbol_180.setLower(BigInteger.valueOf(0));
-			
-			symbol_180.setIsResolveProxies(true);
-			symbol_180.setOpposite(symbol_179);
-			{
-				Comment symbol_384 = PivotFactory.eINSTANCE.createComment();
-				symbol_384.setBody("The containing package.");
-				symbol_180.getOwnedComments().add(symbol_384);
-			}
-			
-			symbol_178.getOwnedAttributes().add(symbol_180);
-		}
-		{ // Pivot.ecore::pivot::Package::nsPrefix
-			symbol_181.setName("nsPrefix");
-			symbol_181.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			symbol_181.setLower(BigInteger.valueOf(0));
-			
-			symbol_181.setIsResolveProxies(true);
-			
-			symbol_178.getOwnedAttributes().add(symbol_181);
-		}
-		{ // Pivot.ecore::pivot::Package::nsURI
-			symbol_182.setName("nsURI");
-			symbol_182.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			symbol_182.setLower(BigInteger.valueOf(0));
-			
-			symbol_182.setIsResolveProxies(true);
-			
-			symbol_178.getOwnedAttributes().add(symbol_182);
-		}
-		{ // Pivot.ecore::pivot::Package::ownedPrecedence
-			symbol_183.setName("ownedPrecedence");
-			symbol_183.setType(symbol_196);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Precedence
-			symbol_183.setLower(BigInteger.valueOf(0));
-			symbol_183.setUpper(BigInteger.valueOf(-1));
-			symbol_183.setIsOrdered(true);
-			
-			symbol_183.setIsComposite(true);
-			symbol_183.setIsResolveProxies(true);
-			symbol_183.setOpposite(symbol_198);
-			
-			symbol_178.getOwnedAttributes().add(symbol_183);
-		}
-		{ // Pivot.ecore::pivot::Package::ownedType
-			symbol_184.setName("ownedType");
-			symbol_184.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			symbol_184.setLower(BigInteger.valueOf(0));
-			symbol_184.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_184.setIsComposite(true);
-			symbol_184.setIsResolveProxies(true);
-			symbol_184.setOpposite(symbol_293);
-			{
-				Comment symbol_385 = PivotFactory.eINSTANCE.createComment();
-				symbol_385.setBody("The set of contained types.");
-				symbol_184.getOwnedComments().add(symbol_385);
-			}
-			
-			symbol_178.getOwnedAttributes().add(symbol_184);
-		}
-		{
-			Comment symbol_386 = PivotFactory.eINSTANCE.createComment();
-			symbol_386.setBody("A package is a container for types and other packages.\r\nPackage specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter.");
-			symbol_178.getOwnedComments().add(symbol_386);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_178); // http://www.eclipse.org/ocl/3.1.0/Pivot!Package
-		//
-		// Pivot.ecore::pivot::PackageableElement http://www.eclipse.org/ocl/3.1.0/Pivot!PackageableElement
-		//
-		symbol_185.setName("PackageableElement");
-		symbol_185.getSuperClasses().add(symbol_190); // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-		{
-			Comment symbol_387 = PivotFactory.eINSTANCE.createComment();
-			symbol_387.setBody("Packageable elements are able to serve as a template parameter.");
-			symbol_185.getOwnedComments().add(symbol_387);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_185); // http://www.eclipse.org/ocl/3.1.0/Pivot!PackageableElement
-		//
-		// Pivot.ecore::pivot::Parameter http://www.eclipse.org/ocl/3.1.0/Pivot!Parameter
-		//
-		symbol_186.setName("Parameter");
-		symbol_186.getSuperClasses().add(symbol_302); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedMultiplicityElement
-		symbol_186.getSuperClasses().add(symbol_320); // http://www.eclipse.org/ocl/3.1.0/Pivot!VariableDeclaration
-		{ // Pivot.ecore::pivot::Parameter::Iteration
-			symbol_187.setName("Iteration");
-			symbol_187.setType(symbol_99);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Iteration
-			symbol_187.setLower(BigInteger.valueOf(0));
-			symbol_187.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_187.setImplicit(true);
-			symbol_187.setIsResolveProxies(true);
-			
-			symbol_186.getOwnedAttributes().add(symbol_187);
-		}
-		{ // Pivot.ecore::pivot::Parameter::Variable
-			symbol_188.setName("Variable");
-			symbol_188.setType(symbol_312);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable
-			symbol_188.setLower(BigInteger.valueOf(0));
-			symbol_188.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_188.setImplicit(true);
-			symbol_188.setIsResolveProxies(true);
-			symbol_188.setOpposite(symbol_319);
-			
-			symbol_186.getOwnedAttributes().add(symbol_188);
-		}
-		{ // Pivot.ecore::pivot::Parameter::operation
-			symbol_189.setName("operation");
-			symbol_189.setType(symbol_164);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation
-			symbol_189.setLower(BigInteger.valueOf(0));
-			
-			symbol_189.setIsResolveProxies(true);
-			symbol_189.setOpposite(symbol_169);
-			{
-				Comment symbol_388 = PivotFactory.eINSTANCE.createComment();
-				symbol_388.setBody("The operation that owns the parameter.");
-				symbol_189.getOwnedComments().add(symbol_388);
-			}
-			
-			symbol_186.getOwnedAttributes().add(symbol_189);
-		}
-		{
-			Comment symbol_389 = PivotFactory.eINSTANCE.createComment();
-			symbol_389.setBody("A parameter is a typed element that represents a parameter of an operation.");
-			symbol_186.getOwnedComments().add(symbol_389);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_186); // http://www.eclipse.org/ocl/3.1.0/Pivot!Parameter
-		//
-		// Pivot.ecore::pivot::ParameterableElement http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-		//
-		symbol_190.setName("ParameterableElement");
-		symbol_190.getSuperClasses().add(symbol_63); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-		{ // Pivot.ecore::pivot::ParameterableElement::TemplateParameter
-			symbol_191.setName("TemplateParameter");
-			symbol_191.setType(symbol_248);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter
-			symbol_191.setLower(BigInteger.valueOf(0));
-			symbol_191.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_191.setImplicit(true);
-			symbol_191.setIsResolveProxies(true);
-			
-			symbol_190.getOwnedAttributes().add(symbol_191);
-		}
-		{ // Pivot.ecore::pivot::ParameterableElement::TemplateParameterSubstitution
-			symbol_192.setName("TemplateParameterSubstitution");
-			symbol_192.setType(symbol_256);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterSubstitution
-			symbol_192.setLower(BigInteger.valueOf(0));
-			symbol_192.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_192.setImplicit(true);
-			symbol_192.setIsResolveProxies(true);
-			
-			symbol_190.getOwnedAttributes().add(symbol_192);
-		}
-		{ // Pivot.ecore::pivot::ParameterableElement::owningTemplateParameter
-			symbol_193.setName("owningTemplateParameter");
-			symbol_193.setType(symbol_248);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter
-			symbol_193.setLower(BigInteger.valueOf(0));
-			
-			symbol_193.setIsResolveProxies(true);
-			symbol_193.setOpposite(symbol_253);
-			{
-				Comment symbol_390 = PivotFactory.eINSTANCE.createComment();
-				symbol_390.setBody("The formal template parameter that owns this element.");
-				symbol_193.getOwnedComments().add(symbol_390);
-			}
-			
-			symbol_190.getOwnedAttributes().add(symbol_193);
-		}
-		{ // Pivot.ecore::pivot::ParameterableElement::templateParameter
-			symbol_194.setName("templateParameter");
-			symbol_194.setType(symbol_248);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter
-			symbol_194.setLower(BigInteger.valueOf(0));
-			
-			symbol_194.setIsResolveProxies(true);
-			symbol_194.setOpposite(symbol_254);
-			{
-				Comment symbol_391 = PivotFactory.eINSTANCE.createComment();
-				symbol_391.setBody("The template parameter that exposes this element as a formal parameter.");
-				symbol_194.getOwnedComments().add(symbol_391);
-			}
-			
-			symbol_190.getOwnedAttributes().add(symbol_194);
-		}
-		{	// Pivot.ecore::pivot::ParameterableElement::isCompatibleWith()
-			Operation symbol_392 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement!isCompatibleWith(http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement)
-			symbol_392.setName("isCompatibleWith");
-			symbol_392.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			Parameter symbol_393 = PivotFactory.eINSTANCE.createParameter(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement!isCompatibleWith(http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement)!p
-			symbol_393.setName("p");
-			symbol_393.setType(symbol_190);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-			
-			
-			symbol_392.getOwnedParameters().add(symbol_393);
-			
-			symbol_190.getOwnedOperations().add(symbol_392);
-		}
-		{	// Pivot.ecore::pivot::ParameterableElement::isTemplateParameter()
-			Operation symbol_394 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement!isTemplateParameter()
-			symbol_394.setName("isTemplateParameter");
-			symbol_394.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			{
-				Comment symbol_395 = PivotFactory.eINSTANCE.createComment();
-				symbol_395.setBody("The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.");
-				symbol_394.getOwnedComments().add(symbol_395);
-			}
-			
-			symbol_190.getOwnedOperations().add(symbol_394);
-		}
-		{
-			Comment symbol_396 = PivotFactory.eINSTANCE.createComment();
-			symbol_396.setBody("A parameterable element is an element that can be exposed as a formal template parameter for a template, or specified as an actual parameter in a binding of a template.");
-			symbol_190.getOwnedComments().add(symbol_396);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_190); // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-		//
-		// Pivot.ecore::pivot::Pivotable http://www.eclipse.org/ocl/3.1.0/Pivot!Pivotable
-		//
-		symbol_195.setName("Pivotable");
-		symbol_195.getSuperClasses().add(standardLibrary.getOclElementType());
-		
-		symbol_0.getOwnedTypes().add(symbol_195); // http://www.eclipse.org/ocl/3.1.0/Pivot!Pivotable
-		//
-		// Pivot.ecore::pivot::Precedence http://www.eclipse.org/ocl/3.1.0/Pivot!Precedence
-		//
-		symbol_196.setName("Precedence");
-		symbol_196.getSuperClasses().add(symbol_133); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		{ // Pivot.ecore::pivot::Precedence::Operation
-			symbol_197.setName("Operation");
-			symbol_197.setType(symbol_164);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation
-			symbol_197.setLower(BigInteger.valueOf(0));
-			symbol_197.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_197.setImplicit(true);
-			symbol_197.setIsResolveProxies(true);
-			symbol_197.setOpposite(symbol_171);
-			
-			symbol_196.getOwnedAttributes().add(symbol_197);
-		}
-		{ // Pivot.ecore::pivot::Precedence::Package
-			symbol_198.setName("Package");
-			symbol_198.setType(symbol_178);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Package
-			symbol_198.setLower(BigInteger.valueOf(0));
-			
-			symbol_198.setImplicit(true);
-			symbol_198.setIsResolveProxies(true);
-			symbol_198.setOpposite(symbol_183);
-			
-			symbol_196.getOwnedAttributes().add(symbol_198);
-		}
-		{ // Pivot.ecore::pivot::Precedence::associativity
-			symbol_199.setName("associativity");
-			symbol_199.setType(symbol_12);  // http://www.eclipse.org/ocl/3.1.0/Pivot!AssociativityKind
-			symbol_199.setLower(BigInteger.valueOf(0));
-			
-			symbol_199.setIsResolveProxies(true);
-			
-			symbol_196.getOwnedAttributes().add(symbol_199);
-		}
-		{ // Pivot.ecore::pivot::Precedence::order
-			symbol_200.setName("order");
-			symbol_200.setType(symbol_92);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Integer
-			
-			symbol_200.setIsDerived(true);
-			symbol_200.setIsResolveProxies(true);
-			symbol_200.setIsTransient(true);
-			symbol_200.setIsVolatile(true);
-			
-			symbol_196.getOwnedAttributes().add(symbol_200);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_196); // http://www.eclipse.org/ocl/3.1.0/Pivot!Precedence
-		//
-		// Pivot.ecore::pivot::PrimitiveLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!PrimitiveLiteralExp
-		//
-		symbol_201.setName("PrimitiveLiteralExp");
-		symbol_201.getSuperClasses().add(symbol_113); // http://www.eclipse.org/ocl/3.1.0/Pivot!LiteralExp
-		
-		symbol_0.getOwnedTypes().add(symbol_201); // http://www.eclipse.org/ocl/3.1.0/Pivot!PrimitiveLiteralExp
-		//
-		// Pivot.ecore::pivot::PrimitiveType http://www.eclipse.org/ocl/3.1.0/Pivot!PrimitiveType
-		//
-		symbol_202.setName("PrimitiveType");
-		symbol_202.getSuperClasses().add(symbol_57); // http://www.eclipse.org/ocl/3.1.0/Pivot!DataType
-		{
-			Comment symbol_397 = PivotFactory.eINSTANCE.createComment();
-			symbol_397.setBody("A primitive type is a data type implemented by the underlying infrastructure and made available for modeling.");
-			symbol_202.getOwnedComments().add(symbol_397);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_202); // http://www.eclipse.org/ocl/3.1.0/Pivot!PrimitiveType
-		//
-		// Pivot.ecore::pivot::Property http://www.eclipse.org/ocl/3.1.0/Pivot!Property
-		//
-		symbol_203.setName("Property");
-		symbol_203.getSuperClasses().add(symbol_82); // http://www.eclipse.org/ocl/3.1.0/Pivot!Feature
-		symbol_203.getSuperClasses().add(symbol_190); // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-		{ // Pivot.ecore::pivot::Property::ConstructorPart
-			symbol_204.setName("ConstructorPart");
-			symbol_204.setType(symbol_53);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ConstructorPart
-			symbol_204.setLower(BigInteger.valueOf(0));
-			symbol_204.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_204.setImplicit(true);
-			symbol_204.setIsResolveProxies(true);
-			symbol_204.setOpposite(symbol_56);
-			
-			symbol_203.getOwnedAttributes().add(symbol_204);
-		}
-		{ // Pivot.ecore::pivot::Property::NavigationCallExp
-			symbol_205.setName("NavigationCallExp");
-			symbol_205.setType(symbol_139);  // http://www.eclipse.org/ocl/3.1.0/Pivot!NavigationCallExp
-			symbol_205.setLower(BigInteger.valueOf(0));
-			symbol_205.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_205.setImplicit(true);
-			symbol_205.setIsResolveProxies(true);
-			symbol_205.setOpposite(symbol_140);
-			
-			symbol_203.getOwnedAttributes().add(symbol_205);
-		}
-		{ // Pivot.ecore::pivot::Property::Property
-			symbol_206.setName("Property");
-			symbol_206.setType(symbol_203);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Property
-			symbol_206.setLower(BigInteger.valueOf(0));
-			symbol_206.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_206.setImplicit(true);
-			symbol_206.setIsResolveProxies(true);
-			
-			symbol_203.getOwnedAttributes().add(symbol_206);
-		}
-		{ // Pivot.ecore::pivot::Property::PropertyCallExp
-			symbol_207.setName("PropertyCallExp");
-			symbol_207.setType(symbol_223);  // http://www.eclipse.org/ocl/3.1.0/Pivot!PropertyCallExp
-			symbol_207.setLower(BigInteger.valueOf(0));
-			symbol_207.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_207.setImplicit(true);
-			symbol_207.setIsResolveProxies(true);
-			symbol_207.setOpposite(symbol_224);
-			
-			symbol_203.getOwnedAttributes().add(symbol_207);
-		}
-		{ // Pivot.ecore::pivot::Property::association
-			symbol_208.setName("association");
-			symbol_208.setType(symbol_7);  // http://www.eclipse.org/ocl/3.1.0/Pivot!AssociationClass
-			symbol_208.setLower(BigInteger.valueOf(0));
-			
-			symbol_208.setIsResolveProxies(true);
-			symbol_208.setOpposite(symbol_9);
-			
-			symbol_203.getOwnedAttributes().add(symbol_208);
-		}
-		{ // Pivot.ecore::pivot::Property::class
-			symbol_209.setName("class");
-			symbol_209.setType(symbol_23);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Class
-			symbol_209.setLower(BigInteger.valueOf(0));
-			
-			symbol_209.setIsReadOnly(true);
-			symbol_209.setIsResolveProxies(true);
-			symbol_209.setIsTransient(true);
-			symbol_209.setIsVolatile(true);
-			{
-				Comment symbol_398 = PivotFactory.eINSTANCE.createComment();
-				symbol_398.setBody("The class that owns the property, and of which the property is an attribute.");
-				symbol_209.getOwnedComments().add(symbol_398);
-			}
-			
-			symbol_203.getOwnedAttributes().add(symbol_209);
-		}
-		{ // Pivot.ecore::pivot::Property::default
-			symbol_210.setName("default");
-			symbol_210.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			symbol_210.setLower(BigInteger.valueOf(0));
-			
-			symbol_210.setIsResolveProxies(true);
-			{
-				Comment symbol_399 = PivotFactory.eINSTANCE.createComment();
-				symbol_399.setBody("A string that is evaluated to give a default value for the attribute when an object of the owning class is instantiated.");
-				symbol_210.getOwnedComments().add(symbol_399);
-			}
-			
-			symbol_203.getOwnedAttributes().add(symbol_210);
-		}
-		{ // Pivot.ecore::pivot::Property::implicit
-			symbol_211.setName("implicit");
-			symbol_211.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			symbol_211.setLower(BigInteger.valueOf(0));
-			
-			symbol_211.setIsResolveProxies(true);
-			
-			symbol_203.getOwnedAttributes().add(symbol_211);
-		}
-		{ // Pivot.ecore::pivot::Property::isComposite
-			symbol_212.setName("isComposite");
-			symbol_212.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_212.setIsResolveProxies(true);
-			{
-				Comment symbol_400 = PivotFactory.eINSTANCE.createComment();
-				symbol_400.setBody("If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute.");
-				symbol_212.getOwnedComments().add(symbol_400);
-			}
-			
-			symbol_203.getOwnedAttributes().add(symbol_212);
-		}
-		{ // Pivot.ecore::pivot::Property::isDerived
-			symbol_213.setName("isDerived");
-			symbol_213.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_213.setIsResolveProxies(true);
-			{
-				Comment symbol_401 = PivotFactory.eINSTANCE.createComment();
-				symbol_401.setBody("If isDerived is true, the value of the attribute is derived from information elsewhere.");
-				symbol_213.getOwnedComments().add(symbol_401);
-			}
-			
-			symbol_203.getOwnedAttributes().add(symbol_213);
-		}
-		{ // Pivot.ecore::pivot::Property::isID
-			symbol_214.setName("isID");
-			symbol_214.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_214.setIsResolveProxies(true);
-			
-			symbol_203.getOwnedAttributes().add(symbol_214);
-		}
-		{ // Pivot.ecore::pivot::Property::isReadOnly
-			symbol_215.setName("isReadOnly");
-			symbol_215.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_215.setIsResolveProxies(true);
-			{
-				Comment symbol_402 = PivotFactory.eINSTANCE.createComment();
-				symbol_402.setBody("If isReadOnly is true, the attribute may not be written to after initialization.");
-				symbol_215.getOwnedComments().add(symbol_402);
-			}
-			
-			symbol_203.getOwnedAttributes().add(symbol_215);
-		}
-		{ // Pivot.ecore::pivot::Property::isResolveProxies
-			symbol_216.setName("isResolveProxies");
-			symbol_216.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_216.setIsResolveProxies(true);
-			
-			symbol_203.getOwnedAttributes().add(symbol_216);
-		}
-		{ // Pivot.ecore::pivot::Property::isTransient
-			symbol_217.setName("isTransient");
-			symbol_217.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_217.setIsResolveProxies(true);
-			
-			symbol_203.getOwnedAttributes().add(symbol_217);
-		}
-		{ // Pivot.ecore::pivot::Property::isUnsettable
-			symbol_218.setName("isUnsettable");
-			symbol_218.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_218.setIsResolveProxies(true);
-			
-			symbol_203.getOwnedAttributes().add(symbol_218);
-		}
-		{ // Pivot.ecore::pivot::Property::isVolatile
-			symbol_219.setName("isVolatile");
-			symbol_219.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_219.setIsResolveProxies(true);
-			
-			symbol_203.getOwnedAttributes().add(symbol_219);
-		}
-		{ // Pivot.ecore::pivot::Property::keys
-			symbol_220.setName("keys");
-			symbol_220.setType(symbol_203);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Property
-			symbol_220.setLower(BigInteger.valueOf(0));
-			symbol_220.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_220.setIsResolveProxies(true);
-			
-			symbol_203.getOwnedAttributes().add(symbol_220);
-		}
-		{ // Pivot.ecore::pivot::Property::opposite
-			symbol_221.setName("opposite");
-			symbol_221.setType(symbol_203);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Property
-			symbol_221.setLower(BigInteger.valueOf(0));
-			
-			symbol_221.setIsResolveProxies(true);
-			symbol_221.setOpposite(symbol_206);
-			{
-				Comment symbol_403 = PivotFactory.eINSTANCE.createComment();
-				symbol_403.setBody("Two attributes attr1 and attr2 of two objects o1 and o2 (which may be the same object) may be paired with each other so that o1.attr1 refers to o2 if and only if o2.attr2 refers to o1. In such a case attr1 is the opposite of attr2 and attr2 is the opposite of attr1.");
-				symbol_221.getOwnedComments().add(symbol_403);
-			}
-			
-			symbol_203.getOwnedAttributes().add(symbol_221);
-		}
-		{ // Pivot.ecore::pivot::Property::owningType
-			symbol_222.setName("owningType");
-			symbol_222.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			symbol_222.setLower(BigInteger.valueOf(0));
-			
-			symbol_222.setIsResolveProxies(true);
-			symbol_222.setOpposite(symbol_291);
-			
-			symbol_203.getOwnedAttributes().add(symbol_222);
-		}
-		{	// Pivot.ecore::pivot::Property::isAttribute()
-			Operation symbol_404 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isAttribute(http://www.eclipse.org/ocl/3.1.0/Pivot!Property)
-			symbol_404.setName("isAttribute");
-			symbol_404.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			Parameter symbol_405 = PivotFactory.eINSTANCE.createParameter(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property!isAttribute(http://www.eclipse.org/ocl/3.1.0/Pivot!Property)!p
-			symbol_405.setName("p");
-			symbol_405.setType(symbol_203);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Property
-			
-			
-			symbol_404.getOwnedParameters().add(symbol_405);
-			
-			symbol_203.getOwnedOperations().add(symbol_404);
-		}
-		{
-			Comment symbol_406 = PivotFactory.eINSTANCE.createComment();
-			symbol_406.setBody("A property is a typed element that represents an attribute of a class.\r\nProperty specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.");
-			symbol_203.getOwnedComments().add(symbol_406);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_203); // http://www.eclipse.org/ocl/3.1.0/Pivot!Property
-		//
-		// Pivot.ecore::pivot::PropertyCallExp http://www.eclipse.org/ocl/3.1.0/Pivot!PropertyCallExp
-		//
-		symbol_223.setName("PropertyCallExp");
-		symbol_223.getSuperClasses().add(symbol_139); // http://www.eclipse.org/ocl/3.1.0/Pivot!NavigationCallExp
-		{ // Pivot.ecore::pivot::PropertyCallExp::referredProperty
-			symbol_224.setName("referredProperty");
-			symbol_224.setType(symbol_203);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Property
-			symbol_224.setLower(BigInteger.valueOf(0));
-			
-			symbol_224.setIsResolveProxies(true);
-			symbol_224.setOpposite(symbol_207);
-			
-			symbol_223.getOwnedAttributes().add(symbol_224);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_223); // http://www.eclipse.org/ocl/3.1.0/Pivot!PropertyCallExp
-		//
-		// Pivot.ecore::pivot::RealLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!RealLiteralExp
-		//
-		symbol_226.setName("RealLiteralExp");
-		symbol_226.getSuperClasses().add(symbol_143); // http://www.eclipse.org/ocl/3.1.0/Pivot!NumericLiteralExp
-		{ // Pivot.ecore::pivot::RealLiteralExp::realSymbol
-			symbol_227.setName("realSymbol");
-			symbol_227.setType(symbol_225);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Real
-			
-			symbol_227.setIsResolveProxies(true);
-			
-			symbol_226.getOwnedAttributes().add(symbol_227);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_226); // http://www.eclipse.org/ocl/3.1.0/Pivot!RealLiteralExp
-		//
-		// Pivot.ecore::pivot::SelfType http://www.eclipse.org/ocl/3.1.0/Pivot!SelfType
-		//
-		symbol_228.setName("SelfType");
-		symbol_228.getSuperClasses().add(symbol_23); // http://www.eclipse.org/ocl/3.1.0/Pivot!Class
-		{	// Pivot.ecore::pivot::SelfType::resolveSelfType()
-			Operation symbol_407 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!SelfType!resolveSelfType(http://www.eclipse.org/ocl/3.1.0/Pivot!Type)
-			symbol_407.setName("resolveSelfType");
-			symbol_407.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			
-			Parameter symbol_408 = PivotFactory.eINSTANCE.createParameter(); // http://www.eclipse.org/ocl/3.1.0/Pivot!SelfType!resolveSelfType(http://www.eclipse.org/ocl/3.1.0/Pivot!Type)!selfType
-			symbol_408.setName("selfType");
-			symbol_408.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			
-			
-			symbol_407.getOwnedParameters().add(symbol_408);
-			
-			symbol_228.getOwnedOperations().add(symbol_407);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_228); // http://www.eclipse.org/ocl/3.1.0/Pivot!SelfType
-		//
-		// Pivot.ecore::pivot::SendSignalAction http://www.eclipse.org/ocl/3.1.0/Pivot!SendSignalAction
-		//
-		symbol_229.setName("SendSignalAction");
-		symbol_229.getSuperClasses().add(symbol_133); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		{ // Pivot.ecore::pivot::SendSignalAction::MessageExp
-			symbol_230.setName("MessageExp");
-			symbol_230.setType(symbol_118);  // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageExp
-			symbol_230.setLower(BigInteger.valueOf(0));
-			
-			symbol_230.setImplicit(true);
-			symbol_230.setIsResolveProxies(true);
-			symbol_230.setOpposite(symbol_121);
-			
-			symbol_229.getOwnedAttributes().add(symbol_230);
-		}
-		{ // Pivot.ecore::pivot::SendSignalAction::signal
-			symbol_231.setName("signal");
-			symbol_231.setType(symbol_234);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Signal
-			
-			symbol_231.setIsResolveProxies(true);
-			symbol_231.setOpposite(symbol_236);
-			
-			symbol_229.getOwnedAttributes().add(symbol_231);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_229); // http://www.eclipse.org/ocl/3.1.0/Pivot!SendSignalAction
-		//
-		// Pivot.ecore::pivot::SequenceType http://www.eclipse.org/ocl/3.1.0/Pivot!SequenceType
-		//
-		symbol_232.setName("SequenceType");
-		symbol_232.getSuperClasses().add(symbol_39); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionType
-		
-		symbol_0.getOwnedTypes().add(symbol_232); // http://www.eclipse.org/ocl/3.1.0/Pivot!SequenceType
-		//
-		// Pivot.ecore::pivot::SetType http://www.eclipse.org/ocl/3.1.0/Pivot!SetType
-		//
-		symbol_233.setName("SetType");
-		symbol_233.getSuperClasses().add(symbol_39); // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionType
-		
-		symbol_0.getOwnedTypes().add(symbol_233); // http://www.eclipse.org/ocl/3.1.0/Pivot!SetType
-		//
-		// Pivot.ecore::pivot::Signal http://www.eclipse.org/ocl/3.1.0/Pivot!Signal
-		//
-		symbol_234.setName("Signal");
-		symbol_234.getSuperClasses().add(symbol_133); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		{ // Pivot.ecore::pivot::Signal::MessageType
-			symbol_235.setName("MessageType");
-			symbol_235.setType(symbol_123);  // http://www.eclipse.org/ocl/3.1.0/Pivot!MessageType
-			symbol_235.setLower(BigInteger.valueOf(0));
-			symbol_235.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_235.setImplicit(true);
-			symbol_235.setIsResolveProxies(true);
-			symbol_235.setOpposite(symbol_125);
-			
-			symbol_234.getOwnedAttributes().add(symbol_235);
-		}
-		{ // Pivot.ecore::pivot::Signal::SendSignalAction
-			symbol_236.setName("SendSignalAction");
-			symbol_236.setType(symbol_229);  // http://www.eclipse.org/ocl/3.1.0/Pivot!SendSignalAction
-			symbol_236.setLower(BigInteger.valueOf(0));
-			symbol_236.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_236.setImplicit(true);
-			symbol_236.setIsResolveProxies(true);
-			symbol_236.setOpposite(symbol_231);
-			
-			symbol_234.getOwnedAttributes().add(symbol_236);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_234); // http://www.eclipse.org/ocl/3.1.0/Pivot!Signal
-		//
-		// Pivot.ecore::pivot::State http://www.eclipse.org/ocl/3.1.0/Pivot!State
-		//
-		symbol_237.setName("State");
-		symbol_237.getSuperClasses().add(symbol_133); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		{ // Pivot.ecore::pivot::State::StateExp
-			symbol_238.setName("StateExp");
-			symbol_238.setType(symbol_239);  // http://www.eclipse.org/ocl/3.1.0/Pivot!StateExp
-			symbol_238.setLower(BigInteger.valueOf(0));
-			symbol_238.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_238.setImplicit(true);
-			symbol_238.setIsResolveProxies(true);
-			symbol_238.setOpposite(symbol_240);
-			
-			symbol_237.getOwnedAttributes().add(symbol_238);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_237); // http://www.eclipse.org/ocl/3.1.0/Pivot!State
-		//
-		// Pivot.ecore::pivot::StateExp http://www.eclipse.org/ocl/3.1.0/Pivot!StateExp
-		//
-		symbol_239.setName("StateExp");
-		symbol_239.getSuperClasses().add(symbol_145); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-		{ // Pivot.ecore::pivot::StateExp::referredState
-			symbol_240.setName("referredState");
-			symbol_240.setType(symbol_237);  // http://www.eclipse.org/ocl/3.1.0/Pivot!State
-			symbol_240.setLower(BigInteger.valueOf(0));
-			
-			symbol_240.setIsResolveProxies(true);
-			symbol_240.setOpposite(symbol_238);
-			
-			symbol_239.getOwnedAttributes().add(symbol_240);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_239); // http://www.eclipse.org/ocl/3.1.0/Pivot!StateExp
-		//
-		// Pivot.ecore::pivot::StringLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!StringLiteralExp
-		//
-		symbol_242.setName("StringLiteralExp");
-		symbol_242.getSuperClasses().add(symbol_201); // http://www.eclipse.org/ocl/3.1.0/Pivot!PrimitiveLiteralExp
-		{ // Pivot.ecore::pivot::StringLiteralExp::stringSymbol
-			symbol_243.setName("stringSymbol");
-			symbol_243.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			
-			symbol_243.setIsResolveProxies(true);
-			
-			symbol_242.getOwnedAttributes().add(symbol_243);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_242); // http://www.eclipse.org/ocl/3.1.0/Pivot!StringLiteralExp
-		//
-		// Pivot.ecore::pivot::TemplateBinding http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateBinding
-		//
-		symbol_244.setName("TemplateBinding");
-		symbol_244.getSuperClasses().add(symbol_63); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-		{ // Pivot.ecore::pivot::TemplateBinding::boundElement
-			symbol_245.setName("boundElement");
-			symbol_245.setType(symbol_268);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement
-			
-			symbol_245.setIsResolveProxies(true);
-			symbol_245.setOpposite(symbol_270);
-			{
-				Comment symbol_409 = PivotFactory.eINSTANCE.createComment();
-				symbol_409.setBody("The element that is bound by this binding.");
-				symbol_245.getOwnedComments().add(symbol_409);
-			}
-			
-			symbol_244.getOwnedAttributes().add(symbol_245);
-		}
-		{ // Pivot.ecore::pivot::TemplateBinding::parameterSubstitution
-			symbol_246.setName("parameterSubstitution");
-			symbol_246.setType(symbol_256);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterSubstitution
-			symbol_246.setLower(BigInteger.valueOf(0));
-			symbol_246.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_246.setIsComposite(true);
-			symbol_246.setIsResolveProxies(true);
-			symbol_246.setOpposite(symbol_260);
-			{
-				Comment symbol_410 = PivotFactory.eINSTANCE.createComment();
-				symbol_410.setBody("The parameter substitutions owned by this template binding.");
-				symbol_246.getOwnedComments().add(symbol_410);
-			}
-			
-			symbol_244.getOwnedAttributes().add(symbol_246);
-		}
-		{ // Pivot.ecore::pivot::TemplateBinding::signature
-			symbol_247.setName("signature");
-			symbol_247.setType(symbol_263);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature
-			
-			symbol_247.setIsResolveProxies(true);
-			symbol_247.setOpposite(symbol_264);
-			{
-				Comment symbol_411 = PivotFactory.eINSTANCE.createComment();
-				symbol_411.setBody("The template signature for the template that is the target of the binding.");
-				symbol_247.getOwnedComments().add(symbol_411);
-			}
-			
-			symbol_244.getOwnedAttributes().add(symbol_247);
-		}
-		{
-			Comment symbol_412 = PivotFactory.eINSTANCE.createComment();
-			symbol_412.setBody("A template binding represents a relationship between a templateable element and a template. A template binding specifies the substitutions of actual parameters for the formal parameters of the template.");
-			symbol_244.getOwnedComments().add(symbol_412);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_244); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateBinding
-		//
-		// Pivot.ecore::pivot::TemplateParameter http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter
-		//
-		symbol_248.setName("TemplateParameter");
-		symbol_248.getSuperClasses().add(symbol_63); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-		{ // Pivot.ecore::pivot::TemplateParameter::TemplateParameterSubstitution
-			symbol_249.setName("TemplateParameterSubstitution");
-			symbol_249.setType(symbol_256);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterSubstitution
-			symbol_249.setLower(BigInteger.valueOf(0));
-			symbol_249.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_249.setImplicit(true);
-			symbol_249.setIsResolveProxies(true);
-			symbol_249.setOpposite(symbol_258);
-			
-			symbol_248.getOwnedAttributes().add(symbol_249);
-		}
-		{ // Pivot.ecore::pivot::TemplateParameter::TemplateSignature
-			symbol_250.setName("TemplateSignature");
-			symbol_250.setType(symbol_263);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature
-			symbol_250.setLower(BigInteger.valueOf(0));
-			symbol_250.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_250.setImplicit(true);
-			symbol_250.setIsResolveProxies(true);
-			symbol_250.setOpposite(symbol_266);
-			
-			symbol_248.getOwnedAttributes().add(symbol_250);
-		}
-		{ // Pivot.ecore::pivot::TemplateParameter::default
-			symbol_251.setName("default");
-			symbol_251.setType(symbol_190);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-			symbol_251.setLower(BigInteger.valueOf(0));
-			
-			symbol_251.setIsResolveProxies(true);
-			symbol_251.setOpposite(symbol_191);
-			{
-				Comment symbol_413 = PivotFactory.eINSTANCE.createComment();
-				symbol_413.setBody("The element that is the default for this formal template parameter.");
-				symbol_251.getOwnedComments().add(symbol_413);
-			}
-			
-			symbol_248.getOwnedAttributes().add(symbol_251);
-		}
-		{ // Pivot.ecore::pivot::TemplateParameter::ownedDefault
-			symbol_252.setName("ownedDefault");
-			symbol_252.setType(symbol_190);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-			symbol_252.setLower(BigInteger.valueOf(0));
-			
-			symbol_252.setIsComposite(true);
-			symbol_252.setIsResolveProxies(true);
-			{
-				Comment symbol_414 = PivotFactory.eINSTANCE.createComment();
-				symbol_414.setBody("The element that is owned by this template parameter for the purpose of providing a default.");
-				symbol_252.getOwnedComments().add(symbol_414);
-			}
-			
-			symbol_248.getOwnedAttributes().add(symbol_252);
-		}
-		{ // Pivot.ecore::pivot::TemplateParameter::ownedParameteredElement
-			symbol_253.setName("ownedParameteredElement");
-			symbol_253.setType(symbol_190);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-			symbol_253.setLower(BigInteger.valueOf(0));
-			
-			symbol_253.setIsComposite(true);
-			symbol_253.setIsResolveProxies(true);
-			symbol_253.setOpposite(symbol_193);
-			{
-				Comment symbol_415 = PivotFactory.eINSTANCE.createComment();
-				symbol_415.setBody("The element that is owned by this template parameter.");
-				symbol_253.getOwnedComments().add(symbol_415);
-			}
-			
-			symbol_248.getOwnedAttributes().add(symbol_253);
-		}
-		{ // Pivot.ecore::pivot::TemplateParameter::parameteredElement
-			symbol_254.setName("parameteredElement");
-			symbol_254.setType(symbol_190);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-			
-			symbol_254.setIsResolveProxies(true);
-			symbol_254.setOpposite(symbol_194);
-			{
-				Comment symbol_416 = PivotFactory.eINSTANCE.createComment();
-				symbol_416.setBody("The element exposed by this template parameter.");
-				symbol_254.getOwnedComments().add(symbol_416);
-			}
-			
-			symbol_248.getOwnedAttributes().add(symbol_254);
-		}
-		{ // Pivot.ecore::pivot::TemplateParameter::signature
-			symbol_255.setName("signature");
-			symbol_255.setType(symbol_263);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature
-			
-			symbol_255.setIsResolveProxies(true);
-			symbol_255.setOpposite(symbol_265);
-			{
-				Comment symbol_417 = PivotFactory.eINSTANCE.createComment();
-				symbol_417.setBody("The template signature that owns this template parameter.");
-				symbol_255.getOwnedComments().add(symbol_417);
-			}
-			
-			symbol_248.getOwnedAttributes().add(symbol_255);
-		}
-		{
-			Comment symbol_418 = PivotFactory.eINSTANCE.createComment();
-			symbol_418.setBody("A template parameter exposes a parameterable element as a formal template parameter of a template.");
-			symbol_248.getOwnedComments().add(symbol_418);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_248); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter
-		//
-		// Pivot.ecore::pivot::TemplateParameterSubstitution http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterSubstitution
-		//
-		symbol_256.setName("TemplateParameterSubstitution");
-		symbol_256.getSuperClasses().add(symbol_63); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-		{ // Pivot.ecore::pivot::TemplateParameterSubstitution::actual
-			symbol_257.setName("actual");
-			symbol_257.setType(symbol_190);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-			
-			symbol_257.setIsResolveProxies(true);
-			{
-				Comment symbol_419 = PivotFactory.eINSTANCE.createComment();
-				symbol_419.setBody("The element that is the actual parameter for this substitution.");
-				symbol_257.getOwnedComments().add(symbol_419);
-			}
-			
-			symbol_256.getOwnedAttributes().add(symbol_257);
-		}
-		{ // Pivot.ecore::pivot::TemplateParameterSubstitution::formal
-			symbol_258.setName("formal");
-			symbol_258.setType(symbol_248);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter
-			
-			symbol_258.setIsResolveProxies(true);
-			symbol_258.setOpposite(symbol_249);
-			{
-				Comment symbol_420 = PivotFactory.eINSTANCE.createComment();
-				symbol_420.setBody("The formal template parameter that is associated with this substitution.");
-				symbol_258.getOwnedComments().add(symbol_420);
-			}
-			
-			symbol_256.getOwnedAttributes().add(symbol_258);
-		}
-		{ // Pivot.ecore::pivot::TemplateParameterSubstitution::ownedActual
-			symbol_259.setName("ownedActual");
-			symbol_259.setType(symbol_190);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-			symbol_259.setLower(BigInteger.valueOf(0));
-			
-			symbol_259.setIsComposite(true);
-			symbol_259.setIsResolveProxies(true);
-			symbol_259.setOpposite(symbol_192);
-			{
-				Comment symbol_421 = PivotFactory.eINSTANCE.createComment();
-				symbol_421.setBody("The actual parameter that is owned by this substitution.");
-				symbol_259.getOwnedComments().add(symbol_421);
-			}
-			
-			symbol_256.getOwnedAttributes().add(symbol_259);
-		}
-		{ // Pivot.ecore::pivot::TemplateParameterSubstitution::templateBinding
-			symbol_260.setName("templateBinding");
-			symbol_260.setType(symbol_244);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateBinding
-			
-			symbol_260.setIsResolveProxies(true);
-			symbol_260.setOpposite(symbol_246);
-			{
-				Comment symbol_422 = PivotFactory.eINSTANCE.createComment();
-				symbol_422.setBody("The optional bindings from this element to templates.");
-				symbol_260.getOwnedComments().add(symbol_422);
-			}
-			
-			symbol_256.getOwnedAttributes().add(symbol_260);
-		}
-		{
-			Comment symbol_423 = PivotFactory.eINSTANCE.createComment();
-			symbol_423.setBody("A template parameter substitution relates the actual parameter to a formal template parameter as part of a template binding.");
-			symbol_256.getOwnedComments().add(symbol_423);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_256); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterSubstitution
-		//
-		// Pivot.ecore::pivot::TemplateParameterType http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterType
-		//
-		symbol_261.setName("TemplateParameterType");
-		symbol_261.getSuperClasses().add(symbol_279); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-		{ // Pivot.ecore::pivot::TemplateParameterType::specification
-			symbol_262.setName("specification");
-			symbol_262.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			symbol_262.setLower(BigInteger.valueOf(0));
-			
-			symbol_262.setIsResolveProxies(true);
-			
-			symbol_261.getOwnedAttributes().add(symbol_262);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_261); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameterType
-		//
-		// Pivot.ecore::pivot::TemplateSignature http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature
-		//
-		symbol_263.setName("TemplateSignature");
-		symbol_263.getSuperClasses().add(symbol_63); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-		{ // Pivot.ecore::pivot::TemplateSignature::TemplateBinding
-			symbol_264.setName("TemplateBinding");
-			symbol_264.setType(symbol_244);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateBinding
-			symbol_264.setLower(BigInteger.valueOf(0));
-			symbol_264.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_264.setImplicit(true);
-			symbol_264.setIsResolveProxies(true);
-			symbol_264.setOpposite(symbol_247);
-			
-			symbol_263.getOwnedAttributes().add(symbol_264);
-		}
-		{ // Pivot.ecore::pivot::TemplateSignature::ownedParameter
-			symbol_265.setName("ownedParameter");
-			symbol_265.setType(symbol_248);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter
-			symbol_265.setLower(BigInteger.valueOf(0));
-			symbol_265.setUpper(BigInteger.valueOf(-1));
-			symbol_265.setIsOrdered(true);
-			
-			symbol_265.setIsComposite(true);
-			symbol_265.setIsResolveProxies(true);
-			symbol_265.setOpposite(symbol_255);
-			{
-				Comment symbol_424 = PivotFactory.eINSTANCE.createComment();
-				symbol_424.setBody("The formal template parameters that are owned by this template signature.");
-				symbol_265.getOwnedComments().add(symbol_424);
-			}
-			
-			symbol_263.getOwnedAttributes().add(symbol_265);
-		}
-		{ // Pivot.ecore::pivot::TemplateSignature::parameter
-			symbol_266.setName("parameter");
-			symbol_266.setType(symbol_248);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter
-			symbol_266.setUpper(BigInteger.valueOf(-1));
-			symbol_266.setIsOrdered(true);
-			
-			symbol_266.setIsResolveProxies(true);
-			symbol_266.setOpposite(symbol_250);
-			{
-				Comment symbol_425 = PivotFactory.eINSTANCE.createComment();
-				symbol_425.setBody("The ordered set of all formal template parameters for this template signature.");
-				symbol_266.getOwnedComments().add(symbol_425);
-			}
-			
-			symbol_263.getOwnedAttributes().add(symbol_266);
-		}
-		{ // Pivot.ecore::pivot::TemplateSignature::template
-			symbol_267.setName("template");
-			symbol_267.setType(symbol_268);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement
-			
-			symbol_267.setIsResolveProxies(true);
-			symbol_267.setOpposite(symbol_269);
-			{
-				Comment symbol_426 = PivotFactory.eINSTANCE.createComment();
-				symbol_426.setBody("The element that owns this template signature.");
-				symbol_267.getOwnedComments().add(symbol_426);
-			}
-			
-			symbol_263.getOwnedAttributes().add(symbol_267);
-		}
-		{
-			Comment symbol_427 = PivotFactory.eINSTANCE.createComment();
-			symbol_427.setBody("A template signature bundles the set of formal template parameters for a templated element.");
-			symbol_263.getOwnedComments().add(symbol_427);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_263); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature
-		//
-		// Pivot.ecore::pivot::TemplateableElement http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement
-		//
-		symbol_268.setName("TemplateableElement");
-		symbol_268.getSuperClasses().add(symbol_63); // http://www.eclipse.org/ocl/3.1.0/Pivot!Element
-		{ // Pivot.ecore::pivot::TemplateableElement::ownedTemplateSignature
-			symbol_269.setName("ownedTemplateSignature");
-			symbol_269.setType(symbol_263);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateSignature
-			symbol_269.setLower(BigInteger.valueOf(0));
-			
-			symbol_269.setIsComposite(true);
-			symbol_269.setIsResolveProxies(true);
-			symbol_269.setOpposite(symbol_267);
-			{
-				Comment symbol_428 = PivotFactory.eINSTANCE.createComment();
-				symbol_428.setBody("The optional template signature specifying the formal template parameters.");
-				symbol_269.getOwnedComments().add(symbol_428);
-			}
-			
-			symbol_268.getOwnedAttributes().add(symbol_269);
-		}
-		{ // Pivot.ecore::pivot::TemplateableElement::templateBinding
-			symbol_270.setName("templateBinding");
-			symbol_270.setType(symbol_244);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateBinding
-			symbol_270.setLower(BigInteger.valueOf(0));
-			symbol_270.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_270.setIsComposite(true);
-			symbol_270.setIsResolveProxies(true);
-			symbol_270.setOpposite(symbol_245);
-			{
-				Comment symbol_429 = PivotFactory.eINSTANCE.createComment();
-				symbol_429.setBody("The optional bindings from this element to templates.");
-				symbol_270.getOwnedComments().add(symbol_429);
-			}
-			
-			symbol_268.getOwnedAttributes().add(symbol_270);
-		}
-		{ // Pivot.ecore::pivot::TemplateableElement::unspecializedElement
-			symbol_271.setName("unspecializedElement");
-			symbol_271.setType(symbol_268);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement
-			symbol_271.setLower(BigInteger.valueOf(0));
-			
-			symbol_271.setIsTransient(true);
-			
-			symbol_268.getOwnedAttributes().add(symbol_271);
-		}
-		{	// Pivot.ecore::pivot::TemplateableElement::isTemplate()
-			Operation symbol_430 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement!isTemplate()
-			symbol_430.setName("isTemplate");
-			symbol_430.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			{
-				Comment symbol_431 = PivotFactory.eINSTANCE.createComment();
-				symbol_431.setBody("The query isTemplate() returns whether this templateable element is actually a template.");
-				symbol_430.getOwnedComments().add(symbol_431);
-			}
-			
-			symbol_268.getOwnedOperations().add(symbol_430);
-		}
-		{	// Pivot.ecore::pivot::TemplateableElement::parameterableElements()
-			Operation symbol_432 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement!parameterableElements()
-			symbol_432.setName("parameterableElements");
-			symbol_432.setType(symbol_190);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-			symbol_432.setLower(BigInteger.valueOf(0));
-			symbol_432.setUpper(BigInteger.valueOf(-1));
-			
-			{
-				Comment symbol_433 = PivotFactory.eINSTANCE.createComment();
-				symbol_433.setBody("The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements.");
-				symbol_432.getOwnedComments().add(symbol_433);
-			}
-			
-			symbol_268.getOwnedOperations().add(symbol_432);
-		}
-		{
-			Comment symbol_434 = PivotFactory.eINSTANCE.createComment();
-			symbol_434.setBody("A templateable element is an element that can optionally be defined as a template and bound to other templates.");
-			symbol_268.getOwnedComments().add(symbol_434);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_268); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement
-		//
-		// Pivot.ecore::pivot::Throwable http://www.eclipse.org/ocl/3.1.0/Pivot!Throwable
-		//
-		symbol_272.setName("Throwable");
-		symbol_272.getSuperClasses().add(standardLibrary.getOclElementType());
-		
-		symbol_0.getOwnedTypes().add(symbol_272); // http://www.eclipse.org/ocl/3.1.0/Pivot!Throwable
-		//
-		// Pivot.ecore::pivot::TupleLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralExp
-		//
-		symbol_273.setName("TupleLiteralExp");
-		symbol_273.getSuperClasses().add(symbol_113); // http://www.eclipse.org/ocl/3.1.0/Pivot!LiteralExp
-		{ // Pivot.ecore::pivot::TupleLiteralExp::part
-			symbol_274.setName("part");
-			symbol_274.setType(symbol_275);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralPart
-			symbol_274.setLower(BigInteger.valueOf(0));
-			symbol_274.setUpper(BigInteger.valueOf(-1));
-			symbol_274.setIsOrdered(true);
-			
-			symbol_274.setIsComposite(true);
-			symbol_274.setIsResolveProxies(true);
-			symbol_274.setOpposite(symbol_276);
-			
-			symbol_273.getOwnedAttributes().add(symbol_274);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_273); // http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralExp
-		//
-		// Pivot.ecore::pivot::TupleLiteralPart http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralPart
-		//
-		symbol_275.setName("TupleLiteralPart");
-		symbol_275.getSuperClasses().add(symbol_320); // http://www.eclipse.org/ocl/3.1.0/Pivot!VariableDeclaration
-		{ // Pivot.ecore::pivot::TupleLiteralPart::TupleLiteralExp
-			symbol_276.setName("TupleLiteralExp");
-			symbol_276.setType(symbol_273);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralExp
-			symbol_276.setLower(BigInteger.valueOf(0));
-			
-			symbol_276.setImplicit(true);
-			symbol_276.setIsResolveProxies(true);
-			symbol_276.setOpposite(symbol_274);
-			
-			symbol_275.getOwnedAttributes().add(symbol_276);
-		}
-		{ // Pivot.ecore::pivot::TupleLiteralPart::initExpression
-			symbol_277.setName("initExpression");
-			symbol_277.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			symbol_277.setLower(BigInteger.valueOf(0));
-			
-			symbol_277.setIsComposite(true);
-			symbol_277.setIsResolveProxies(true);
-			symbol_277.setOpposite(symbol_157);
-			
-			symbol_275.getOwnedAttributes().add(symbol_277);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_275); // http://www.eclipse.org/ocl/3.1.0/Pivot!TupleLiteralPart
-		//
-		// Pivot.ecore::pivot::TupleType http://www.eclipse.org/ocl/3.1.0/Pivot!TupleType
-		//
-		symbol_278.setName("TupleType");
-		symbol_278.getSuperClasses().add(symbol_57); // http://www.eclipse.org/ocl/3.1.0/Pivot!DataType
-		
-		symbol_0.getOwnedTypes().add(symbol_278); // http://www.eclipse.org/ocl/3.1.0/Pivot!TupleType
-		//
-		// Pivot.ecore::pivot::Type http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-		//
-		symbol_279.setName("Type");
-		symbol_279.getSuperClasses().add(symbol_133); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		symbol_279.getSuperClasses().add(symbol_268); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateableElement
-		symbol_279.getSuperClasses().add(symbol_190); // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-		{ // Pivot.ecore::pivot::Type::ClassifierType
-			symbol_280.setName("ClassifierType");
-			symbol_280.setType(symbol_26);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ClassifierType
-			symbol_280.setLower(BigInteger.valueOf(0));
-			symbol_280.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_280.setImplicit(true);
-			symbol_280.setIsResolveProxies(true);
-			symbol_280.setOpposite(symbol_27);
-			
-			symbol_279.getOwnedAttributes().add(symbol_280);
-		}
-		{ // Pivot.ecore::pivot::Type::CollectionType
-			symbol_281.setName("CollectionType");
-			symbol_281.setType(symbol_39);  // http://www.eclipse.org/ocl/3.1.0/Pivot!CollectionType
-			symbol_281.setLower(BigInteger.valueOf(0));
-			symbol_281.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_281.setImplicit(true);
-			symbol_281.setIsResolveProxies(true);
-			symbol_281.setOpposite(symbol_40);
-			
-			symbol_279.getOwnedAttributes().add(symbol_281);
-		}
-		{ // Pivot.ecore::pivot::Type::DataType
-			symbol_282.setName("DataType");
-			symbol_282.setType(symbol_57);  // http://www.eclipse.org/ocl/3.1.0/Pivot!DataType
-			symbol_282.setLower(BigInteger.valueOf(0));
-			symbol_282.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_282.setImplicit(true);
-			symbol_282.setIsResolveProxies(true);
-			symbol_282.setOpposite(symbol_58);
-			
-			symbol_279.getOwnedAttributes().add(symbol_282);
-		}
-		{ // Pivot.ecore::pivot::Type::LambdaType
-			symbol_283.setName("LambdaType");
-			symbol_283.setType(symbol_104);  // http://www.eclipse.org/ocl/3.1.0/Pivot!LambdaType
-			symbol_283.setLower(BigInteger.valueOf(0));
-			symbol_283.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_283.setImplicit(true);
-			symbol_283.setIsResolveProxies(true);
-			
-			symbol_279.getOwnedAttributes().add(symbol_283);
-		}
-		{ // Pivot.ecore::pivot::Type::Operation
-			symbol_284.setName("Operation");
-			symbol_284.setType(symbol_164);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation
-			symbol_284.setLower(BigInteger.valueOf(0));
-			symbol_284.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_284.setImplicit(true);
-			symbol_284.setIsResolveProxies(true);
-			symbol_284.setOpposite(symbol_172);
-			
-			symbol_279.getOwnedAttributes().add(symbol_284);
-		}
-		{ // Pivot.ecore::pivot::Type::Type
-			symbol_285.setName("Type");
-			symbol_285.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			symbol_285.setLower(BigInteger.valueOf(0));
-			symbol_285.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_285.setImplicit(true);
-			symbol_285.setIsResolveProxies(true);
-			symbol_285.setOpposite(symbol_294);
-			
-			symbol_279.getOwnedAttributes().add(symbol_285);
-		}
-		{ // Pivot.ecore::pivot::Type::TypeExp
-			symbol_286.setName("TypeExp");
-			symbol_286.setType(symbol_295);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TypeExp
-			symbol_286.setLower(BigInteger.valueOf(0));
-			symbol_286.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_286.setImplicit(true);
-			symbol_286.setIsResolveProxies(true);
-			symbol_286.setOpposite(symbol_296);
-			
-			symbol_279.getOwnedAttributes().add(symbol_286);
-		}
-		{ // Pivot.ecore::pivot::Type::TypeTemplateParameter
-			symbol_287.setName("TypeTemplateParameter");
-			symbol_287.setType(symbol_297);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TypeTemplateParameter
-			symbol_287.setLower(BigInteger.valueOf(0));
-			symbol_287.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_287.setImplicit(true);
-			symbol_287.setIsResolveProxies(true);
-			symbol_287.setOpposite(symbol_299);
-			
-			symbol_279.getOwnedAttributes().add(symbol_287);
-		}
-		{ // Pivot.ecore::pivot::Type::TypedElement
-			symbol_288.setName("TypedElement");
-			symbol_288.setType(symbol_300);  // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedElement
-			symbol_288.setLower(BigInteger.valueOf(0));
-			symbol_288.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_288.setImplicit(true);
-			symbol_288.setIsResolveProxies(true);
-			symbol_288.setOpposite(symbol_301);
-			
-			symbol_279.getOwnedAttributes().add(symbol_288);
-		}
-		{ // Pivot.ecore::pivot::Type::UnspecifiedType
-			symbol_289.setName("UnspecifiedType");
-			symbol_289.setType(symbol_306);  // http://www.eclipse.org/ocl/3.1.0/Pivot!UnspecifiedType
-			symbol_289.setLower(BigInteger.valueOf(0));
-			symbol_289.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_289.setImplicit(true);
-			symbol_289.setIsResolveProxies(true);
-			
-			symbol_279.getOwnedAttributes().add(symbol_289);
-		}
-		{ // Pivot.ecore::pivot::Type::instanceClassName
-			symbol_290.setName("instanceClassName");
-			symbol_290.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			symbol_290.setLower(BigInteger.valueOf(0));
-			
-			symbol_290.setIsResolveProxies(true);
-			
-			symbol_279.getOwnedAttributes().add(symbol_290);
-		}
-		{ // Pivot.ecore::pivot::Type::ownedAttribute
-			symbol_291.setName("ownedAttribute");
-			symbol_291.setType(symbol_203);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Property
-			symbol_291.setLower(BigInteger.valueOf(0));
-			symbol_291.setUpper(BigInteger.valueOf(-1));
-			symbol_291.setIsOrdered(true);
-			
-			symbol_291.setIsComposite(true);
-			symbol_291.setIsResolveProxies(true);
-			symbol_291.setOpposite(symbol_222);
-			
-			symbol_279.getOwnedAttributes().add(symbol_291);
-		}
-		{ // Pivot.ecore::pivot::Type::ownedOperation
-			symbol_292.setName("ownedOperation");
-			symbol_292.setType(symbol_164);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Operation
-			symbol_292.setLower(BigInteger.valueOf(0));
-			symbol_292.setUpper(BigInteger.valueOf(-1));
-			symbol_292.setIsOrdered(true);
-			
-			symbol_292.setIsComposite(true);
-			symbol_292.setIsResolveProxies(true);
-			symbol_292.setOpposite(symbol_170);
-			
-			symbol_279.getOwnedAttributes().add(symbol_292);
-		}
-		{ // Pivot.ecore::pivot::Type::package
-			symbol_293.setName("package");
-			symbol_293.setType(symbol_178);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Package
-			symbol_293.setLower(BigInteger.valueOf(0));
-			
-			symbol_293.setIsResolveProxies(true);
-			symbol_293.setOpposite(symbol_184);
-			{
-				Comment symbol_435 = PivotFactory.eINSTANCE.createComment();
-				symbol_435.setBody("Specifies the owning package of this classifier, if any.");
-				symbol_293.getOwnedComments().add(symbol_435);
-			}
-			
-			symbol_279.getOwnedAttributes().add(symbol_293);
-		}
-		{ // Pivot.ecore::pivot::Type::superClass
-			symbol_294.setName("superClass");
-			symbol_294.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			symbol_294.setLower(BigInteger.valueOf(0));
-			symbol_294.setUpper(BigInteger.valueOf(-1));
-			symbol_294.setIsOrdered(true);
-			
-			symbol_294.setIsResolveProxies(true);
-			symbol_294.setOpposite(symbol_285);
-			
-			symbol_279.getOwnedAttributes().add(symbol_294);
-		}
-		{	// Pivot.ecore::pivot::Type::resolveSelfType()
-			Operation symbol_436 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!resolveSelfType(http://www.eclipse.org/ocl/3.1.0/Pivot!Type)
-			symbol_436.setName("resolveSelfType");
-			symbol_436.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			
-			Parameter symbol_437 = PivotFactory.eINSTANCE.createParameter(); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type!resolveSelfType(http://www.eclipse.org/ocl/3.1.0/Pivot!Type)!selfType
-			symbol_437.setName("selfType");
-			symbol_437.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			
-			
-			symbol_436.getOwnedParameters().add(symbol_437);
-			
-			symbol_279.getOwnedOperations().add(symbol_436);
-		}
-		{
-			Comment symbol_438 = PivotFactory.eINSTANCE.createComment();
-			symbol_438.setBody("A type is a named element that is used as the type for a typed element. A type can be contained in a package.\r\nType is defined to be a kind of templateable element so that a type can be parameterized. It is also defined to be a kind of parameterable element so that a type can be a formal template parameter.");
-			symbol_279.getOwnedComments().add(symbol_438);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_279); // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-		//
-		// Pivot.ecore::pivot::TypeExp http://www.eclipse.org/ocl/3.1.0/Pivot!TypeExp
-		//
-		symbol_295.setName("TypeExp");
-		symbol_295.getSuperClasses().add(symbol_145); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-		{ // Pivot.ecore::pivot::TypeExp::referredType
-			symbol_296.setName("referredType");
-			symbol_296.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			symbol_296.setLower(BigInteger.valueOf(0));
-			
-			symbol_296.setIsResolveProxies(true);
-			symbol_296.setOpposite(symbol_286);
-			
-			symbol_295.getOwnedAttributes().add(symbol_296);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_295); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypeExp
-		//
-		// Pivot.ecore::pivot::TypeTemplateParameter http://www.eclipse.org/ocl/3.1.0/Pivot!TypeTemplateParameter
-		//
-		symbol_297.setName("TypeTemplateParameter");
-		symbol_297.getSuperClasses().add(symbol_248); // http://www.eclipse.org/ocl/3.1.0/Pivot!TemplateParameter
-		{ // Pivot.ecore::pivot::TypeTemplateParameter::allowSubstitutable
-			symbol_298.setName("allowSubstitutable");
-			symbol_298.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			symbol_298.setIsResolveProxies(true);
-			{
-				Comment symbol_439 = PivotFactory.eINSTANCE.createComment();
-				symbol_439.setBody("Constrains the required relationship between an actual parameter and the parameteredElement for this formal parameter.");
-				symbol_298.getOwnedComments().add(symbol_439);
-			}
-			
-			symbol_297.getOwnedAttributes().add(symbol_298);
-		}
-		{ // Pivot.ecore::pivot::TypeTemplateParameter::constrainingType
-			symbol_299.setName("constrainingType");
-			symbol_299.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			symbol_299.setLower(BigInteger.valueOf(0));
-			symbol_299.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_299.setIsResolveProxies(true);
-			symbol_299.setOpposite(symbol_287);
-			{
-				Comment symbol_440 = PivotFactory.eINSTANCE.createComment();
-				symbol_440.setBody("The classifiers that constrain the argument that can be used for the parameter. If the allowSubstitutable attribute is true, then any classifier that is compatible with this constraining classifier can be substituted; otherwise, it must be either this classifier or one of its subclasses. If this property is empty, there are no constraints on the classifier that can be used as an argument.");
-				symbol_299.getOwnedComments().add(symbol_440);
-			}
-			
-			symbol_297.getOwnedAttributes().add(symbol_299);
-		}
-		{
-			Comment symbol_441 = PivotFactory.eINSTANCE.createComment();
-			symbol_441.setBody("A type template parameter exposes a type as a formal template parameter.");
-			symbol_297.getOwnedComments().add(symbol_441);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_297); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypeTemplateParameter
-		//
-		// Pivot.ecore::pivot::TypedElement http://www.eclipse.org/ocl/3.1.0/Pivot!TypedElement
-		//
-		symbol_300.setName("TypedElement");
-		symbol_300.getSuperClasses().add(symbol_133); // http://www.eclipse.org/ocl/3.1.0/Pivot!NamedElement
-		{ // Pivot.ecore::pivot::TypedElement::type
-			symbol_301.setName("type");
-			symbol_301.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			symbol_301.setLower(BigInteger.valueOf(0));
-			
-			symbol_301.setIsResolveProxies(true);
-			symbol_301.setOpposite(symbol_288);
-			{
-				Comment symbol_442 = PivotFactory.eINSTANCE.createComment();
-				symbol_442.setBody("The type of the TypedElement.");
-				symbol_301.getOwnedComments().add(symbol_442);
-			}
-			
-			symbol_300.getOwnedAttributes().add(symbol_301);
-		}
-		{
-			Comment symbol_443 = PivotFactory.eINSTANCE.createComment();
-			symbol_443.setBody("A typed element is a kind of named element that represents an element with a type.");
-			symbol_300.getOwnedComments().add(symbol_443);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_300); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedElement
-		//
-		// Pivot.ecore::pivot::TypedMultiplicityElement http://www.eclipse.org/ocl/3.1.0/Pivot!TypedMultiplicityElement
-		//
-		symbol_302.setName("TypedMultiplicityElement");
-		symbol_302.getSuperClasses().add(symbol_300); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedElement
-		symbol_302.getSuperClasses().add(symbol_127); // http://www.eclipse.org/ocl/3.1.0/Pivot!MultiplicityElement
-		{	// Pivot.ecore::pivot::TypedMultiplicityElement::CompatibleBody()
-			Operation symbol_444 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedMultiplicityElement!CompatibleBody(http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification)
-			symbol_444.setName("CompatibleBody");
-			symbol_444.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			Parameter symbol_445 = PivotFactory.eINSTANCE.createParameter(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedMultiplicityElement!CompatibleBody(http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification)!bodySpecification
-			symbol_445.setName("bodySpecification");
-			symbol_445.setType(symbol_310);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification
-			
-			
-			symbol_444.getOwnedParameters().add(symbol_445);
-			
-			symbol_302.getOwnedOperations().add(symbol_444);
-		}
-		{	// Pivot.ecore::pivot::TypedMultiplicityElement::makeParameter()
-			Operation symbol_446 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedMultiplicityElement!makeParameter()
-			symbol_446.setName("makeParameter");
-			symbol_446.setType(symbol_186);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Parameter
-			
-			
-			symbol_302.getOwnedOperations().add(symbol_446);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_302); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedMultiplicityElement
-		//
-		// Pivot.ecore::pivot::UnlimitedNaturalLiteralExp http://www.eclipse.org/ocl/3.1.0/Pivot!UnlimitedNaturalLiteralExp
-		//
-		symbol_304.setName("UnlimitedNaturalLiteralExp");
-		symbol_304.getSuperClasses().add(symbol_143); // http://www.eclipse.org/ocl/3.1.0/Pivot!NumericLiteralExp
-		{ // Pivot.ecore::pivot::UnlimitedNaturalLiteralExp::unlimitedNaturalSymbol
-			symbol_305.setName("unlimitedNaturalSymbol");
-			symbol_305.setType(symbol_303);  // http://www.eclipse.org/ocl/3.1.0/Pivot!UnlimitedNatural
-			
-			symbol_305.setIsResolveProxies(true);
-			
-			symbol_304.getOwnedAttributes().add(symbol_305);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_304); // http://www.eclipse.org/ocl/3.1.0/Pivot!UnlimitedNaturalLiteralExp
-		//
-		// Pivot.ecore::pivot::UnspecifiedType http://www.eclipse.org/ocl/3.1.0/Pivot!UnspecifiedType
-		//
-		symbol_306.setName("UnspecifiedType");
-		symbol_306.getSuperClasses().add(symbol_23); // http://www.eclipse.org/ocl/3.1.0/Pivot!Class
-		{ // Pivot.ecore::pivot::UnspecifiedType::lowerBound
-			symbol_307.setName("lowerBound");
-			symbol_307.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			
-			symbol_307.setIsResolveProxies(true);
-			
-			symbol_306.getOwnedAttributes().add(symbol_307);
-		}
-		{ // Pivot.ecore::pivot::UnspecifiedType::upperBound
-			symbol_308.setName("upperBound");
-			symbol_308.setType(symbol_279);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Type
-			
-			symbol_308.setIsResolveProxies(true);
-			symbol_308.setOpposite(symbol_289);
-			
-			symbol_306.getOwnedAttributes().add(symbol_308);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_306); // http://www.eclipse.org/ocl/3.1.0/Pivot!UnspecifiedType
-		//
-		// Pivot.ecore::pivot::UnspecifiedValueExp http://www.eclipse.org/ocl/3.1.0/Pivot!UnspecifiedValueExp
-		//
-		symbol_309.setName("UnspecifiedValueExp");
-		symbol_309.getSuperClasses().add(symbol_145); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-		
-		symbol_0.getOwnedTypes().add(symbol_309); // http://www.eclipse.org/ocl/3.1.0/Pivot!UnspecifiedValueExp
-		//
-		// Pivot.ecore::pivot::ValueSpecification http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification
-		//
-		symbol_310.setName("ValueSpecification");
-		symbol_310.getSuperClasses().add(symbol_300); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedElement
-		symbol_310.getSuperClasses().add(symbol_190); // http://www.eclipse.org/ocl/3.1.0/Pivot!ParameterableElement
-		{ // Pivot.ecore::pivot::ValueSpecification::Constraint
-			symbol_311.setName("Constraint");
-			symbol_311.setType(symbol_45);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Constraint
-			symbol_311.setLower(BigInteger.valueOf(0));
-			
-			symbol_311.setImplicit(true);
-			symbol_311.setIsResolveProxies(true);
-			symbol_311.setOpposite(symbol_49);
-			
-			symbol_310.getOwnedAttributes().add(symbol_311);
-		}
-		{	// Pivot.ecore::pivot::ValueSpecification::booleanValue()
-			Operation symbol_447 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification!booleanValue()
-			symbol_447.setName("booleanValue");
-			symbol_447.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			{
-				Comment symbol_448 = PivotFactory.eINSTANCE.createComment();
-				symbol_448.setBody("The query booleanValue() gives a single Boolean value when one can be computed.");
-				symbol_447.getOwnedComments().add(symbol_448);
-			}
-			
-			symbol_310.getOwnedOperations().add(symbol_447);
-		}
-		{	// Pivot.ecore::pivot::ValueSpecification::integerValue()
-			Operation symbol_449 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification!integerValue()
-			symbol_449.setName("integerValue");
-			symbol_449.setType(symbol_92);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Integer
-			
-			{
-				Comment symbol_450 = PivotFactory.eINSTANCE.createComment();
-				symbol_450.setBody("The query integerValue() gives a single Integer value when one can be computed.");
-				symbol_449.getOwnedComments().add(symbol_450);
-			}
-			
-			symbol_310.getOwnedOperations().add(symbol_449);
-		}
-		{	// Pivot.ecore::pivot::ValueSpecification::isComputable()
-			Operation symbol_451 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification!isComputable()
-			symbol_451.setName("isComputable");
-			symbol_451.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			{
-				Comment symbol_452 = PivotFactory.eINSTANCE.createComment();
-				symbol_452.setBody("The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals.");
-				symbol_451.getOwnedComments().add(symbol_452);
-			}
-			
-			symbol_310.getOwnedOperations().add(symbol_451);
-		}
-		{	// Pivot.ecore::pivot::ValueSpecification::isNull()
-			Operation symbol_453 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification!isNull()
-			symbol_453.setName("isNull");
-			symbol_453.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			
-			{
-				Comment symbol_454 = PivotFactory.eINSTANCE.createComment();
-				symbol_454.setBody("The query isNull() returns true when it can be computed that the value is null.");
-				symbol_453.getOwnedComments().add(symbol_454);
-			}
-			
-			symbol_310.getOwnedOperations().add(symbol_453);
-		}
-		{	// Pivot.ecore::pivot::ValueSpecification::stringValue()
-			Operation symbol_455 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification!stringValue()
-			symbol_455.setName("stringValue");
-			symbol_455.setType(symbol_241);  // http://www.eclipse.org/ocl/3.1.0/Pivot!String
-			
-			{
-				Comment symbol_456 = PivotFactory.eINSTANCE.createComment();
-				symbol_456.setBody("The query stringValue() gives a single String value when one can be computed.");
-				symbol_455.getOwnedComments().add(symbol_456);
-			}
-			
-			symbol_310.getOwnedOperations().add(symbol_455);
-		}
-		{	// Pivot.ecore::pivot::ValueSpecification::unlimitedValue()
-			Operation symbol_457 = PivotFactory.eINSTANCE.createOperation(); // http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification!unlimitedValue()
-			symbol_457.setName("unlimitedValue");
-			symbol_457.setType(symbol_303);  // http://www.eclipse.org/ocl/3.1.0/Pivot!UnlimitedNatural
-			
-			{
-				Comment symbol_458 = PivotFactory.eINSTANCE.createComment();
-				symbol_458.setBody("The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.");
-				symbol_457.getOwnedComments().add(symbol_458);
-			}
-			
-			symbol_310.getOwnedOperations().add(symbol_457);
-		}
-		{
-			Comment symbol_459 = PivotFactory.eINSTANCE.createComment();
-			symbol_459.setBody("A value specification is the specification of a (possibly empty) set of instances, including both objects and data values.\r\nValueSpecification specializes ParameterableElement to specify that a value specification can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.");
-			symbol_310.getOwnedComments().add(symbol_459);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_310); // http://www.eclipse.org/ocl/3.1.0/Pivot!ValueSpecification
-		//
-		// Pivot.ecore::pivot::Variable http://www.eclipse.org/ocl/3.1.0/Pivot!Variable
-		//
-		symbol_312.setName("Variable");
-		symbol_312.getSuperClasses().add(symbol_320); // http://www.eclipse.org/ocl/3.1.0/Pivot!VariableDeclaration
-		{ // Pivot.ecore::pivot::Variable::ExpressionInOcl
-			symbol_313.setName("ExpressionInOcl");
-			symbol_313.setType(symbol_76);  // http://www.eclipse.org/ocl/3.1.0/Pivot!ExpressionInOcl
-			symbol_313.setLower(BigInteger.valueOf(0));
-			symbol_313.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_313.setImplicit(true);
-			symbol_313.setIsResolveProxies(true);
-			
-			symbol_312.getOwnedAttributes().add(symbol_313);
-		}
-		{ // Pivot.ecore::pivot::Variable::IterateExp
-			symbol_314.setName("IterateExp");
-			symbol_314.setType(symbol_97);  // http://www.eclipse.org/ocl/3.1.0/Pivot!IterateExp
-			symbol_314.setLower(BigInteger.valueOf(0));
-			
-			symbol_314.setImplicit(true);
-			symbol_314.setIsResolveProxies(true);
-			symbol_314.setOpposite(symbol_98);
-			
-			symbol_312.getOwnedAttributes().add(symbol_314);
-		}
-		{ // Pivot.ecore::pivot::Variable::LetExp
-			symbol_315.setName("LetExp");
-			symbol_315.setType(symbol_108);  // http://www.eclipse.org/ocl/3.1.0/Pivot!LetExp
-			symbol_315.setLower(BigInteger.valueOf(0));
-			
-			symbol_315.setImplicit(true);
-			symbol_315.setIsResolveProxies(true);
-			symbol_315.setOpposite(symbol_110);
-			
-			symbol_312.getOwnedAttributes().add(symbol_315);
-		}
-		{ // Pivot.ecore::pivot::Variable::LoopExp
-			symbol_316.setName("LoopExp");
-			symbol_316.setType(symbol_114);  // http://www.eclipse.org/ocl/3.1.0/Pivot!LoopExp
-			symbol_316.setLower(BigInteger.valueOf(0));
-			
-			symbol_316.setImplicit(true);
-			symbol_316.setIsResolveProxies(true);
-			symbol_316.setOpposite(symbol_116);
-			
-			symbol_312.getOwnedAttributes().add(symbol_316);
-		}
-		{ // Pivot.ecore::pivot::Variable::implicit
-			symbol_317.setName("implicit");
-			symbol_317.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			symbol_317.setLower(BigInteger.valueOf(0));
-			
-			symbol_317.setIsResolveProxies(true);
-			
-			symbol_312.getOwnedAttributes().add(symbol_317);
-		}
-		{ // Pivot.ecore::pivot::Variable::initExpression
-			symbol_318.setName("initExpression");
-			symbol_318.setType(symbol_145);  // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-			symbol_318.setLower(BigInteger.valueOf(0));
-			
-			symbol_318.setIsComposite(true);
-			symbol_318.setIsResolveProxies(true);
-			symbol_318.setOpposite(symbol_158);
-			
-			symbol_312.getOwnedAttributes().add(symbol_318);
-		}
-		{ // Pivot.ecore::pivot::Variable::representedParameter
-			symbol_319.setName("representedParameter");
-			symbol_319.setType(symbol_186);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Parameter
-			symbol_319.setLower(BigInteger.valueOf(0));
-			
-			symbol_319.setIsResolveProxies(true);
-			symbol_319.setOpposite(symbol_188);
-			
-			symbol_312.getOwnedAttributes().add(symbol_319);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_312); // http://www.eclipse.org/ocl/3.1.0/Pivot!Variable
-		//
-		// Pivot.ecore::pivot::VariableDeclaration http://www.eclipse.org/ocl/3.1.0/Pivot!VariableDeclaration
-		//
-		symbol_320.setName("VariableDeclaration");
-		symbol_320.getSuperClasses().add(symbol_300); // http://www.eclipse.org/ocl/3.1.0/Pivot!TypedElement
-		{ // Pivot.ecore::pivot::VariableDeclaration::VariableExp
-			symbol_321.setName("VariableExp");
-			symbol_321.setType(symbol_322);  // http://www.eclipse.org/ocl/3.1.0/Pivot!VariableExp
-			symbol_321.setLower(BigInteger.valueOf(0));
-			symbol_321.setUpper(BigInteger.valueOf(-1));
-			
-			symbol_321.setImplicit(true);
-			symbol_321.setIsResolveProxies(true);
-			symbol_321.setOpposite(symbol_324);
-			
-			symbol_320.getOwnedAttributes().add(symbol_321);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_320); // http://www.eclipse.org/ocl/3.1.0/Pivot!VariableDeclaration
-		//
-		// Pivot.ecore::pivot::VariableExp http://www.eclipse.org/ocl/3.1.0/Pivot!VariableExp
-		//
-		symbol_322.setName("VariableExp");
-		symbol_322.getSuperClasses().add(symbol_145); // http://www.eclipse.org/ocl/3.1.0/Pivot!OclExpression
-		{ // Pivot.ecore::pivot::VariableExp::implicit
-			symbol_323.setName("implicit");
-			symbol_323.setType(symbol_14);  // http://www.eclipse.org/ocl/3.1.0/Pivot!Boolean
-			symbol_323.setLower(BigInteger.valueOf(0));
-			
-			symbol_323.setIsResolveProxies(true);
-			
-			symbol_322.getOwnedAttributes().add(symbol_323);
-		}
-		{ // Pivot.ecore::pivot::VariableExp::referredVariable
-			symbol_324.setName("referredVariable");
-			symbol_324.setType(symbol_320);  // http://www.eclipse.org/ocl/3.1.0/Pivot!VariableDeclaration
-			symbol_324.setLower(BigInteger.valueOf(0));
-			
-			symbol_324.setIsResolveProxies(true);
-			symbol_324.setOpposite(symbol_321);
-			
-			symbol_322.getOwnedAttributes().add(symbol_324);
-		}
-		
-		symbol_0.getOwnedTypes().add(symbol_322); // http://www.eclipse.org/ocl/3.1.0/Pivot!VariableExp
-		//
-		// Pivot.ecore::pivot::Visitable http://www.eclipse.org/ocl/3.1.0/Pivot!Visitable
-		//
-		symbol_325.setName("Visitable");
-		symbol_325.getSuperClasses().add(standardLibrary.getOclElementType());
-		
-		symbol_0.getOwnedTypes().add(symbol_325); // http://www.eclipse.org/ocl/3.1.0/Pivot!Visitable
-		//
-		// Pivot.ecore::pivot::Visitor http://www.eclipse.org/ocl/3.1.0/Pivot!Visitor{R,C}
-		//
-		symbol_326.setName("Visitor");
-		symbol_329.setName("R");
-		symbol_328.setOwnedParameteredElement(symbol_329);
-		symbol_327.getOwnedParameters().add(symbol_328);
-		symbol_331.setName("C");
-		symbol_330.setOwnedParameteredElement(symbol_331);
-		symbol_327.getOwnedParameters().add(symbol_330);
-		
-		symbol_326.setOwnedTemplateSignature(symbol_327);
-		symbol_326.getSuperClasses().add(standardLibrary.getOclElementType());
-		
-		symbol_0.getOwnedTypes().add(symbol_326); // http://www.eclipse.org/ocl/3.1.0/Pivot!Visitor{R,C}
-		//
-		// Pivot.ecore::pivot::VoidType http://www.eclipse.org/ocl/3.1.0/Pivot!VoidType
-		//
-		symbol_332.setName("VoidType");
-		symbol_332.getSuperClasses().add(symbol_23); // http://www.eclipse.org/ocl/3.1.0/Pivot!Class
-		
-		symbol_0.getOwnedTypes().add(symbol_332); // http://www.eclipse.org/ocl/3.1.0/Pivot!VoidType
+		protected final PrimitiveType _Boolean = standardLibrary.getBooleanType();
+		protected final PrimitiveType _Integer = standardLibrary.getIntegerType();
+		protected final Class _OclElement = standardLibrary.getOclElementType();
+		protected final PrimitiveType _Real = standardLibrary.getRealType();
+		protected final PrimitiveType _String = standardLibrary.getStringType();
+		protected final PrimitiveType _UnlimitedNatural = standardLibrary.getUnlimitedNaturalType();
 
-		Class elementClass = (Class) PivotUtil.getNamedElement(symbol_0.getOwnedTypes(), "Element");
-		elementClass.getSuperClasses().clear();
-		elementClass.getSuperClasses().add(standardLibrary.getOclElementType());
-		for (Type pivotClass : symbol_0.getOwnedTypes()) {
-			if (pivotClass instanceof Enumeration) {
-				List<Type> superClasses = ((Enumeration) pivotClass).getSuperClasses();
-				if (superClasses.isEmpty()) {
-					superClasses.add(standardLibrary.getEnumerationType());
-				}
-			}
-//			else if (pivotClass instanceof Class) {
-//				List<Class> superClasses = ((Class) pivotClass).getSuperClasses();
-//				if (superClasses.isEmpty()) {
-//					superClasses.add(standardLibrary.getClassifierType());
-//				}
-//			}
+		protected Package metaModel;
+
+		protected Package create(String name, String nsPrefix, String nsURI)
+		{
+			metaModel = createPackage(name, nsPrefix, nsURI);
+			installPackages();
+			installOclTypes();
+			installPrimitiveTypes();
+			installEnumerations();
+			installParameterTypes();
+			installCollectionTypes();
+			installClassifierTypes();
+			installOperations();
+			installIterations();
+			installProperties();
+			installTemplateSignatures();
+			installTemplateBindings();
+			installPrecedences();
+			installComments();
+			return metaModel;
+		}
+	
+		
+		protected void installPackages() {
+			
 		}
 		
-		return symbol_0;
+		protected final Class _Annotation = createClass("Annotation");
+		protected final Class _AnyType = createClass("AnyType");
+		protected final Class _AssociationClass = createClass("AssociationClass");
+		protected final Class _AssociationClassCallExp = createClass("AssociationClassCallExp");
+		protected final Class _BagType = createClass("BagType");
+		protected final Class _BooleanLiteralExp = createClass("BooleanLiteralExp");
+		protected final Class _CallExp = createClass("CallExp");
+		protected final Class _CallOperationAction = createClass("CallOperationAction");
+		protected final Class _Class = createClass("Class");
+		protected final Class _ClassifierType = createClass("ClassifierType");
+		protected final Class _CollectionItem = createClass("CollectionItem");
+		protected final Class _CollectionLiteralExp = createClass("CollectionLiteralExp");
+		protected final Class _CollectionLiteralPart = createClass("CollectionLiteralPart");
+		protected final Class _CollectionRange = createClass("CollectionRange");
+		protected final Class _CollectionType = createClass("CollectionType");
+		protected final Class _Comment = createClass("Comment");
+		protected final Class _Constraint = createClass("Constraint");
+		protected final Class _ConstructorExp = createClass("ConstructorExp");
+		protected final Class _ConstructorPart = createClass("ConstructorPart");
+		protected final Class _DataType = createClass("DataType");
+		protected final Class _Detail = createClass("Detail");
+		protected final Class _Element = createClass("Element");
+		protected final Class _EnumLiteralExp = createClass("EnumLiteralExp");
+		protected final Class _Enumeration = createClass("Enumeration");
+		protected final Class _EnumerationLiteral = createClass("EnumerationLiteral");
+		protected final Class _ExpressionInOcl = createClass("ExpressionInOcl");
+		protected final Class _Feature = createClass("Feature");
+		protected final Class _FeatureCallExp = createClass("FeatureCallExp");
+		protected final Class _IfExp = createClass("IfExp");
+		protected final DataType _Int = createDataType("Int");
+		protected final Class _IntegerLiteralExp = createClass("IntegerLiteralExp");
+		protected final Class _InvalidLiteralExp = createClass("InvalidLiteralExp");
+		protected final Class _InvalidType = createClass("InvalidType");
+		protected final Class _IterateExp = createClass("IterateExp");
+		protected final Class _Iteration = createClass("Iteration");
+		protected final Class _IteratorExp = createClass("IteratorExp");
+		protected final Class _LambdaType = createClass("LambdaType");
+		protected final Class _LetExp = createClass("LetExp");
+		protected final Class _Library = createClass("Library");
+		protected final DataType _LibraryFeature = createDataType("LibraryFeature");
+		protected final Class _LiteralExp = createClass("LiteralExp");
+		protected final Class _LoopExp = createClass("LoopExp");
+		protected final Class _MessageExp = createClass("MessageExp");
+		protected final Class _MessageType = createClass("MessageType");
+		protected final Class _MorePivotable = createClass("MorePivotable");
+		protected final Class _MultiplicityElement = createClass("MultiplicityElement");
+		protected final Class _Nameable = createClass("Nameable");
+		protected final Class _NamedElement = createClass("NamedElement");
+		protected final Class _Namespace = createClass("Namespace");
+		protected final Class _NavigationCallExp = createClass("NavigationCallExp");
+		protected final Class _NullLiteralExp = createClass("NullLiteralExp");
+		protected final Class _NumericLiteralExp = createClass("NumericLiteralExp");
+		protected final DataType _Object = createDataType("Object");
+		protected final Class _OclExpression = createClass("OclExpression");
+		protected final Class _OpaqueExpression = createClass("OpaqueExpression");
+		protected final Class _Operation = createClass("Operation");
+		protected final Class _OperationCallExp = createClass("OperationCallExp");
+		protected final Class _OperationTemplateParameter = createClass("OperationTemplateParameter");
+		protected final Class _OrderedSetType = createClass("OrderedSetType");
+		protected final Class _Package = createClass("Package");
+		protected final Class _PackageableElement = createClass("PackageableElement");
+		protected final Class _Parameter = createClass("Parameter");
+		protected final Class _ParameterableElement = createClass("ParameterableElement");
+		protected final Class _Pivotable = createClass("Pivotable");
+		protected final Class _Precedence = createClass("Precedence");
+		protected final Class _PrimitiveLiteralExp = createClass("PrimitiveLiteralExp");
+		protected final Class _PrimitiveType = createClass("PrimitiveType");
+		protected final Class _Property = createClass("Property");
+		protected final Class _PropertyCallExp = createClass("PropertyCallExp");
+		protected final Class _RealLiteralExp = createClass("RealLiteralExp");
+		protected final Class _SelfType = createClass("SelfType");
+		protected final Class _SendSignalAction = createClass("SendSignalAction");
+		protected final Class _SequenceType = createClass("SequenceType");
+		protected final Class _SetType = createClass("SetType");
+		protected final Class _Signal = createClass("Signal");
+		protected final Class _State = createClass("State");
+		protected final Class _StateExp = createClass("StateExp");
+		protected final Class _StringLiteralExp = createClass("StringLiteralExp");
+		protected final Class _TemplateBinding = createClass("TemplateBinding");
+		protected final Class _TemplateParameter = createClass("TemplateParameter");
+		protected final Class _TemplateParameterSubstitution = createClass("TemplateParameterSubstitution");
+		protected final Class _TemplateParameterType = createClass("TemplateParameterType");
+		protected final Class _TemplateSignature = createClass("TemplateSignature");
+		protected final Class _TemplateableElement = createClass("TemplateableElement");
+		protected final DataType _Throwable = createDataType("Throwable");
+		protected final Class _TupleLiteralExp = createClass("TupleLiteralExp");
+		protected final Class _TupleLiteralPart = createClass("TupleLiteralPart");
+		protected final Class _TupleType = createClass("TupleType");
+		protected final Class _Type = createClass("Type");
+		protected final Class _TypeExp = createClass("TypeExp");
+		protected final Class _TypeTemplateParameter = createClass("TypeTemplateParameter");
+		protected final Class _TypedElement = createClass("TypedElement");
+		protected final Class _TypedMultiplicityElement = createClass("TypedMultiplicityElement");
+		protected final Class _UnlimitedNaturalLiteralExp = createClass("UnlimitedNaturalLiteralExp");
+		protected final Class _UnspecifiedType = createClass("UnspecifiedType");
+		protected final Class _UnspecifiedValueExp = createClass("UnspecifiedValueExp");
+		protected final Class _ValueSpecification = createClass("ValueSpecification");
+		protected final Class _Variable = createClass("Variable");
+		protected final Class _VariableDeclaration = createClass("VariableDeclaration");
+		protected final Class _VariableExp = createClass("VariableExp");
+		protected final Class _Visitable = createClass("Visitable");
+		protected final Class _Visitor = createClass("Visitor");
+		protected final Class _VoidType = createClass("VoidType");
+		
+		
+		protected final Enumeration _AssociativityKind = createEnumeration("AssociativityKind");
+		protected final Enumeration _CollectionKind = createEnumeration("CollectionKind");
+		
+		protected final Class _Visitor_C = createClass("C");
+		protected final Class _Visitor_R = createClass("R");
+		
+		
+		
+		protected void installOclTypes() {
+			final List<Type> ownedTypes = metaModel.getOwnedTypes();
+			Type type;
+			List<Type> superClasses;
+			ownedTypes.add(type = _Annotation);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NamedElement);
+			ownedTypes.add(type = _AnyType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			ownedTypes.add(type = _AssociationClass);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			ownedTypes.add(type = _AssociationClassCallExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NavigationCallExp);
+			ownedTypes.add(type = _BagType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_CollectionType);
+			ownedTypes.add(type = _BooleanLiteralExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_PrimitiveLiteralExp);
+			ownedTypes.add(type = _CallExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclExpression);
+			ownedTypes.add(type = _CallOperationAction);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NamedElement);
+			ownedTypes.add(type = _Class);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Type);
+			superClasses.add(_Namespace);
+			ownedTypes.add(type = _ClassifierType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			ownedTypes.add(type = _CollectionItem);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_CollectionLiteralPart);
+			ownedTypes.add(type = _CollectionLiteralExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_LiteralExp);
+			ownedTypes.add(type = _CollectionLiteralPart);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_TypedElement);
+			ownedTypes.add(type = _CollectionRange);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_CollectionLiteralPart);
+			ownedTypes.add(type = _CollectionType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_DataType);
+			ownedTypes.add(type = _Comment);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Element);
+			ownedTypes.add(type = _Constraint);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NamedElement);
+			ownedTypes.add(type = _ConstructorExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclExpression);
+			ownedTypes.add(type = _ConstructorPart);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Element);
+			ownedTypes.add(type = _DataType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			ownedTypes.add(type = _Detail);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NamedElement);
+			ownedTypes.add(type = _Element);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Visitable);
+			ownedTypes.add(type = _EnumLiteralExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_LiteralExp);
+			ownedTypes.add(type = _Enumeration);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_DataType);
+			ownedTypes.add(type = _EnumerationLiteral);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NamedElement);
+			ownedTypes.add(type = _ExpressionInOcl);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OpaqueExpression);
+			ownedTypes.add(type = _Feature);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_TypedMultiplicityElement);
+			ownedTypes.add(type = _FeatureCallExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_CallExp);
+			ownedTypes.add(type = _IfExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclExpression);
+			ownedTypes.add(type = _Int);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclElement);
+			ownedTypes.add(type = _IntegerLiteralExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NumericLiteralExp);
+			ownedTypes.add(type = _InvalidLiteralExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_LiteralExp);
+			ownedTypes.add(type = _InvalidType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			ownedTypes.add(type = _IterateExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_LoopExp);
+			ownedTypes.add(type = _Iteration);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Operation);
+			ownedTypes.add(type = _IteratorExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_LoopExp);
+			ownedTypes.add(type = _LambdaType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_DataType);
+			ownedTypes.add(type = _LetExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclExpression);
+			ownedTypes.add(type = _Library);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Package);
+			ownedTypes.add(type = _LibraryFeature);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclElement);
+			ownedTypes.add(type = _LiteralExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclExpression);
+			ownedTypes.add(type = _LoopExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_CallExp);
+			ownedTypes.add(type = _MessageExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclExpression);
+			ownedTypes.add(type = _MessageType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Type);
+			ownedTypes.add(type = _MorePivotable);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclElement);
+			ownedTypes.add(type = _MultiplicityElement);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Element);
+			ownedTypes.add(type = _Nameable);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclElement);
+			ownedTypes.add(type = _NamedElement);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Element);
+			superClasses.add(_Nameable);
+			ownedTypes.add(type = _Namespace);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NamedElement);
+			ownedTypes.add(type = _NavigationCallExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_FeatureCallExp);
+			ownedTypes.add(type = _NullLiteralExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_PrimitiveLiteralExp);
+			ownedTypes.add(type = _NumericLiteralExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_PrimitiveLiteralExp);
+			ownedTypes.add(type = _Object);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclElement);
+			ownedTypes.add(type = _OclExpression);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_TypedElement);
+			ownedTypes.add(type = _OpaqueExpression);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_ValueSpecification);
+			ownedTypes.add(type = _Operation);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Feature);
+			superClasses.add(_Namespace);
+			superClasses.add(_TemplateableElement);
+			superClasses.add(_ParameterableElement);
+			ownedTypes.add(type = _OperationCallExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_FeatureCallExp);
+			ownedTypes.add(type = _OperationTemplateParameter);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_TemplateParameter);
+			ownedTypes.add(type = _OrderedSetType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_CollectionType);
+			ownedTypes.add(type = _Package);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Namespace);
+			superClasses.add(_TemplateableElement);
+			ownedTypes.add(type = _PackageableElement);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_ParameterableElement);
+			ownedTypes.add(type = _Parameter);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_TypedMultiplicityElement);
+			superClasses.add(_VariableDeclaration);
+			ownedTypes.add(type = _ParameterableElement);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Element);
+			ownedTypes.add(type = _Pivotable);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclElement);
+			ownedTypes.add(type = _Precedence);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NamedElement);
+			ownedTypes.add(type = _PrimitiveLiteralExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_LiteralExp);
+			ownedTypes.add(type = _PrimitiveType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_DataType);
+			ownedTypes.add(type = _Property);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Feature);
+			superClasses.add(_ParameterableElement);
+			ownedTypes.add(type = _PropertyCallExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NavigationCallExp);
+			ownedTypes.add(type = _RealLiteralExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NumericLiteralExp);
+			ownedTypes.add(type = _SelfType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			ownedTypes.add(type = _SendSignalAction);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NamedElement);
+			ownedTypes.add(type = _SequenceType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_CollectionType);
+			ownedTypes.add(type = _SetType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_CollectionType);
+			ownedTypes.add(type = _Signal);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NamedElement);
+			ownedTypes.add(type = _State);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NamedElement);
+			ownedTypes.add(type = _StateExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclExpression);
+			ownedTypes.add(type = _StringLiteralExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_PrimitiveLiteralExp);
+			ownedTypes.add(type = _TemplateBinding);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Element);
+			ownedTypes.add(type = _TemplateParameter);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Element);
+			ownedTypes.add(type = _TemplateParameterSubstitution);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Element);
+			ownedTypes.add(type = _TemplateParameterType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Type);
+			ownedTypes.add(type = _TemplateSignature);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Element);
+			ownedTypes.add(type = _TemplateableElement);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Element);
+			ownedTypes.add(type = _Throwable);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclElement);
+			ownedTypes.add(type = _TupleLiteralExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_LiteralExp);
+			ownedTypes.add(type = _TupleLiteralPart);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_VariableDeclaration);
+			ownedTypes.add(type = _TupleType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_DataType);
+			ownedTypes.add(type = _Type);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NamedElement);
+			superClasses.add(_TemplateableElement);
+			superClasses.add(_ParameterableElement);
+			ownedTypes.add(type = _TypeExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclExpression);
+			ownedTypes.add(type = _TypeTemplateParameter);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_TemplateParameter);
+			ownedTypes.add(type = _TypedElement);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NamedElement);
+			ownedTypes.add(type = _TypedMultiplicityElement);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_TypedElement);
+			superClasses.add(_MultiplicityElement);
+			ownedTypes.add(type = _UnlimitedNaturalLiteralExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_NumericLiteralExp);
+			ownedTypes.add(type = _UnspecifiedType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+			ownedTypes.add(type = _UnspecifiedValueExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclExpression);
+			ownedTypes.add(type = _ValueSpecification);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_TypedElement);
+			superClasses.add(_ParameterableElement);
+			ownedTypes.add(type = _Variable);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_VariableDeclaration);
+			ownedTypes.add(type = _VariableDeclaration);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_TypedElement);
+			ownedTypes.add(type = _VariableExp);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclExpression);
+			ownedTypes.add(type = _Visitable);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclElement);
+			ownedTypes.add(type = _Visitor);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_OclElement);
+			ownedTypes.add(type = _VoidType);
+			superClasses = type.getSuperClasses();
+			superClasses.add(_Class);
+		}
+		
+		protected void installPrimitiveTypes() {
+			final List<Type> ownedTypes = metaModel.getOwnedTypes();
+			PrimitiveType type;
+		}
+		
+		protected void installEnumerations() {
+			final List<Type> ownedTypes = metaModel.getOwnedTypes();
+			Enumeration type;
+			List<EnumerationLiteral> enumerationLiterals;
+			ownedTypes.add(type = _AssociativityKind);
+			enumerationLiterals = type.getOwnedLiterals();
+			enumerationLiterals.add(createEnumerationLiteral("Left"));
+			enumerationLiterals.add(createEnumerationLiteral("Right"));
+			type.getSuperClasses().add(_Enumeration);
+			ownedTypes.add(type = _CollectionKind);
+			enumerationLiterals = type.getOwnedLiterals();
+			enumerationLiterals.add(createEnumerationLiteral("Collection"));
+			enumerationLiterals.add(createEnumerationLiteral("Set"));
+			enumerationLiterals.add(createEnumerationLiteral("OrderedSet"));
+			enumerationLiterals.add(createEnumerationLiteral("Bag"));
+			enumerationLiterals.add(createEnumerationLiteral("Sequence"));
+			type.getSuperClasses().add(_Enumeration);
+		}
+		
+		protected void installParameterTypes() {
+		}
+		
+		protected void installCollectionTypes() {
+			final List<Type> ownedTypes = metaModel.getOwnedTypes();
+			CollectionType type;
+			List<Type> superClasses;
+		}
+		
+		protected void installClassifierTypes() {
+			final List<Type> ownedTypes = metaModel.getOwnedTypes();
+			ClassifierType type;
+			List<Type> superClasses;
+		}
+		
+		protected final Operation op_Element_allOwnedElements = createOperation("allOwnedElements", _Element, null, null);
+		protected final Operation op_MultiplicityElement_includesCardinality = createOperation("includesCardinality", _Boolean, null, null);
+		protected final Operation op_MultiplicityElement_includesMultiplicity = createOperation("includesMultiplicity", _Boolean, null, null);
+		protected final Operation op_MultiplicityElement_isMultivalued = createOperation("isMultivalued", _Boolean, null, null);
+		protected final Operation op_MultiplicityElement_lowerBound = createOperation("lowerBound", _Integer, null, null);
+		protected final Operation op_MultiplicityElement_upperBound = createOperation("upperBound", _UnlimitedNatural, null, null);
+		protected final Operation op_ParameterableElement_isCompatibleWith = createOperation("isCompatibleWith", _Boolean, null, null);
+		protected final Operation op_ParameterableElement_isTemplateParameter = createOperation("isTemplateParameter", _Boolean, null, null);
+		protected final Operation op_Property_isAttribute = createOperation("isAttribute", _Boolean, null, null);
+		protected final Operation op_SelfType_resolveSelfType = createOperation("resolveSelfType", _Type, null, null);
+		protected final Operation op_TemplateableElement_isTemplate = createOperation("isTemplate", _Boolean, null, null);
+		protected final Operation op_TemplateableElement_parameterableElements = createOperation("parameterableElements", _ParameterableElement, null, null);
+		protected final Operation op_null_isTemplate = createOperation("isTemplate", _Boolean, null, null);
+		protected final Operation op_Type_resolveSelfType = createOperation("resolveSelfType", _Type, null, null);
+		protected final Operation op_TypedMultiplicityElement_CompatibleBody = createOperation("CompatibleBody", _Boolean, null, null);
+		protected final Operation op_TypedMultiplicityElement_makeParameter = createOperation("makeParameter", _Parameter, null, null);
+		protected final Operation op_ValueSpecification_booleanValue = createOperation("booleanValue", _Boolean, null, null);
+		protected final Operation op_ValueSpecification_integerValue = createOperation("integerValue", _Integer, null, null);
+		protected final Operation op_ValueSpecification_isComputable = createOperation("isComputable", _Boolean, null, null);
+		protected final Operation op_ValueSpecification_isNull = createOperation("isNull", _Boolean, null, null);
+		protected final Operation op_ValueSpecification_stringValue = createOperation("stringValue", _String, null, null);
+		protected final Operation op_ValueSpecification_unlimitedValue = createOperation("unlimitedValue", _UnlimitedNatural, null, null);
+		
+		protected void installOperations() {
+			List<Operation> ownedOperations;
+			List<Parameter> ownedParameters;
+			Operation operation;
+			Parameter parameter;
+			ownedOperations = _Element.getOwnedOperations();
+			ownedOperations.add(operation = op_Element_allOwnedElements);
+			operation.setLower(BigInteger.valueOf(0));
+			operation.setUpper(BigInteger.valueOf(-1));
+			ownedOperations = _MultiplicityElement.getOwnedOperations();
+			ownedOperations.add(operation = op_MultiplicityElement_includesCardinality);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("C", _Integer));
+			ownedOperations.add(operation = op_MultiplicityElement_includesMultiplicity);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("M", _MultiplicityElement));
+			ownedOperations.add(operation = op_MultiplicityElement_isMultivalued);
+			ownedOperations.add(operation = op_MultiplicityElement_lowerBound);
+			ownedOperations.add(operation = op_MultiplicityElement_upperBound);
+			ownedOperations = _ParameterableElement.getOwnedOperations();
+			ownedOperations.add(operation = op_ParameterableElement_isCompatibleWith);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("p", _ParameterableElement));
+			ownedOperations.add(operation = op_ParameterableElement_isTemplateParameter);
+			ownedOperations = _Property.getOwnedOperations();
+			ownedOperations.add(operation = op_Property_isAttribute);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("p", _Property));
+			ownedOperations = _SelfType.getOwnedOperations();
+			ownedOperations.add(operation = op_SelfType_resolveSelfType);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("selfType", _Type));
+			ownedOperations = _TemplateableElement.getOwnedOperations();
+			ownedOperations.add(operation = op_TemplateableElement_isTemplate);
+			ownedOperations.add(operation = op_TemplateableElement_parameterableElements);
+			operation.setLower(BigInteger.valueOf(0));
+			operation.setUpper(BigInteger.valueOf(-1));
+			ownedOperations = _Type.getOwnedOperations();
+			ownedOperations.add(operation = op_Type_resolveSelfType);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("selfType", _Type));
+			ownedOperations = _TypedMultiplicityElement.getOwnedOperations();
+			ownedOperations.add(operation = op_TypedMultiplicityElement_CompatibleBody);
+			ownedParameters = operation.getOwnedParameters();
+			ownedParameters.add(parameter = createParameter("bodySpecification", _ValueSpecification));
+			ownedOperations.add(operation = op_TypedMultiplicityElement_makeParameter);
+			ownedOperations = _ValueSpecification.getOwnedOperations();
+			ownedOperations.add(operation = op_ValueSpecification_booleanValue);
+			ownedOperations.add(operation = op_ValueSpecification_integerValue);
+			ownedOperations.add(operation = op_ValueSpecification_isComputable);
+			ownedOperations.add(operation = op_ValueSpecification_isNull);
+			ownedOperations.add(operation = op_ValueSpecification_stringValue);
+			ownedOperations.add(operation = op_ValueSpecification_unlimitedValue);
+		}
+		
+		
+		protected void installIterations() {
+			List<Operation> ownedIterations;
+			List<Parameter> ownedParameters;
+			Iteration iteration;
+			Parameter parameter;
+		}
+			
+		protected final Property pr_Annotation_NamedElement = createProperty("NamedElement", _NamedElement);
+		protected final Property pr_Annotation_ownedContent = createProperty("ownedContent", _Element);
+		protected final Property pr_Annotation_ownedDetail = createProperty("ownedDetail", _Detail);
+		protected final Property pr_Annotation_reference = createProperty("reference", _Element);
+		protected final Property pr_AssociationClass_AssociationClassCallExp = createProperty("AssociationClassCallExp", _AssociationClassCallExp);
+		protected final Property pr_AssociationClass_unownedAttribute = createProperty("unownedAttribute", _Property);
+		protected final Property pr_AssociationClassCallExp_referredAssociationClass = createProperty("referredAssociationClass", _AssociationClass);
+		protected final Property pr_BooleanLiteralExp_booleanSymbol = createProperty("booleanSymbol", _Boolean);
+		protected final Property pr_CallExp_implicit = createProperty("implicit", _Boolean);
+		protected final Property pr_CallExp_source = createProperty("source", _OclExpression);
+		protected final Property pr_CallOperationAction_MessageExp = createProperty("MessageExp", _MessageExp);
+		protected final Property pr_CallOperationAction_operation = createProperty("operation", _Operation);
+		protected final Property pr_null_instanceClassName = createProperty("instanceClassName", _String);
+		protected final Property pr_null_ownedAttribute = createProperty("ownedAttribute", _Property);
+		protected final Property pr_null_ownedOperation = createProperty("ownedOperation", _Operation);
+		protected final Property pr_null_superClass = createProperty("superClass", _Class);
+		protected final Property pr_Class_isAbstract = createProperty("isAbstract", _Boolean);
+		protected final Property pr_Class_isInterface = createProperty("isInterface", _Boolean);
+		protected final Property pr_ClassifierType_instanceType = createProperty("instanceType", _Type);
+		protected final Property pr_CollectionItem_item = createProperty("item", _OclExpression);
+		protected final Property pr_CollectionLiteralExp_kind = createProperty("kind", _CollectionKind);
+		protected final Property pr_CollectionLiteralExp_part = createProperty("part", _CollectionLiteralPart);
+		protected final Property pr_CollectionLiteralPart_CollectionLiteralExp = createProperty("CollectionLiteralExp", _CollectionLiteralExp);
+		protected final Property pr_CollectionRange_first = createProperty("first", _OclExpression);
+		protected final Property pr_CollectionRange_last = createProperty("last", _OclExpression);
+		protected final Property pr_CollectionType_elementType = createProperty("elementType", _Type);
+		protected final Property pr_Comment_Element = createProperty("Element", _Element);
+		protected final Property pr_Comment_annotatedElement = createProperty("annotatedElement", _Element);
+		protected final Property pr_Comment_body = createProperty("body", _String);
+		protected final Property pr_Constraint_constrainedElement = createProperty("constrainedElement", _Element);
+		protected final Property pr_Constraint_context = createProperty("context", _NamedElement);
+		protected final Property pr_Constraint_isCallable = createProperty("isCallable", _Boolean);
+		protected final Property pr_Constraint_specification = createProperty("specification", _ValueSpecification);
+		protected final Property pr_Constraint_stereotype = createProperty("stereotype", _String);
+		protected final Property pr_ConstructorExp_part = createProperty("part", _ConstructorPart);
+		protected final Property pr_ConstructorPart_ConstructorExp = createProperty("ConstructorExp", _ConstructorExp);
+		protected final Property pr_ConstructorPart_initExpression = createProperty("initExpression", _OclExpression);
+		protected final Property pr_ConstructorPart_referredProperty = createProperty("referredProperty", _Property);
+		protected final Property pr_DataType_behavioralType = createProperty("behavioralType", _Type);
+		protected final Property pr_DataType_isSerializable = createProperty("isSerializable", _Boolean);
+		protected final Property pr_Detail_Annotation = createProperty("Annotation", _Annotation);
+		protected final Property pr_Detail_value = createProperty("value", _String);
+		protected final Property pr_Element_Constraint = createProperty("Constraint", _Constraint);
+		protected final Property pr_Element_ownedComment = createProperty("ownedComment", _Comment);
+		protected final Property pr_EnumLiteralExp_referredEnumLiteral = createProperty("referredEnumLiteral", _EnumerationLiteral);
+		protected final Property pr_Enumeration_ownedLiteral = createProperty("ownedLiteral", _EnumerationLiteral);
+		protected final Property pr_EnumerationLiteral_EnumLiteralExp = createProperty("EnumLiteralExp", _EnumLiteralExp);
+		protected final Property pr_EnumerationLiteral_enumeration = createProperty("enumeration", _Enumeration);
+		protected final Property pr_EnumerationLiteral_value = createProperty("value", _Integer);
+		protected final Property pr_ExpressionInOcl_bodyExpression = createProperty("bodyExpression", _OclExpression);
+		protected final Property pr_ExpressionInOcl_contextVariable = createProperty("contextVariable", _Variable);
+		protected final Property pr_ExpressionInOcl_messageExpression = createProperty("messageExpression", _OclExpression);
+		protected final Property pr_ExpressionInOcl_parameterVariable = createProperty("parameterVariable", _Variable);
+		protected final Property pr_ExpressionInOcl_resultVariable = createProperty("resultVariable", _Variable);
+		protected final Property pr_null_isStatic = createProperty("isStatic", _Boolean);
+		protected final Property pr_Feature_implementation = createProperty("implementation", _LibraryFeature);
+		protected final Property pr_Feature_implementationClass = createProperty("implementationClass", _String);
+		protected final Property pr_FeatureCallExp_isPre = createProperty("isPre", _Boolean);
+		protected final Property pr_IfExp_condition = createProperty("condition", _OclExpression);
+		protected final Property pr_IfExp_elseExpression = createProperty("elseExpression", _OclExpression);
+		protected final Property pr_IfExp_thenExpression = createProperty("thenExpression", _OclExpression);
+		protected final Property pr_IntegerLiteralExp_integerSymbol = createProperty("integerSymbol", _Integer);
+		protected final Property pr_IterateExp_result = createProperty("result", _Variable);
+		protected final Property pr_Iteration_LoopExp = createProperty("LoopExp", _LoopExp);
+		protected final Property pr_Iteration_ownedAccumulator = createProperty("ownedAccumulator", _Parameter);
+		protected final Property pr_Iteration_ownedIterator = createProperty("ownedIterator", _Parameter);
+		protected final Property pr_LambdaType_contextType = createProperty("contextType", _Type);
+		protected final Property pr_LambdaType_parameterType = createProperty("parameterType", _Type);
+		protected final Property pr_LambdaType_resultType = createProperty("resultType", _Type);
+		protected final Property pr_LetExp_in = createProperty("in", _OclExpression);
+		protected final Property pr_LetExp_variable = createProperty("variable", _Variable);
+		protected final Property pr_LoopExp_body = createProperty("body", _OclExpression);
+		protected final Property pr_LoopExp_iterator = createProperty("iterator", _Variable);
+		protected final Property pr_LoopExp_referredIteration = createProperty("referredIteration", _Iteration);
+		protected final Property pr_MessageExp_argument = createProperty("argument", _OclExpression);
+		protected final Property pr_MessageExp_calledOperation = createProperty("calledOperation", _CallOperationAction);
+		protected final Property pr_MessageExp_sentSignal = createProperty("sentSignal", _SendSignalAction);
+		protected final Property pr_MessageExp_target = createProperty("target", _OclExpression);
+		protected final Property pr_MessageType_referredOperation = createProperty("referredOperation", _Operation);
+		protected final Property pr_MessageType_referredSignal = createProperty("referredSignal", _Signal);
+		protected final Property pr_MultiplicityElement_isOrdered = createProperty("isOrdered", _Boolean);
+		protected final Property pr_MultiplicityElement_isUnique = createProperty("isUnique", _Boolean);
+		protected final Property pr_MultiplicityElement_lower = createProperty("lower", _Integer);
+		protected final Property pr_MultiplicityElement_upper = createProperty("upper", _UnlimitedNatural);
+		protected final Property pr_NamedElement_isStatic = createProperty("isStatic", _Boolean);
+		protected final Property pr_NamedElement_name = createProperty("name", _String);
+		protected final Property pr_NamedElement_ownedAnnotation = createProperty("ownedAnnotation", _Annotation);
+		protected final Property pr_NamedElement_ownedRule = createProperty("ownedRule", _Constraint);
+		protected final Property pr_NavigationCallExp_navigationSource = createProperty("navigationSource", _Property);
+		protected final Property pr_NavigationCallExp_qualifier = createProperty("qualifier", _OclExpression);
+		protected final Property pr_OclExpression_CallExp = createProperty("CallExp", _CallExp);
+		protected final Property pr_OclExpression_CollectionItem = createProperty("CollectionItem", _CollectionItem);
+		protected final Property pr_OclExpression_ConstructorPart = createProperty("ConstructorPart", _ConstructorPart);
+		protected final Property pr_OclExpression_LetExp = createProperty("LetExp", _LetExp);
+		protected final Property pr_OclExpression_LoopExp = createProperty("LoopExp", _LoopExp);
+		protected final Property pr_OclExpression_NavigationCallExp = createProperty("NavigationCallExp", _NavigationCallExp);
+		protected final Property pr_OclExpression_OperationCallExp = createProperty("OperationCallExp", _OperationCallExp);
+		protected final Property pr_OclExpression_TupleLiteralPart = createProperty("TupleLiteralPart", _TupleLiteralPart);
+		protected final Property pr_OclExpression_Variable = createProperty("Variable", _Variable);
+		protected final Property pr_OpaqueExpression_body = createProperty("body", _String);
+		protected final Property pr_OpaqueExpression_language = createProperty("language", _String);
+		protected final Property pr_OpaqueExpression_message = createProperty("message", _String);
+		protected final Property pr_OpaqueExpression_valueExpression = createProperty("valueExpression", _ExpressionInOcl);
+		protected final Property pr_null_templateParameter = createProperty("templateParameter", _TemplateParameter);
+		protected final Property pr_Operation_CallOperationAction = createProperty("CallOperationAction", _CallOperationAction);
+		protected final Property pr_Operation_MessageType = createProperty("MessageType", _MessageType);
+		protected final Property pr_Operation_OperationCallExp = createProperty("OperationCallExp", _OperationCallExp);
+		protected final Property pr_Operation_class = createProperty("class", _Class);
+		protected final Property pr_Operation_ownedParameter = createProperty("ownedParameter", _Parameter);
+		protected final Property pr_Operation_owningType = createProperty("owningType", _Type);
+		protected final Property pr_Operation_precedence = createProperty("precedence", _Precedence);
+		protected final Property pr_Operation_raisedException = createProperty("raisedException", _Type);
+		protected final Property pr_OperationCallExp_argument = createProperty("argument", _OclExpression);
+		protected final Property pr_OperationCallExp_referredOperation = createProperty("referredOperation", _Operation);
+		protected final Property pr_null_parameteredElement = createProperty("parameteredElement", _ParameterableElement);
+		protected final Property pr_Package_nestedPackage = createProperty("nestedPackage", _Package);
+		protected final Property pr_Package_nestingPackage = createProperty("nestingPackage", _Package);
+		protected final Property pr_Package_nsPrefix = createProperty("nsPrefix", _String);
+		protected final Property pr_Package_nsURI = createProperty("nsURI", _String);
+		protected final Property pr_Package_ownedPrecedence = createProperty("ownedPrecedence", _Precedence);
+		protected final Property pr_Package_ownedType = createProperty("ownedType", _Type);
+		protected final Property pr_Parameter_Variable = createProperty("Variable", _Variable);
+		protected final Property pr_Parameter_operation = createProperty("operation", _Operation);
+		protected final Property pr_ParameterableElement_owningTemplateParameter = createProperty("owningTemplateParameter", _TemplateParameter);
+		protected final Property pr_ParameterableElement_templateParameter = createProperty("templateParameter", _TemplateParameter);
+		protected final Property pr_Precedence_Operation = createProperty("Operation", _Operation);
+		protected final Property pr_Precedence_Package = createProperty("Package", _Package);
+		protected final Property pr_Precedence_associativity = createProperty("associativity", _AssociativityKind);
+		protected final Property pr_Precedence_order = createProperty("order", _Integer);
+		protected final Property pr_Property_ConstructorPart = createProperty("ConstructorPart", _ConstructorPart);
+		protected final Property pr_Property_NavigationCallExp = createProperty("NavigationCallExp", _NavigationCallExp);
+		protected final Property pr_Property_PropertyCallExp = createProperty("PropertyCallExp", _PropertyCallExp);
+		protected final Property pr_Property_association = createProperty("association", _AssociationClass);
+		protected final Property pr_Property_class = createProperty("class", _Class);
+		protected final Property pr_Property_default = createProperty("default", _String);
+		protected final Property pr_Property_implicit = createProperty("implicit", _Boolean);
+		protected final Property pr_Property_isComposite = createProperty("isComposite", _Boolean);
+		protected final Property pr_Property_isDerived = createProperty("isDerived", _Boolean);
+		protected final Property pr_Property_isID = createProperty("isID", _Boolean);
+		protected final Property pr_Property_isReadOnly = createProperty("isReadOnly", _Boolean);
+		protected final Property pr_Property_isResolveProxies = createProperty("isResolveProxies", _Boolean);
+		protected final Property pr_Property_isTransient = createProperty("isTransient", _Boolean);
+		protected final Property pr_Property_isUnsettable = createProperty("isUnsettable", _Boolean);
+		protected final Property pr_Property_isVolatile = createProperty("isVolatile", _Boolean);
+		protected final Property pr_Property_keys = createProperty("keys", _Property);
+		protected final Property pr_Property_opposite = createProperty("opposite", _Property);
+		protected final Property pr_Property_owningType = createProperty("owningType", _Type);
+		protected final Property pr_PropertyCallExp_referredProperty = createProperty("referredProperty", _Property);
+		protected final Property pr_RealLiteralExp_realSymbol = createProperty("realSymbol", _Real);
+		protected final Property pr_SendSignalAction_MessageExp = createProperty("MessageExp", _MessageExp);
+		protected final Property pr_SendSignalAction_signal = createProperty("signal", _Signal);
+		protected final Property pr_Signal_MessageType = createProperty("MessageType", _MessageType);
+		protected final Property pr_Signal_SendSignalAction = createProperty("SendSignalAction", _SendSignalAction);
+		protected final Property pr_State_StateExp = createProperty("StateExp", _StateExp);
+		protected final Property pr_StateExp_referredState = createProperty("referredState", _State);
+		protected final Property pr_StringLiteralExp_stringSymbol = createProperty("stringSymbol", _String);
+		protected final Property pr_TemplateBinding_boundElement = createProperty("boundElement", _TemplateableElement);
+		protected final Property pr_TemplateBinding_parameterSubstitution = createProperty("parameterSubstitution", _TemplateParameterSubstitution);
+		protected final Property pr_TemplateBinding_signature = createProperty("signature", _TemplateSignature);
+		protected final Property pr_TemplateParameter_TemplateParameterSubstitution = createProperty("TemplateParameterSubstitution", _TemplateParameterSubstitution);
+		protected final Property pr_TemplateParameter_default = createProperty("default", _ParameterableElement);
+		protected final Property pr_TemplateParameter_ownedDefault = createProperty("ownedDefault", _ParameterableElement);
+		protected final Property pr_TemplateParameter_ownedParameteredElement = createProperty("ownedParameteredElement", _ParameterableElement);
+		protected final Property pr_TemplateParameter_parameteredElement = createProperty("parameteredElement", _ParameterableElement);
+		protected final Property pr_TemplateParameter_signature = createProperty("signature", _TemplateSignature);
+		protected final Property pr_TemplateParameterSubstitution_actual = createProperty("actual", _ParameterableElement);
+		protected final Property pr_TemplateParameterSubstitution_formal = createProperty("formal", _TemplateParameter);
+		protected final Property pr_TemplateParameterSubstitution_ownedActual = createProperty("ownedActual", _ParameterableElement);
+		protected final Property pr_TemplateParameterSubstitution_templateBinding = createProperty("templateBinding", _TemplateBinding);
+		protected final Property pr_TemplateParameterType_specification = createProperty("specification", _String);
+		protected final Property pr_TemplateSignature_TemplateBinding = createProperty("TemplateBinding", _TemplateBinding);
+		protected final Property pr_TemplateSignature_ownedParameter = createProperty("ownedParameter", _TemplateParameter);
+		protected final Property pr_TemplateSignature_parameter = createProperty("parameter", _TemplateParameter);
+		protected final Property pr_TemplateSignature_template = createProperty("template", _TemplateableElement);
+		protected final Property pr_TemplateableElement_ownedTemplateSignature = createProperty("ownedTemplateSignature", _TemplateSignature);
+		protected final Property pr_TemplateableElement_templateBinding = createProperty("templateBinding", _TemplateBinding);
+		protected final Property pr_TemplateableElement_unspecializedElement = createProperty("unspecializedElement", _TemplateableElement);
+		protected final Property pr_TupleLiteralExp_part = createProperty("part", _TupleLiteralPart);
+		protected final Property pr_TupleLiteralPart_TupleLiteralExp = createProperty("TupleLiteralExp", _TupleLiteralExp);
+		protected final Property pr_TupleLiteralPart_initExpression = createProperty("initExpression", _OclExpression);
+		protected final Property pr_null_templateParameter_1 = createProperty("templateParameter", _TemplateParameter);
+		protected final Property pr_Type_ClassifierType = createProperty("ClassifierType", _ClassifierType);
+		protected final Property pr_Type_CollectionType = createProperty("CollectionType", _CollectionType);
+		protected final Property pr_Type_DataType = createProperty("DataType", _DataType);
+		protected final Property pr_Type_Type = createProperty("Type", _Type);
+		protected final Property pr_Type_TypeExp = createProperty("TypeExp", _TypeExp);
+		protected final Property pr_Type_TypeTemplateParameter = createProperty("TypeTemplateParameter", _TypeTemplateParameter);
+		protected final Property pr_Type_TypedElement = createProperty("TypedElement", _TypedElement);
+		protected final Property pr_Type_instanceClassName = createProperty("instanceClassName", _String);
+		protected final Property pr_Type_ownedAttribute = createProperty("ownedAttribute", _Property);
+		protected final Property pr_Type_ownedOperation = createProperty("ownedOperation", _Operation);
+		protected final Property pr_Type_package = createProperty("package", _Package);
+		protected final Property pr_Type_superClass = createProperty("superClass", _Type);
+		protected final Property pr_TypeExp_referredType = createProperty("referredType", _Type);
+		protected final Property pr_null_parameteredElement_1 = createProperty("parameteredElement", _ParameterableElement);
+		protected final Property pr_TypeTemplateParameter_allowSubstitutable = createProperty("allowSubstitutable", _Boolean);
+		protected final Property pr_TypeTemplateParameter_constrainingType = createProperty("constrainingType", _Type);
+		protected final Property pr_TypedElement_type = createProperty("type", _Type);
+		protected final Property pr_UnlimitedNaturalLiteralExp_unlimitedNaturalSymbol = createProperty("unlimitedNaturalSymbol", _UnlimitedNatural);
+		protected final Property pr_UnspecifiedType_lowerBound = createProperty("lowerBound", _Type);
+		protected final Property pr_UnspecifiedType_upperBound = createProperty("upperBound", _Type);
+		protected final Property pr_ValueSpecification_Constraint = createProperty("Constraint", _Constraint);
+		protected final Property pr_Variable_IterateExp = createProperty("IterateExp", _IterateExp);
+		protected final Property pr_Variable_LetExp = createProperty("LetExp", _LetExp);
+		protected final Property pr_Variable_LoopExp = createProperty("LoopExp", _LoopExp);
+		protected final Property pr_Variable_implicit = createProperty("implicit", _Boolean);
+		protected final Property pr_Variable_initExpression = createProperty("initExpression", _OclExpression);
+		protected final Property pr_Variable_representedParameter = createProperty("representedParameter", _Parameter);
+		protected final Property pr_VariableDeclaration_VariableExp = createProperty("VariableExp", _VariableExp);
+		protected final Property pr_VariableExp_implicit = createProperty("implicit", _Boolean);
+		protected final Property pr_VariableExp_referredVariable = createProperty("referredVariable", _VariableDeclaration);
+		
+		protected void installProperties() {
+			List<Property> ownedProperties;
+			Property property;
+			ownedProperties = _Annotation.getOwnedAttributes();
+			ownedProperties.add(property = pr_Annotation_NamedElement);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_NamedElement_ownedAnnotation);
+			ownedProperties.add(property = pr_Annotation_ownedContent);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Annotation_ownedDetail);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Detail_Annotation);
+			ownedProperties.add(property = pr_Annotation_reference);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsResolveProxies(true);
+			ownedProperties = _AssociationClass.getOwnedAttributes();
+			ownedProperties.add(property = pr_AssociationClass_AssociationClassCallExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_AssociationClassCallExp_referredAssociationClass);
+			ownedProperties.add(property = pr_AssociationClass_unownedAttribute);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Property_association);
+			ownedProperties = _AssociationClassCallExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_AssociationClassCallExp_referredAssociationClass);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_AssociationClass_AssociationClassCallExp);
+			ownedProperties = _BooleanLiteralExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_BooleanLiteralExp_booleanSymbol);
+			property.setIsResolveProxies(true);
+			property.setIsUnsettable(true);
+			ownedProperties = _CallExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_CallExp_implicit);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_CallExp_source);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_OclExpression_CallExp);
+			ownedProperties = _CallOperationAction.getOwnedAttributes();
+			ownedProperties.add(property = pr_CallOperationAction_MessageExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_MessageExp_calledOperation);
+			ownedProperties.add(property = pr_CallOperationAction_operation);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Operation_CallOperationAction);
+			ownedProperties = _Class.getOwnedAttributes();
+			ownedProperties.add(property = pr_Class_isAbstract);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Class_isInterface);
+			property.setIsResolveProxies(true);
+			ownedProperties = _ClassifierType.getOwnedAttributes();
+			ownedProperties.add(property = pr_ClassifierType_instanceType);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Type_ClassifierType);
+			ownedProperties = _CollectionItem.getOwnedAttributes();
+			ownedProperties.add(property = pr_CollectionItem_item);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_OclExpression_CollectionItem);
+			ownedProperties = _CollectionLiteralExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_CollectionLiteralExp_kind);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_CollectionLiteralExp_part);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_CollectionLiteralPart_CollectionLiteralExp);
+			ownedProperties = _CollectionLiteralPart.getOwnedAttributes();
+			ownedProperties.add(property = pr_CollectionLiteralPart_CollectionLiteralExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_CollectionLiteralExp_part);
+			ownedProperties = _CollectionRange.getOwnedAttributes();
+			ownedProperties.add(property = pr_CollectionRange_first);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_CollectionRange_last);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties = _CollectionType.getOwnedAttributes();
+			ownedProperties.add(property = pr_CollectionType_elementType);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Type_CollectionType);
+			ownedProperties = _Comment.getOwnedAttributes();
+			ownedProperties.add(property = pr_Comment_Element);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Element_ownedComment);
+			ownedProperties.add(property = pr_Comment_annotatedElement);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Comment_body);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties = _Constraint.getOwnedAttributes();
+			ownedProperties.add(property = pr_Constraint_constrainedElement);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Element_Constraint);
+			ownedProperties.add(property = pr_Constraint_context);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_NamedElement_ownedRule);
+			ownedProperties.add(property = pr_Constraint_isCallable);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Constraint_specification);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_ValueSpecification_Constraint);
+			ownedProperties.add(property = pr_Constraint_stereotype);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties = _ConstructorExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_ConstructorExp_part);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_ConstructorPart_ConstructorExp);
+			ownedProperties = _ConstructorPart.getOwnedAttributes();
+			ownedProperties.add(property = pr_ConstructorPart_ConstructorExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_ConstructorExp_part);
+			ownedProperties.add(property = pr_ConstructorPart_initExpression);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_OclExpression_ConstructorPart);
+			ownedProperties.add(property = pr_ConstructorPart_referredProperty);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Property_ConstructorPart);
+			ownedProperties = _DataType.getOwnedAttributes();
+			ownedProperties.add(property = pr_DataType_behavioralType);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Type_DataType);
+			ownedProperties.add(property = pr_DataType_isSerializable);
+			property.setIsResolveProxies(true);
+			ownedProperties = _Detail.getOwnedAttributes();
+			ownedProperties.add(property = pr_Detail_Annotation);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Annotation_ownedDetail);
+			ownedProperties.add(property = pr_Detail_value);
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsResolveProxies(true);
+			ownedProperties = _Element.getOwnedAttributes();
+			ownedProperties.add(property = pr_Element_Constraint);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Constraint_constrainedElement);
+			ownedProperties.add(property = pr_Element_ownedComment);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Comment_Element);
+			ownedProperties = _EnumLiteralExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_EnumLiteralExp_referredEnumLiteral);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_EnumerationLiteral_EnumLiteralExp);
+			ownedProperties = _Enumeration.getOwnedAttributes();
+			ownedProperties.add(property = pr_Enumeration_ownedLiteral);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_EnumerationLiteral_enumeration);
+			ownedProperties = _EnumerationLiteral.getOwnedAttributes();
+			ownedProperties.add(property = pr_EnumerationLiteral_EnumLiteralExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_EnumLiteralExp_referredEnumLiteral);
+			ownedProperties.add(property = pr_EnumerationLiteral_enumeration);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Enumeration_ownedLiteral);
+			ownedProperties.add(property = pr_EnumerationLiteral_value);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties = _ExpressionInOcl.getOwnedAttributes();
+			ownedProperties.add(property = pr_ExpressionInOcl_bodyExpression);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_ExpressionInOcl_contextVariable);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_ExpressionInOcl_messageExpression);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_ExpressionInOcl_parameterVariable);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_ExpressionInOcl_resultVariable);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties = _Feature.getOwnedAttributes();
+			ownedProperties.add(property = pr_Feature_implementation);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setIsTransient(true);
+			ownedProperties.add(property = pr_Feature_implementationClass);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties = _FeatureCallExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_FeatureCallExp_isPre);
+			property.setIsResolveProxies(true);
+			ownedProperties = _IfExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_IfExp_condition);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_IfExp_elseExpression);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_IfExp_thenExpression);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties = _IntegerLiteralExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_IntegerLiteralExp_integerSymbol);
+			property.setIsResolveProxies(true);
+			ownedProperties = _IterateExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_IterateExp_result);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Variable_IterateExp);
+			ownedProperties = _Iteration.getOwnedAttributes();
+			ownedProperties.add(property = pr_Iteration_LoopExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_LoopExp_referredIteration);
+			ownedProperties.add(property = pr_Iteration_ownedAccumulator);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Iteration_ownedIterator);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties = _LambdaType.getOwnedAttributes();
+			ownedProperties.add(property = pr_LambdaType_contextType);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_LambdaType_parameterType);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_LambdaType_resultType);
+			property.setIsResolveProxies(true);
+			ownedProperties = _LetExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_LetExp_in);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_OclExpression_LetExp);
+			ownedProperties.add(property = pr_LetExp_variable);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Variable_LetExp);
+			ownedProperties = _LoopExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_LoopExp_body);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_OclExpression_LoopExp);
+			ownedProperties.add(property = pr_LoopExp_iterator);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Variable_LoopExp);
+			ownedProperties.add(property = pr_LoopExp_referredIteration);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Iteration_LoopExp);
+			ownedProperties = _MessageExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_MessageExp_argument);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_MessageExp_calledOperation);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_CallOperationAction_MessageExp);
+			ownedProperties.add(property = pr_MessageExp_sentSignal);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_SendSignalAction_MessageExp);
+			ownedProperties.add(property = pr_MessageExp_target);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties = _MessageType.getOwnedAttributes();
+			ownedProperties.add(property = pr_MessageType_referredOperation);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Operation_MessageType);
+			ownedProperties.add(property = pr_MessageType_referredSignal);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Signal_MessageType);
+			ownedProperties = _MultiplicityElement.getOwnedAttributes();
+			ownedProperties.add(property = pr_MultiplicityElement_isOrdered);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_MultiplicityElement_isUnique);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_MultiplicityElement_lower);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_MultiplicityElement_upper);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties = _NamedElement.getOwnedAttributes();
+			ownedProperties.add(property = pr_NamedElement_isStatic);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_NamedElement_name);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_NamedElement_ownedAnnotation);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Annotation_NamedElement);
+			ownedProperties.add(property = pr_NamedElement_ownedRule);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Constraint_context);
+			ownedProperties = _NavigationCallExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_NavigationCallExp_navigationSource);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsOrdered(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Property_NavigationCallExp);
+			ownedProperties.add(property = pr_NavigationCallExp_qualifier);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_OclExpression_NavigationCallExp);
+			ownedProperties = _OclExpression.getOwnedAttributes();
+			ownedProperties.add(property = pr_OclExpression_CallExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_CallExp_source);
+			ownedProperties.add(property = pr_OclExpression_CollectionItem);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_CollectionItem_item);
+			ownedProperties.add(property = pr_OclExpression_ConstructorPart);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_ConstructorPart_initExpression);
+			ownedProperties.add(property = pr_OclExpression_LetExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_LetExp_in);
+			ownedProperties.add(property = pr_OclExpression_LoopExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_LoopExp_body);
+			ownedProperties.add(property = pr_OclExpression_NavigationCallExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_NavigationCallExp_qualifier);
+			ownedProperties.add(property = pr_OclExpression_OperationCallExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_OperationCallExp_argument);
+			ownedProperties.add(property = pr_OclExpression_TupleLiteralPart);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TupleLiteralPart_initExpression);
+			ownedProperties.add(property = pr_OclExpression_Variable);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Variable_initExpression);
+			ownedProperties = _OpaqueExpression.getOwnedAttributes();
+			ownedProperties.add(property = pr_OpaqueExpression_body);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsUnique(false);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_OpaqueExpression_language);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_OpaqueExpression_message);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsUnique(false);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_OpaqueExpression_valueExpression);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setIsTransient(true);
+			ownedProperties = _Operation.getOwnedAttributes();
+			ownedProperties.add(property = pr_Operation_CallOperationAction);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_CallOperationAction_operation);
+			ownedProperties.add(property = pr_Operation_MessageType);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_MessageType_referredOperation);
+			ownedProperties.add(property = pr_Operation_OperationCallExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_OperationCallExp_referredOperation);
+			ownedProperties.add(property = pr_Operation_class);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsReadOnly(true);
+			property.setIsResolveProxies(true);
+			property.setIsTransient(true);
+			property.setIsVolatile(true);
+			ownedProperties.add(property = pr_Operation_ownedParameter);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Parameter_operation);
+			ownedProperties.add(property = pr_Operation_owningType);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Type_ownedOperation);
+			ownedProperties.add(property = pr_Operation_precedence);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Precedence_Operation);
+			ownedProperties.add(property = pr_Operation_raisedException);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsResolveProxies(true);
+			ownedProperties = _OperationCallExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_OperationCallExp_argument);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_OclExpression_OperationCallExp);
+			ownedProperties.add(property = pr_OperationCallExp_referredOperation);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Operation_OperationCallExp);
+			ownedProperties = _Package.getOwnedAttributes();
+			ownedProperties.add(property = pr_Package_nestedPackage);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Package_nestingPackage);
+			ownedProperties.add(property = pr_Package_nestingPackage);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Package_nestedPackage);
+			ownedProperties.add(property = pr_Package_nsPrefix);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Package_nsURI);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Package_ownedPrecedence);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Precedence_Package);
+			ownedProperties.add(property = pr_Package_ownedType);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Type_package);
+			ownedProperties = _Parameter.getOwnedAttributes();
+			ownedProperties.add(property = pr_Parameter_Variable);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Variable_representedParameter);
+			ownedProperties.add(property = pr_Parameter_operation);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Operation_ownedParameter);
+			ownedProperties = _ParameterableElement.getOwnedAttributes();
+			ownedProperties.add(property = pr_ParameterableElement_owningTemplateParameter);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TemplateParameter_ownedParameteredElement);
+			ownedProperties.add(property = pr_ParameterableElement_templateParameter);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TemplateParameter_parameteredElement);
+			ownedProperties = _Precedence.getOwnedAttributes();
+			ownedProperties.add(property = pr_Precedence_Operation);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Operation_precedence);
+			ownedProperties.add(property = pr_Precedence_Package);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Package_ownedPrecedence);
+			ownedProperties.add(property = pr_Precedence_associativity);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Precedence_order);
+			property.setIsDerived(true);
+			property.setIsResolveProxies(true);
+			property.setIsTransient(true);
+			property.setIsVolatile(true);
+			ownedProperties = _Property.getOwnedAttributes();
+			ownedProperties.add(property = pr_Property_ConstructorPart);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_ConstructorPart_referredProperty);
+			ownedProperties.add(property = pr_Property_NavigationCallExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_NavigationCallExp_navigationSource);
+			ownedProperties.add(property = pr_Property_PropertyCallExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_PropertyCallExp_referredProperty);
+			ownedProperties.add(property = pr_Property_association);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_AssociationClass_unownedAttribute);
+			ownedProperties.add(property = pr_Property_class);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsReadOnly(true);
+			property.setIsResolveProxies(true);
+			property.setIsTransient(true);
+			property.setIsVolatile(true);
+			ownedProperties.add(property = pr_Property_default);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Property_implicit);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Property_isComposite);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Property_isDerived);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Property_isID);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Property_isReadOnly);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Property_isResolveProxies);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Property_isTransient);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Property_isUnsettable);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Property_isVolatile);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Property_keys);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Property_opposite);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Property_owningType);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Type_ownedAttribute);
+			ownedProperties = _PropertyCallExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_PropertyCallExp_referredProperty);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Property_PropertyCallExp);
+			ownedProperties = _RealLiteralExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_RealLiteralExp_realSymbol);
+			property.setIsResolveProxies(true);
+			ownedProperties = _SendSignalAction.getOwnedAttributes();
+			ownedProperties.add(property = pr_SendSignalAction_MessageExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_MessageExp_sentSignal);
+			ownedProperties.add(property = pr_SendSignalAction_signal);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Signal_SendSignalAction);
+			ownedProperties = _Signal.getOwnedAttributes();
+			ownedProperties.add(property = pr_Signal_MessageType);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_MessageType_referredSignal);
+			ownedProperties.add(property = pr_Signal_SendSignalAction);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_SendSignalAction_signal);
+			ownedProperties = _State.getOwnedAttributes();
+			ownedProperties.add(property = pr_State_StateExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_StateExp_referredState);
+			ownedProperties = _StateExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_StateExp_referredState);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_State_StateExp);
+			ownedProperties = _StringLiteralExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_StringLiteralExp_stringSymbol);
+			property.setIsResolveProxies(true);
+			ownedProperties = _TemplateBinding.getOwnedAttributes();
+			ownedProperties.add(property = pr_TemplateBinding_boundElement);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TemplateableElement_templateBinding);
+			ownedProperties.add(property = pr_TemplateBinding_parameterSubstitution);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TemplateParameterSubstitution_templateBinding);
+			ownedProperties.add(property = pr_TemplateBinding_signature);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TemplateSignature_TemplateBinding);
+			ownedProperties = _TemplateParameter.getOwnedAttributes();
+			ownedProperties.add(property = pr_TemplateParameter_TemplateParameterSubstitution);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TemplateParameterSubstitution_formal);
+			ownedProperties.add(property = pr_TemplateParameter_default);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_TemplateParameter_ownedDefault);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_TemplateParameter_ownedParameteredElement);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_ParameterableElement_owningTemplateParameter);
+			ownedProperties.add(property = pr_TemplateParameter_parameteredElement);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_ParameterableElement_templateParameter);
+			ownedProperties.add(property = pr_TemplateParameter_signature);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TemplateSignature_ownedParameter);
+			ownedProperties = _TemplateParameterSubstitution.getOwnedAttributes();
+			ownedProperties.add(property = pr_TemplateParameterSubstitution_actual);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_TemplateParameterSubstitution_formal);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TemplateParameter_TemplateParameterSubstitution);
+			ownedProperties.add(property = pr_TemplateParameterSubstitution_ownedActual);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_TemplateParameterSubstitution_templateBinding);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TemplateBinding_parameterSubstitution);
+			ownedProperties = _TemplateParameterType.getOwnedAttributes();
+			ownedProperties.add(property = pr_TemplateParameterType_specification);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties = _TemplateSignature.getOwnedAttributes();
+			ownedProperties.add(property = pr_TemplateSignature_TemplateBinding);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TemplateBinding_signature);
+			ownedProperties.add(property = pr_TemplateSignature_ownedParameter);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TemplateParameter_signature);
+			ownedProperties.add(property = pr_TemplateSignature_parameter);
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_TemplateSignature_template);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TemplateableElement_ownedTemplateSignature);
+			ownedProperties = _TemplateableElement.getOwnedAttributes();
+			ownedProperties.add(property = pr_TemplateableElement_ownedTemplateSignature);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TemplateSignature_template);
+			ownedProperties.add(property = pr_TemplateableElement_templateBinding);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TemplateBinding_boundElement);
+			ownedProperties.add(property = pr_TemplateableElement_unspecializedElement);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsTransient(true);
+			ownedProperties = _TupleLiteralExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_TupleLiteralExp_part);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TupleLiteralPart_TupleLiteralExp);
+			ownedProperties = _TupleLiteralPart.getOwnedAttributes();
+			ownedProperties.add(property = pr_TupleLiteralPart_TupleLiteralExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TupleLiteralExp_part);
+			ownedProperties.add(property = pr_TupleLiteralPart_initExpression);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_OclExpression_TupleLiteralPart);
+			ownedProperties = _Type.getOwnedAttributes();
+			ownedProperties.add(property = pr_Type_ClassifierType);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_ClassifierType_instanceType);
+			ownedProperties.add(property = pr_Type_CollectionType);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_CollectionType_elementType);
+			ownedProperties.add(property = pr_Type_DataType);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_DataType_behavioralType);
+			ownedProperties.add(property = pr_Type_Type);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Type_superClass);
+			ownedProperties.add(property = pr_Type_TypeExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TypeExp_referredType);
+			ownedProperties.add(property = pr_Type_TypeTemplateParameter);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TypeTemplateParameter_constrainingType);
+			ownedProperties.add(property = pr_Type_TypedElement);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_TypedElement_type);
+			ownedProperties.add(property = pr_Type_instanceClassName);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Type_ownedAttribute);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Property_owningType);
+			ownedProperties.add(property = pr_Type_ownedOperation);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Operation_owningType);
+			ownedProperties.add(property = pr_Type_package);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Package_ownedType);
+			ownedProperties.add(property = pr_Type_superClass);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsOrdered(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Type_Type);
+			ownedProperties = _TypeExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_TypeExp_referredType);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Type_TypeExp);
+			ownedProperties = _TypeTemplateParameter.getOwnedAttributes();
+			ownedProperties.add(property = pr_TypeTemplateParameter_allowSubstitutable);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_TypeTemplateParameter_constrainingType);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Type_TypeTemplateParameter);
+			ownedProperties = _TypedElement.getOwnedAttributes();
+			ownedProperties.add(property = pr_TypedElement_type);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Type_TypedElement);
+			ownedProperties = _UnlimitedNaturalLiteralExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_UnlimitedNaturalLiteralExp_unlimitedNaturalSymbol);
+			property.setIsResolveProxies(true);
+			ownedProperties = _UnspecifiedType.getOwnedAttributes();
+			ownedProperties.add(property = pr_UnspecifiedType_lowerBound);
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_UnspecifiedType_upperBound);
+			property.setIsResolveProxies(true);
+			ownedProperties = _ValueSpecification.getOwnedAttributes();
+			ownedProperties.add(property = pr_ValueSpecification_Constraint);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Constraint_specification);
+			ownedProperties = _Variable.getOwnedAttributes();
+			ownedProperties.add(property = pr_Variable_IterateExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_IterateExp_result);
+			ownedProperties.add(property = pr_Variable_LetExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_LetExp_variable);
+			ownedProperties.add(property = pr_Variable_LoopExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_LoopExp_iterator);
+			ownedProperties.add(property = pr_Variable_implicit);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_Variable_initExpression);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsComposite(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_OclExpression_Variable);
+			ownedProperties.add(property = pr_Variable_representedParameter);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_Parameter_Variable);
+			ownedProperties = _VariableDeclaration.getOwnedAttributes();
+			ownedProperties.add(property = pr_VariableDeclaration_VariableExp);
+			property.setLower(BigInteger.valueOf(0));
+			property.setUpper(BigInteger.valueOf(-1));
+			property.setImplicit(true);
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_VariableExp_referredVariable);
+			ownedProperties = _VariableExp.getOwnedAttributes();
+			ownedProperties.add(property = pr_VariableExp_implicit);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			ownedProperties.add(property = pr_VariableExp_referredVariable);
+			property.setLower(BigInteger.valueOf(0));
+			property.setIsResolveProxies(true);
+			property.setOpposite(pr_VariableDeclaration_VariableExp);
+		}
+		protected final TypeTemplateParameter tp_Visitor = createTypeTemplateParameter(_Visitor_C);
+		protected final TypeTemplateParameter tp_Visitor_1 = createTypeTemplateParameter(_Visitor_R);
+		
+		protected final TemplateSignature ts_Visitor = createTemplateSignature(_Visitor, tp_Visitor_1, tp_Visitor);
+		
+		protected void installTemplateSignatures() {
+		}
+		
+		protected void installTemplateBindings() {
+		}
+		
+		protected void installPrecedences() {
+		
+			final List<Precedence> ownedPrecedences = metaModel.getOwnedPrecedences();
+		
+		}
+		
+		protected void installComments() {
+			installComment(_Boolean, "A Boolean type is used for logical expression, consisting of the predefined values true and false.");
+			installComment(_Class, "A class is a type that has objects as its instances.");
+			installComment(pr_null_ownedAttribute, "The attributes owned by a class. These do not include the inherited attributes. Attributes are represented by instances of Property.");
+			installComment(pr_null_ownedOperation, "The operations owned by a class. These do not include the inherited operations.");
+			installComment(pr_null_superClass, "The immediate superclasses of a class, from which the class inherits.");
+			installComment(pr_Class_isAbstract, "True when a class is abstract.");
+			installComment(_Comment, "A comment is a textual annotation that can be attached to a set of elements.");
+			installComment(pr_Comment_annotatedElement, "References the Element(s) being commented.");
+			installComment(pr_Comment_body, "Specifies a string that is the comment.");
+			installComment(_Constraint, "A constraint is a condition or restriction expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element.");
+			installComment(pr_Constraint_constrainedElement, "The ordered set of Elements referenced by this Constraint.");
+			installComment(pr_Constraint_specification, "A condition that must be true when evaluated in order for the constraint to be satisfied.");
+			installComment(_DataType, "DataType is an abstract class that acts as a common superclass for different kinds of data types.");
+			installComment(_Element, "An element is a constituent of a model.");
+			installComment(pr_Element_ownedComment, "The Comments owned by this element.");
+			installComment(_Enumeration, "An enumeration defines a set of literals that can be used as its values.");
+			installComment(pr_Enumeration_ownedLiteral, "The ordered set of literals for this Enumeration.");
+			installComment(_EnumerationLiteral, "An enumeration literal is a value of an enumeration.");
+			installComment(pr_EnumerationLiteral_enumeration, "The Enumeration that this EnumerationLiteral is a member of.");
+			installComment(_Integer, "An integer is a primitive type representing integer values.");
+			installComment(_MultiplicityElement, "A multiplicity is a definition of an inclusive interval of non-negative integers beginning with a lower bound and ending with a (possibly infinite) upper bound. A multiplicity element embeds this information to specify the allowable cardinalities for an instantiation of this element.");
+			installComment(op_MultiplicityElement_includesCardinality, "The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.");
+			installComment(op_MultiplicityElement_includesMultiplicity, "The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.");
+			installComment(op_MultiplicityElement_isMultivalued, "The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.");
+			installComment(pr_MultiplicityElement_isOrdered, "For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.");
+			installComment(pr_MultiplicityElement_isUnique, "For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.");
+			installComment(pr_MultiplicityElement_lower, "Specifies the lower bound of the multiplicity interval.");
+			installComment(op_MultiplicityElement_lowerBound, "The query lowerBound() returns the lower bound of the multiplicity as an integer.");
+			installComment(pr_MultiplicityElement_upper, "Specifies the upper bound of the multiplicity interval.");
+			installComment(op_MultiplicityElement_upperBound, "The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.");
+			installComment(_NamedElement, "A named element represents an element with a name.");
+			installComment(pr_NamedElement_name, "The name of the NamedElement.");
+			installComment(_OpaqueExpression, "An opaque expression is an uninterpreted textual statement that denotes a (possibly empty) set of values when evaluated in a context.");
+			installComment(pr_OpaqueExpression_body, "The text of the expression, possibly in multiple languages.");
+			installComment(pr_OpaqueExpression_language, "Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the languages. If the languages are unspecified, they might be implicit from the expression body or the context. Languages are matched to body strings by order.");
+			installComment(_Operation, "An operation is owned by a class and may be invoked in the context of objects that are instances of that class. It is a typed element and a multiplicity element.\r\nOperation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.");
+			installComment(pr_null_templateParameter, "The template parameter that exposes this element as a formal parameter.");
+			installComment(pr_Operation_class, "The class that owns the operation.");
+			installComment(pr_Operation_ownedParameter, "The parameters to the operation.");
+			installComment(pr_Operation_raisedException, "The exceptions that are declared as possible during an invocation of the operation.");
+			installComment(_OperationTemplateParameter, "An operation template parameter exposes an operation as a formal parameter for a template.");
+			installComment(pr_null_parameteredElement, "The operation for this template parameter.");
+			installComment(_Package, "A package is a container for types and other packages.\r\nPackage specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter.");
+			installComment(pr_Package_nestedPackage, "The set of contained packages.");
+			installComment(pr_Package_nestingPackage, "The containing package.");
+			installComment(pr_Package_ownedType, "The set of contained types.");
+			installComment(_PackageableElement, "Packageable elements are able to serve as a template parameter.");
+			installComment(_Parameter, "A parameter is a typed element that represents a parameter of an operation.");
+			installComment(pr_Parameter_operation, "The operation that owns the parameter.");
+			installComment(_ParameterableElement, "A parameterable element is an element that can be exposed as a formal template parameter for a template, or specified as an actual parameter in a binding of a template.");
+			installComment(op_ParameterableElement_isTemplateParameter, "The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.");
+			installComment(pr_ParameterableElement_owningTemplateParameter, "The formal template parameter that owns this element.");
+			installComment(pr_ParameterableElement_templateParameter, "The template parameter that exposes this element as a formal parameter.");
+			installComment(_PrimitiveType, "A primitive type is a data type implemented by the underlying infrastructure and made available for modeling.");
+			installComment(_Property, "A property is a typed element that represents an attribute of a class.\r\nProperty specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.");
+			installComment(pr_Property_class, "The class that owns the property, and of which the property is an attribute.");
+			installComment(pr_Property_default, "A string that is evaluated to give a default value for the attribute when an object of the owning class is instantiated.");
+			installComment(pr_Property_isComposite, "If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute.");
+			installComment(pr_Property_isDerived, "If isDerived is true, the value of the attribute is derived from information elsewhere.");
+			installComment(pr_Property_isReadOnly, "If isReadOnly is true, the attribute may not be written to after initialization.");
+			installComment(pr_Property_opposite, "Two attributes attr1 and attr2 of two objects o1 and o2 (which may be the same object) may be paired with each other so that o1.attr1 refers to o2 if and only if o2.attr2 refers to o1. In such a case attr1 is the opposite of attr2 and attr2 is the opposite of attr1.");
+			installComment(_String, "A string is a sequence of characters in some suitable character set used to display information about the model. Character sets may include non-Roman alphabets and characters.");
+			installComment(_TemplateBinding, "A template binding represents a relationship between a templateable element and a template. A template binding specifies the substitutions of actual parameters for the formal parameters of the template.");
+			installComment(pr_TemplateBinding_boundElement, "The element that is bound by this binding.");
+			installComment(pr_TemplateBinding_parameterSubstitution, "The parameter substitutions owned by this template binding.");
+			installComment(pr_TemplateBinding_signature, "The template signature for the template that is the target of the binding.");
+			installComment(_TemplateParameter, "A template parameter exposes a parameterable element as a formal template parameter of a template.");
+			installComment(pr_TemplateParameter_default, "The element that is the default for this formal template parameter.");
+			installComment(pr_TemplateParameter_ownedDefault, "The element that is owned by this template parameter for the purpose of providing a default.");
+			installComment(pr_TemplateParameter_ownedParameteredElement, "The element that is owned by this template parameter.");
+			installComment(pr_TemplateParameter_parameteredElement, "The element exposed by this template parameter.");
+			installComment(pr_TemplateParameter_signature, "The template signature that owns this template parameter.");
+			installComment(_TemplateParameterSubstitution, "A template parameter substitution relates the actual parameter to a formal template parameter as part of a template binding.");
+			installComment(pr_TemplateParameterSubstitution_actual, "The element that is the actual parameter for this substitution.");
+			installComment(pr_TemplateParameterSubstitution_formal, "The formal template parameter that is associated with this substitution.");
+			installComment(pr_TemplateParameterSubstitution_ownedActual, "The actual parameter that is owned by this substitution.");
+			installComment(pr_TemplateParameterSubstitution_templateBinding, "The optional bindings from this element to templates.");
+			installComment(_TemplateSignature, "A template signature bundles the set of formal template parameters for a templated element.");
+			installComment(pr_TemplateSignature_ownedParameter, "The formal template parameters that are owned by this template signature.");
+			installComment(pr_TemplateSignature_parameter, "The ordered set of all formal template parameters for this template signature.");
+			installComment(pr_TemplateSignature_template, "The element that owns this template signature.");
+			installComment(_TemplateableElement, "A templateable element is an element that can optionally be defined as a template and bound to other templates.");
+			installComment(op_TemplateableElement_isTemplate, "The query isTemplate() returns whether this templateable element is actually a template.");
+			installComment(pr_TemplateableElement_ownedTemplateSignature, "The optional template signature specifying the formal template parameters.");
+			installComment(op_TemplateableElement_parameterableElements, "The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements.");
+			installComment(pr_TemplateableElement_templateBinding, "The optional bindings from this element to templates.");
+			installComment(_Type, "A type is a named element that is used as the type for a typed element. A type can be contained in a package.\r\nType is defined to be a kind of templateable element so that a type can be parameterized. It is also defined to be a kind of parameterable element so that a type can be a formal template parameter.");
+			installComment(op_null_isTemplate, "The query isTemplate() returns whether this templateable element is actually a template.");
+			installComment(pr_null_templateParameter_1, "The template parameter that exposes this element as a formal parameter.");
+			installComment(pr_Type_package, "Specifies the owning package of this classifier, if any.");
+			installComment(_TypeTemplateParameter, "A type template parameter exposes a type as a formal template parameter.");
+			installComment(pr_null_parameteredElement_1, "The parameterable classifier for this template parameter.");
+			installComment(pr_TypeTemplateParameter_allowSubstitutable, "Constrains the required relationship between an actual parameter and the parameteredElement for this formal parameter.");
+			installComment(pr_TypeTemplateParameter_constrainingType, "The classifiers that constrain the argument that can be used for the parameter. If the allowSubstitutable attribute is true, then any classifier that is compatible with this constraining classifier can be substituted; otherwise, it must be either this classifier or one of its subclasses. If this property is empty, there are no constraints on the classifier that can be used as an argument.");
+			installComment(_TypedElement, "A typed element is a kind of named element that represents an element with a type.");
+			installComment(pr_TypedElement_type, "The type of the TypedElement.");
+			installComment(_UnlimitedNatural, "An unlimited natural is a primitive type representing unlimited natural values.");
+			installComment(_ValueSpecification, "A value specification is the specification of a (possibly empty) set of instances, including both objects and data values.\r\nValueSpecification specializes ParameterableElement to specify that a value specification can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.");
+			installComment(op_ValueSpecification_booleanValue, "The query booleanValue() gives a single Boolean value when one can be computed.");
+			installComment(op_ValueSpecification_integerValue, "The query integerValue() gives a single Integer value when one can be computed.");
+			installComment(op_ValueSpecification_isComputable, "The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals.");
+			installComment(op_ValueSpecification_isNull, "The query isNull() returns true when it can be computed that the value is null.");
+			installComment(op_ValueSpecification_stringValue, "The query stringValue() gives a single String value when one can be computed.");
+			installComment(op_ValueSpecification_unlimitedValue, "The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.");
+		}
 	}
 }
diff --git a/examples/org.eclipse.ocl.examples.pivot/model/Pivot.merged.uml b/examples/org.eclipse.ocl.examples.pivot/model/Pivot.merged.uml
index 2bc9527..15692f1 100644
--- a/examples/org.eclipse.ocl.examples.pivot/model/Pivot.merged.uml
+++ b/examples/org.eclipse.ocl.examples.pivot/model/Pivot.merged.uml
@@ -1,1290 +1,1290 @@
 <?xml version="1.0" encoding="UTF-8"?>

 <xmi:XMI xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.omg.org/spec/UML/20110701" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA http://www.omg.org/spec/UML/20110701 http://www.eclipse.org/uml2/4.0.0/UML">

   <uml:Package xmi:id="_0" name="pivot" URI="http://www.omg.org/spec/UML/20090901">

-    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_Hq4gmUfgEeGpovDQzEpx9g" name="Boolean">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_Hq4gmkfgEeGpovDQzEpx9g" annotatedElement="_Hq4gmUfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_eeLleEqOEeGiC_zHokq9VA" name="Boolean">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eeLleUqOEeGiC_zHokq9VA" annotatedElement="_eeLleEqOEeGiC_zHokq9VA">

         <body>A Boolean type is used for logical expression, consisting of the predefined values true and false.</body>

       </ownedComment>

     </packagedElement>

-    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_HsOkXEfgEeGpovDQzEpx9g" name="Int"/>

-    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_Hq4gl0fgEeGpovDQzEpx9g" name="Integer">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_Hq4gmEfgEeGpovDQzEpx9g" annotatedElement="_Hq4gl0fgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_eifdvEqOEeGiC_zHokq9VA" name="Int"/>

+    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_eeLldkqOEeGiC_zHokq9VA" name="Integer">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eeLld0qOEeGiC_zHokq9VA" annotatedElement="_eeLldkqOEeGiC_zHokq9VA">

         <body>An integer is a primitive type representing integer values.</body>

       </ownedComment>

     </packagedElement>

-    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_HsEzVkfgEeGpovDQzEpx9g" name="LibraryFeature"/>

-    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_HsEzV0fgEeGpovDQzEpx9g" name="Object"/>

-    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_Hrx4akfgEeGpovDQzEpx9g" name="Real"/>

-    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_Hq4gm0fgEeGpovDQzEpx9g" name="String">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_Hq4gnEfgEeGpovDQzEpx9g" annotatedElement="_Hq4gm0fgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_egG4FEqOEeGiC_zHokq9VA" name="LibraryFeature"/>

+    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_egG4FUqOEeGiC_zHokq9VA" name="Object"/>

+    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_efqzMEqOEeGiC_zHokq9VA" name="Real"/>

+    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_eeLlekqOEeGiC_zHokq9VA" name="String">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eeLle0qOEeGiC_zHokq9VA" annotatedElement="_eeLlekqOEeGiC_zHokq9VA">

         <body>A string is a sequence of characters in some suitable character set used to display information about the model. Character sets may include non-Roman alphabets and characters.</body>

       </ownedComment>

     </packagedElement>

-    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_HsEzWEfgEeGpovDQzEpx9g" name="Throwable"/>

-    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_Hq4gnUfgEeGpovDQzEpx9g" name="UnlimitedNatural">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_Hq4gnkfgEeGpovDQzEpx9g" annotatedElement="_Hq4gnUfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_egG4FkqOEeGiC_zHokq9VA" name="Throwable"/>

+    <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_eeLlfEqOEeGiC_zHokq9VA" name="UnlimitedNatural">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eeLlfUqOEeGiC_zHokq9VA" annotatedElement="_eeLlfEqOEeGiC_zHokq9VA">

         <body>An unlimited natural is a primitive type representing unlimited natural values.</body>

       </ownedComment>

     </packagedElement>

-    <packagedElement xmi:type="uml:Enumeration" xmi:id="_HsEzbkfgEeGpovDQzEpx9g" name="AssociativityKind">

-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_HsEzb0fgEeGpovDQzEpx9g" name="Left" enumeration="_HsEzbkfgEeGpovDQzEpx9g"/>

-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_HsEzcEfgEeGpovDQzEpx9g" name="Right" enumeration="_HsEzbkfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_eiVss0qOEeGiC_zHokq9VA" name="AssociativityKind">

+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_eiVstEqOEeGiC_zHokq9VA" name="Left" enumeration="_eiVss0qOEeGiC_zHokq9VA"/>

+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_eiVstUqOEeGiC_zHokq9VA" name="Right" enumeration="_eiVss0qOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Enumeration" xmi:id="_Hre9jEfgEeGpovDQzEpx9g" name="CollectionKind">

-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Hre9jUfgEeGpovDQzEpx9g" name="Collection" enumeration="_Hre9jEfgEeGpovDQzEpx9g"/>

-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Hre9jkfgEeGpovDQzEpx9g" name="Set" enumeration="_Hre9jEfgEeGpovDQzEpx9g"/>

-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Hre9j0fgEeGpovDQzEpx9g" name="OrderedSet" enumeration="_Hre9jEfgEeGpovDQzEpx9g"/>

-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Hre9kEfgEeGpovDQzEpx9g" name="Bag" enumeration="_Hre9jEfgEeGpovDQzEpx9g"/>

-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Hre9kUfgEeGpovDQzEpx9g" name="Sequence" enumeration="_Hre9jEfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_efEWXEqOEeGiC_zHokq9VA" name="CollectionKind">

+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_efEWXUqOEeGiC_zHokq9VA" name="Collection" enumeration="_efEWXEqOEeGiC_zHokq9VA"/>

+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_efEWXkqOEeGiC_zHokq9VA" name="Set" enumeration="_efEWXEqOEeGiC_zHokq9VA"/>

+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_efEWX0qOEeGiC_zHokq9VA" name="OrderedSet" enumeration="_efEWXEqOEeGiC_zHokq9VA"/>

+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_efEWYEqOEeGiC_zHokq9VA" name="Bag" enumeration="_efEWXEqOEeGiC_zHokq9VA"/>

+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_efEWYUqOEeGiC_zHokq9VA" name="Sequence" enumeration="_efEWXEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hr7CUEfgEeGpovDQzEpx9g" name="Annotation">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hr7CUUfgEeGpovDQzEpx9g" general="_HqSqo0fgEeGpovDQzEpx9g" specific="_Hr7CUEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CUkfgEeGpovDQzEpx9g" name="ownedContent" type="_HqlmEEfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hr7CU0fgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hr7CVEfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efz9I0qOEeGiC_zHokq9VA" name="Annotation">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efz9JEqOEeGiC_zHokq9VA" general="_edb-kEqOEeGiC_zHokq9VA" specific="_efz9I0qOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efz9JUqOEeGiC_zHokq9VA" name="ownedContent" type="_edu5uEqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efz9JkqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efz9J0qOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CVUfgEeGpovDQzEpx9g" name="ownedDetail" type="_Hr7CW0fgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hr7CVkfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hr7CV0fgEeGpovDQzEpx9g" value="*"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efz9KEqOEeGiC_zHokq9VA" name="ownedDetail" type="_efz9LkqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efz9KUqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efz9KkqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CWEfgEeGpovDQzEpx9g" name="reference" type="_HqlmEEfgEeGpovDQzEpx9g" isOrdered="true">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hr7CWUfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hr7CWkfgEeGpovDQzEpx9g" value="*"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efz9K0qOEeGiC_zHokq9VA" name="reference" type="_edu5uEqOEeGiC_zHokq9VA" isOrdered="true">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efz9LEqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efz9LUqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4a0fgEeGpovDQzEpx9g" name="AnyType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4bEfgEeGpovDQzEpx9g" general="_HqSqqUfgEeGpovDQzEpx9g" specific="_Hrx4a0fgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efqzMUqOEeGiC_zHokq9VA" name="AnyType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzMkqOEeGiC_zHokq9VA" general="_edb-lkqOEeGiC_zHokq9VA" specific="_efqzMUqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HrVMcEfgEeGpovDQzEpx9g" name="AssociationClass">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrVMcUfgEeGpovDQzEpx9g" general="_HqSqqUfgEeGpovDQzEpx9g" specific="_HrVMcEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrVMckfgEeGpovDQzEpx9g" name="unownedAttribute" type="_HqllkEfgEeGpovDQzEpx9g" association="_HrVMekfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrVMc0fgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HrVMdEfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_ee7MUEqOEeGiC_zHokq9VA" name="AssociationClass">

+      <generalization xmi:type="uml:Generalization" xmi:id="_ee7MUUqOEeGiC_zHokq9VA" general="_edb-lkqOEeGiC_zHokq9VA" specific="_ee7MUEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ee7MUkqOEeGiC_zHokq9VA" name="unownedAttribute" type="_edlIgEqOEeGiC_zHokq9VA" association="_ee7MWkqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ee7MU0qOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ee7MVEqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHi0fgEeGpovDQzEpx9g" name="AssociationClassCallExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHjEfgEeGpovDQzEpx9g" general="_HroHhEfgEeGpovDQzEpx9g" specific="_HroHi0fgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHjUfgEeGpovDQzEpx9g" name="referredAssociationClass" type="_HrVMcEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HroHjkfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efXRO0qOEeGiC_zHokq9VA" name="AssociationClassCallExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efXRPEqOEeGiC_zHokq9VA" general="_efXRNEqOEeGiC_zHokq9VA" specific="_efXRO0qOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efXRPUqOEeGiC_zHokq9VA" name="referredAssociationClass" type="_ee7MUEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efXRPkqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4bUfgEeGpovDQzEpx9g" name="BagType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4bkfgEeGpovDQzEpx9g" general="_Hrx4ckfgEeGpovDQzEpx9g" specific="_Hrx4bUfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efqzM0qOEeGiC_zHokq9VA" name="BagType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzNEqOEeGiC_zHokq9VA" general="_efqzOEqOEeGiC_zHokq9VA" specific="_efqzM0qOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9gkfgEeGpovDQzEpx9g" name="BooleanLiteralExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9g0fgEeGpovDQzEpx9g" general="_Hre90EfgEeGpovDQzEpx9g" specific="_Hre9gkfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9hEfgEeGpovDQzEpx9g" name="booleanSymbol" type="_Hq4gmUfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efEWUkqOEeGiC_zHokq9VA" name="BooleanLiteralExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efEWU0qOEeGiC_zHokq9VA" general="_efOHfkqOEeGiC_zHokq9VA" specific="_efEWUkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efEWVEqOEeGiC_zHokq9VA" name="booleanSymbol" type="_eeLleEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9hUfgEeGpovDQzEpx9g" name="CallExp" isAbstract="true">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9hkfgEeGpovDQzEpx9g" general="_Hre9kkfgEeGpovDQzEpx9g" specific="_Hre9hUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9h0fgEeGpovDQzEpx9g" name="source" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9iEfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efEWVUqOEeGiC_zHokq9VA" name="CallExp" isAbstract="true">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efEWVkqOEeGiC_zHokq9VA" general="_efOHQEqOEeGiC_zHokq9VA" specific="_efEWVUqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efEWV0qOEeGiC_zHokq9VA" name="source" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efEWWEqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9iUfgEeGpovDQzEpx9g" name="implicit" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9ikfgEeGpovDQzEpx9g"/>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hre9i0fgEeGpovDQzEpx9g" value="false"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efEWWUqOEeGiC_zHokq9VA" name="implicit" type="_eeLleEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efEWWkqOEeGiC_zHokq9VA"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_efEWW0qOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqSqoEfgEeGpovDQzEpx9g" name="CallOperationAction">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqSqoUfgEeGpovDQzEpx9g" general="_HqSqo0fgEeGpovDQzEpx9g" specific="_HqSqoEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqSqokfgEeGpovDQzEpx9g" name="operation" type="_HqSqpEfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_edSNkEqOEeGiC_zHokq9VA" name="CallOperationAction">

+      <generalization xmi:type="uml:Generalization" xmi:id="_edSNkUqOEeGiC_zHokq9VA" general="_edb-kEqOEeGiC_zHokq9VA" specific="_edSNkEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edSNkkqOEeGiC_zHokq9VA" name="operation" type="_edb-kUqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqSqqUfgEeGpovDQzEpx9g" name="Class">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HqSqqkfgEeGpovDQzEpx9g" annotatedElement="_HqSqqUfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_edb-lkqOEeGiC_zHokq9VA" name="Class">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_edb-l0qOEeGiC_zHokq9VA" annotatedElement="_edb-lkqOEeGiC_zHokq9VA">

         <body>A class is a type that has objects as its instances.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqSqq0fgEeGpovDQzEpx9g" general="_HqllpkfgEeGpovDQzEpx9g" specific="_HqSqqUfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hq4gkkfgEeGpovDQzEpx9g" general="_Hq4gk0fgEeGpovDQzEpx9g" specific="_HqSqqUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqSqrEfgEeGpovDQzEpx9g" name="isAbstract" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqSqrUfgEeGpovDQzEpx9g" annotatedElement="_HqSqrEfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_edb-mEqOEeGiC_zHokq9VA" general="_edlIlkqOEeGiC_zHokq9VA" specific="_edb-lkqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeLlcUqOEeGiC_zHokq9VA" general="_eeLlckqOEeGiC_zHokq9VA" specific="_edb-lkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edb-mUqOEeGiC_zHokq9VA" name="isAbstract" type="_eeLleEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edb-mkqOEeGiC_zHokq9VA" annotatedElement="_edb-mUqOEeGiC_zHokq9VA">

           <body>True when a class is abstract.</body>

         </ownedComment>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_HqSqrkfgEeGpovDQzEpx9g" value="false"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_edb-m0qOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqSqr0fgEeGpovDQzEpx9g" name="ownedAttribute" type="_HqllkEfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite" association="_HqlmJEfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqSqsEfgEeGpovDQzEpx9g" annotatedElement="_HqSqr0fgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edb-nEqOEeGiC_zHokq9VA" name="ownedAttribute" type="_edlIgEqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite" association="_ed4DfkqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edb-nUqOEeGiC_zHokq9VA" annotatedElement="_edb-nEqOEeGiC_zHokq9VA">

           <body>The attributes owned by a class. These do not include the inherited attributes. Attributes are represented by instances of Property.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqSqsUfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HqSqskfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edb-nkqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_edb-n0qOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqSqs0fgEeGpovDQzEpx9g" name="ownedOperation" type="_HqSqpEfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite" association="_HqvWkUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqSqtEfgEeGpovDQzEpx9g" annotatedElement="_HqSqs0fgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edb-oEqOEeGiC_zHokq9VA" name="ownedOperation" type="_edb-kUqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite" association="_ed4Dg0qOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edb-oUqOEeGiC_zHokq9VA" annotatedElement="_edb-oEqOEeGiC_zHokq9VA">

           <body>The operations owned by a class. These do not include the inherited operations.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqSqtUfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HqSqtkfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edb-okqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_edb-o0qOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqSqt0fgEeGpovDQzEpx9g" name="superClass" type="_HqSqqUfgEeGpovDQzEpx9g" association="_HqvWkkfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqSquEfgEeGpovDQzEpx9g" annotatedElement="_HqSqt0fgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edb-pEqOEeGiC_zHokq9VA" name="superClass" type="_edb-lkqOEeGiC_zHokq9VA" association="_ed4DhEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edb-pUqOEeGiC_zHokq9VA" annotatedElement="_edb-pEqOEeGiC_zHokq9VA">

           <body>The immediate superclasses of a class, from which the class inherits.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqSquUfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HqSqukfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edb-pkqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_edb-p0qOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CbUfgEeGpovDQzEpx9g" name="isInterface" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hr7CbkfgEeGpovDQzEpx9g" value="false"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ef9uIUqOEeGiC_zHokq9VA" name="isInterface" type="_eeLleEqOEeGiC_zHokq9VA">

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_ef9uIkqOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HsEzXUfgEeGpovDQzEpx9g" name="instanceClassName" type="_Hq4gm0fgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HsEzXkfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_egG4G0qOEeGiC_zHokq9VA" name="instanceClassName" type="_eeLlekqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_egG4HEqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4b0fgEeGpovDQzEpx9g" name="ClassifierType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4cEfgEeGpovDQzEpx9g" general="_HqSqqUfgEeGpovDQzEpx9g" specific="_Hrx4b0fgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hrx4cUfgEeGpovDQzEpx9g" name="instanceType" type="_HqllpkfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efqzNUqOEeGiC_zHokq9VA" name="ClassifierType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzNkqOEeGiC_zHokq9VA" general="_edb-lkqOEeGiC_zHokq9VA" specific="_efqzNUqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efqzN0qOEeGiC_zHokq9VA" name="instanceType" type="_edlIlkqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHYkfgEeGpovDQzEpx9g" name="CollectionItem">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHY0fgEeGpovDQzEpx9g" general="_HroHYEfgEeGpovDQzEpx9g" specific="_HroHYkfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHZEfgEeGpovDQzEpx9g" name="item" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHikqOEeGiC_zHokq9VA" name="CollectionItem">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHi0qOEeGiC_zHokq9VA" general="_efOHiEqOEeGiC_zHokq9VA" specific="_efOHikqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHjEqOEeGiC_zHokq9VA" name="item" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre91EfgEeGpovDQzEpx9g" name="CollectionLiteralExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre91UfgEeGpovDQzEpx9g" general="_Hre9zkfgEeGpovDQzEpx9g" specific="_Hre91EfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre91kfgEeGpovDQzEpx9g" name="kind" type="_Hre9jEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre910fgEeGpovDQzEpx9g" name="part" type="_HroHYEfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre92EfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hre92UfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHgkqOEeGiC_zHokq9VA" name="CollectionLiteralExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHg0qOEeGiC_zHokq9VA" general="_efOHfEqOEeGiC_zHokq9VA" specific="_efOHgkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHhEqOEeGiC_zHokq9VA" name="kind" type="_efEWXEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHhUqOEeGiC_zHokq9VA" name="part" type="_efOHiEqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHhkqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efOHh0qOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHYEfgEeGpovDQzEpx9g" name="CollectionLiteralPart" isAbstract="true">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHYUfgEeGpovDQzEpx9g" general="_HqllsUfgEeGpovDQzEpx9g" specific="_HroHYEfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHiEqOEeGiC_zHokq9VA" name="CollectionLiteralPart" isAbstract="true">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHiUqOEeGiC_zHokq9VA" general="_edlIoUqOEeGiC_zHokq9VA" specific="_efOHiEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHZUfgEeGpovDQzEpx9g" name="CollectionRange">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHZkfgEeGpovDQzEpx9g" general="_HroHYEfgEeGpovDQzEpx9g" specific="_HroHZUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHZ0fgEeGpovDQzEpx9g" name="first" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHaEfgEeGpovDQzEpx9g" name="last" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHjUqOEeGiC_zHokq9VA" name="CollectionRange">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHjkqOEeGiC_zHokq9VA" general="_efOHiEqOEeGiC_zHokq9VA" specific="_efOHjUqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHj0qOEeGiC_zHokq9VA" name="first" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHkEqOEeGiC_zHokq9VA" name="last" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4ckfgEeGpovDQzEpx9g" name="CollectionType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4c0fgEeGpovDQzEpx9g" general="_Hqll1UfgEeGpovDQzEpx9g" specific="_Hrx4ckfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hrx4dEfgEeGpovDQzEpx9g" name="elementType" type="_HqllpkfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efqzOEqOEeGiC_zHokq9VA" name="CollectionType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzOUqOEeGiC_zHokq9VA" general="_edlIxUqOEeGiC_zHokq9VA" specific="_efqzOEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efqzOkqOEeGiC_zHokq9VA" name="elementType" type="_edlIlkqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqlmFkfgEeGpovDQzEpx9g" name="Comment">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HqlmF0fgEeGpovDQzEpx9g" annotatedElement="_HqlmFkfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_ed4DcEqOEeGiC_zHokq9VA" name="Comment">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_ed4DcUqOEeGiC_zHokq9VA" annotatedElement="_ed4DcEqOEeGiC_zHokq9VA">

         <body>A comment is a textual annotation that can be attached to a set of elements.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqlmGEfgEeGpovDQzEpx9g" general="_HqlmEEfgEeGpovDQzEpx9g" specific="_HqlmFkfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqlmGUfgEeGpovDQzEpx9g" name="body" type="_Hq4gm0fgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqlmGkfgEeGpovDQzEpx9g" annotatedElement="_HqlmGUfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_ed4DckqOEeGiC_zHokq9VA" general="_edu5uEqOEeGiC_zHokq9VA" specific="_ed4DcEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ed4Dc0qOEeGiC_zHokq9VA" name="body" type="_eeLlekqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_ed4DdEqOEeGiC_zHokq9VA" annotatedElement="_ed4Dc0qOEeGiC_zHokq9VA">

           <body>Specifies a string that is the comment.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqlmG0fgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ed4DdUqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqlmHEfgEeGpovDQzEpx9g" name="annotatedElement" type="_HqlmEEfgEeGpovDQzEpx9g" association="_HqvWnUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqlmHUfgEeGpovDQzEpx9g" annotatedElement="_HqlmHEfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ed4DdkqOEeGiC_zHokq9VA" name="annotatedElement" type="_edu5uEqOEeGiC_zHokq9VA" association="_ed4Dj0qOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_ed4Dd0qOEeGiC_zHokq9VA" annotatedElement="_ed4DdkqOEeGiC_zHokq9VA">

           <body>References the Element(s) being commented.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqlmHkfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HqlmH0fgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ed4DeEqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ed4DeUqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqvWpEfgEeGpovDQzEpx9g" name="Constraint">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HqvWpUfgEeGpovDQzEpx9g" annotatedElement="_HqvWpEfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_eeB0cEqOEeGiC_zHokq9VA" name="Constraint">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eeB0cUqOEeGiC_zHokq9VA" annotatedElement="_eeB0cEqOEeGiC_zHokq9VA">

         <body>A constraint is a condition or restriction expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of an element.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqvWrEfgEeGpovDQzEpx9g" general="_HqSqo0fgEeGpovDQzEpx9g" specific="_HqvWpEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqvWrUfgEeGpovDQzEpx9g" name="constrainedElement" type="_HqlmEEfgEeGpovDQzEpx9g" isOrdered="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqvWrkfgEeGpovDQzEpx9g" annotatedElement="_HqvWrUfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeB0eEqOEeGiC_zHokq9VA" general="_edb-kEqOEeGiC_zHokq9VA" specific="_eeB0cEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeB0eUqOEeGiC_zHokq9VA" name="constrainedElement" type="_edu5uEqOEeGiC_zHokq9VA" isOrdered="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeB0ekqOEeGiC_zHokq9VA" annotatedElement="_eeB0eUqOEeGiC_zHokq9VA">

           <body>The ordered set of Elements referenced by this Constraint.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqvWr0fgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HqvWsEfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeB0e0qOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eeB0fEqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqvWsUfgEeGpovDQzEpx9g" name="specification" type="_HqvWtUfgEeGpovDQzEpx9g" aggregation="composite">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqvWskfgEeGpovDQzEpx9g" annotatedElement="_HqvWsUfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeB0fUqOEeGiC_zHokq9VA" name="specification" type="_eeB0gUqOEeGiC_zHokq9VA" aggregation="composite">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeB0fkqOEeGiC_zHokq9VA" annotatedElement="_eeB0fUqOEeGiC_zHokq9VA">

           <body>A condition that must be true when evaluated in order for the constraint to be satisfied.</body>

         </ownedComment>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqvWs0fgEeGpovDQzEpx9g" name="context" type="_HqSqo0fgEeGpovDQzEpx9g" association="_Hq4gkUfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqvWtEfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeB0f0qOEeGiC_zHokq9VA" name="context" type="_edb-kEqOEeGiC_zHokq9VA" association="_eeLlcEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeB0gEqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9gEfgEeGpovDQzEpx9g" name="stereotype" type="_Hq4gm0fgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9gUfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efEWUEqOEeGiC_zHokq9VA" name="stereotype" type="_eeLlekqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efEWUUqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HsEzUEfgEeGpovDQzEpx9g" name="isCallable" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_HsEzUUfgEeGpovDQzEpx9g" value="false"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ef9uOUqOEeGiC_zHokq9VA" name="isCallable" type="_eeLleEqOEeGiC_zHokq9VA">

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_ef9uOkqOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHpkfgEeGpovDQzEpx9g" name="ConstructorExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHp0fgEeGpovDQzEpx9g" general="_Hre9kkfgEeGpovDQzEpx9g" specific="_HroHpkfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHqEfgEeGpovDQzEpx9g" name="part" type="_HroHq0fgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HroHqUfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HroHqkfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efXRVkqOEeGiC_zHokq9VA" name="ConstructorExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efXRV0qOEeGiC_zHokq9VA" general="_efOHQEqOEeGiC_zHokq9VA" specific="_efXRVkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efXRWEqOEeGiC_zHokq9VA" name="part" type="_efXRW0qOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efXRWUqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efXRWkqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHq0fgEeGpovDQzEpx9g" name="ConstructorPart">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHrEfgEeGpovDQzEpx9g" general="_HqlmEEfgEeGpovDQzEpx9g" specific="_HroHq0fgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHrUfgEeGpovDQzEpx9g" name="referredProperty" type="_HqllkEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHrkfgEeGpovDQzEpx9g" name="initExpression" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efXRW0qOEeGiC_zHokq9VA" name="ConstructorPart">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efXRXEqOEeGiC_zHokq9VA" general="_edu5uEqOEeGiC_zHokq9VA" specific="_efXRW0qOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efXRXUqOEeGiC_zHokq9VA" name="referredProperty" type="_edlIgEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efXRXkqOEeGiC_zHokq9VA" name="initExpression" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hqll1UfgEeGpovDQzEpx9g" name="DataType">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_Hqll1kfgEeGpovDQzEpx9g" annotatedElement="_Hqll1UfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_edlIxUqOEeGiC_zHokq9VA" name="DataType">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_edlIxkqOEeGiC_zHokq9VA" annotatedElement="_edlIxUqOEeGiC_zHokq9VA">

         <body>DataType is an abstract class that acts as a common superclass for different kinds of data types.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hqll10fgEeGpovDQzEpx9g" general="_HqllpkfgEeGpovDQzEpx9g" specific="_Hqll1UfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9cEfgEeGpovDQzEpx9g" general="_HqSqqUfgEeGpovDQzEpx9g" specific="_Hqll1UfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7Cb0fgEeGpovDQzEpx9g" name="isSerializable" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hr7CcEfgEeGpovDQzEpx9g" value="true"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_edlIx0qOEeGiC_zHokq9VA" general="_edlIlkqOEeGiC_zHokq9VA" specific="_edlIxUqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_efEWQEqOEeGiC_zHokq9VA" general="_edb-lkqOEeGiC_zHokq9VA" specific="_edlIxUqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ef9uI0qOEeGiC_zHokq9VA" name="isSerializable" type="_eeLleEqOEeGiC_zHokq9VA">

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_ef9uJEqOEeGiC_zHokq9VA" value="true"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CcUfgEeGpovDQzEpx9g" name="behavioralType" type="_HqllpkfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hr7CckfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ef9uJUqOEeGiC_zHokq9VA" name="behavioralType" type="_edlIlkqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ef9uJkqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hr7CW0fgEeGpovDQzEpx9g" name="Detail">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hr7CXEfgEeGpovDQzEpx9g" general="_HqSqo0fgEeGpovDQzEpx9g" specific="_Hr7CW0fgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CXUfgEeGpovDQzEpx9g" name="value" type="_Hq4gm0fgEeGpovDQzEpx9g">

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hr7CXkfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efz9LkqOEeGiC_zHokq9VA" name="Detail">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efz9L0qOEeGiC_zHokq9VA" general="_edb-kEqOEeGiC_zHokq9VA" specific="_efz9LkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efz9MEqOEeGiC_zHokq9VA" name="value" type="_eeLlekqOEeGiC_zHokq9VA">

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efz9MUqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqlmEEfgEeGpovDQzEpx9g" clientDependency="_HsXuREfgEeGpovDQzEpx9g" name="Element" isAbstract="true">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HqlmEUfgEeGpovDQzEpx9g" annotatedElement="_HqlmEEfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_edu5uEqOEeGiC_zHokq9VA" clientDependency="_eipOtEqOEeGiC_zHokq9VA" name="Element" isAbstract="true">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_edu5uUqOEeGiC_zHokq9VA" annotatedElement="_edu5uEqOEeGiC_zHokq9VA">

         <body>An element is a constituent of a model.</body>

       </ownedComment>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqlmEkfgEeGpovDQzEpx9g" name="ownedComment" type="_HqlmFkfgEeGpovDQzEpx9g" aggregation="composite" association="_HqvWoUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqlmE0fgEeGpovDQzEpx9g" annotatedElement="_HqlmEkfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edu5ukqOEeGiC_zHokq9VA" name="ownedComment" type="_ed4DcEqOEeGiC_zHokq9VA" aggregation="composite" association="_ed4Dk0qOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edu5u0qOEeGiC_zHokq9VA" annotatedElement="_edu5ukqOEeGiC_zHokq9VA">

           <body>The Comments owned by this element.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqlmFEfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HqlmFUfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edu5vEqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_edu5vUqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_HsXuREfgEeGpovDQzEpx9g" client="_HqlmEEfgEeGpovDQzEpx9g" supplier="_HsXuRUfgEeGpovDQzEpx9g" contract="_HsXuRUfgEeGpovDQzEpx9g" implementingClassifier="_HqlmEEfgEeGpovDQzEpx9g"/>

+      <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_eipOtEqOEeGiC_zHokq9VA" client="_edu5uEqOEeGiC_zHokq9VA" supplier="_eipOtUqOEeGiC_zHokq9VA" contract="_eipOtUqOEeGiC_zHokq9VA" implementingClassifier="_edu5uEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9l0fgEeGpovDQzEpx9g" name="EnumLiteralExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9mEfgEeGpovDQzEpx9g" general="_Hre9zkfgEeGpovDQzEpx9g" specific="_Hre9l0fgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9mUfgEeGpovDQzEpx9g" name="referredEnumLiteral" type="_HqllvkfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9mkfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHRUqOEeGiC_zHokq9VA" name="EnumLiteralExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHRkqOEeGiC_zHokq9VA" general="_efOHfEqOEeGiC_zHokq9VA" specific="_efOHRUqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHR0qOEeGiC_zHokq9VA" name="referredEnumLiteral" type="_edlIrkqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHSEqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hqllt0fgEeGpovDQzEpx9g" name="Enumeration">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HqlluEfgEeGpovDQzEpx9g" annotatedElement="_Hqllt0fgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_edlIp0qOEeGiC_zHokq9VA" name="Enumeration">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_edlIqEqOEeGiC_zHokq9VA" annotatedElement="_edlIp0qOEeGiC_zHokq9VA">

         <body>An enumeration defines a set of literals that can be used as its values.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqlluUfgEeGpovDQzEpx9g" general="_Hqll1UfgEeGpovDQzEpx9g" specific="_Hqllt0fgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqllukfgEeGpovDQzEpx9g" name="ownedLiteral" type="_HqllvkfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite" association="_HqvWmkfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hqllu0fgEeGpovDQzEpx9g" annotatedElement="_HqllukfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_edlIqUqOEeGiC_zHokq9VA" general="_edlIxUqOEeGiC_zHokq9VA" specific="_edlIp0qOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edlIqkqOEeGiC_zHokq9VA" name="ownedLiteral" type="_edlIrkqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite" association="_ed4DjEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edlIq0qOEeGiC_zHokq9VA" annotatedElement="_edlIqkqOEeGiC_zHokq9VA">

           <body>The ordered set of literals for this Enumeration.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqllvEfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HqllvUfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edlIrEqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_edlIrUqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqllvkfgEeGpovDQzEpx9g" name="EnumerationLiteral">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_Hqllv0fgEeGpovDQzEpx9g" annotatedElement="_HqllvkfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_edlIrkqOEeGiC_zHokq9VA" name="EnumerationLiteral">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_edlIr0qOEeGiC_zHokq9VA" annotatedElement="_edlIrkqOEeGiC_zHokq9VA">

         <body>An enumeration literal is a value of an enumeration.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqllwEfgEeGpovDQzEpx9g" general="_HqSqo0fgEeGpovDQzEpx9g" specific="_HqllvkfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqllwUfgEeGpovDQzEpx9g" name="enumeration" type="_Hqllt0fgEeGpovDQzEpx9g" association="_HqvWmkfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqllwkfgEeGpovDQzEpx9g" annotatedElement="_HqllwUfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_edlIsEqOEeGiC_zHokq9VA" general="_edb-kEqOEeGiC_zHokq9VA" specific="_edlIrkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edlIsUqOEeGiC_zHokq9VA" name="enumeration" type="_edlIp0qOEeGiC_zHokq9VA" association="_ed4DjEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edlIskqOEeGiC_zHokq9VA" annotatedElement="_edlIsUqOEeGiC_zHokq9VA">

           <body>The Enumeration that this EnumerationLiteral is a member of.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hqllw0fgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edlIs0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7Cc0fgEeGpovDQzEpx9g" name="value" type="_Hq4gl0fgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hr7CdEfgEeGpovDQzEpx9g"/>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hr7CdUfgEeGpovDQzEpx9g" value="0"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ef9uJ0qOEeGiC_zHokq9VA" name="value" type="_eeLldkqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ef9uKEqOEeGiC_zHokq9VA"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_ef9uKUqOEeGiC_zHokq9VA" value="0"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHcEfgEeGpovDQzEpx9g" name="ExpressionInOcl">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHcUfgEeGpovDQzEpx9g" general="_Hq4ggEfgEeGpovDQzEpx9g" specific="_HroHcEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHckfgEeGpovDQzEpx9g" name="bodyExpression" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHc0fgEeGpovDQzEpx9g" name="contextVariable" type="_Hre9pEfgEeGpovDQzEpx9g" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HroHdEfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHmEqOEeGiC_zHokq9VA" name="ExpressionInOcl">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHmUqOEeGiC_zHokq9VA" general="_eeB0okqOEeGiC_zHokq9VA" specific="_efOHmEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHmkqOEeGiC_zHokq9VA" name="bodyExpression" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHm0qOEeGiC_zHokq9VA" name="contextVariable" type="_efOHUkqOEeGiC_zHokq9VA" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHnEqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHdUfgEeGpovDQzEpx9g" name="resultVariable" type="_Hre9pEfgEeGpovDQzEpx9g" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HroHdkfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHnUqOEeGiC_zHokq9VA" name="resultVariable" type="_efOHUkqOEeGiC_zHokq9VA" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHnkqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHd0fgEeGpovDQzEpx9g" name="parameterVariable" type="_Hre9pEfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HroHeEfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HroHeUfgEeGpovDQzEpx9g" value="*"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHn0qOEeGiC_zHokq9VA" name="parameterVariable" type="_efOHUkqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHoEqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efOHoUqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CYkfgEeGpovDQzEpx9g" name="messageExpression" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hr7CY0fgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efz9NUqOEeGiC_zHokq9VA" name="messageExpression" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efz9NkqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hq4goUfgEeGpovDQzEpx9g" name="Feature" isAbstract="true">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hq4gokfgEeGpovDQzEpx9g" general="_HqSqo0fgEeGpovDQzEpx9g" specific="_Hq4goUfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HsOkZEfgEeGpovDQzEpx9g" general="_HsXuQUfgEeGpovDQzEpx9g" specific="_Hq4goUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hq4go0fgEeGpovDQzEpx9g" name="isStatic" type="_Hq4gmUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HsEzUkfgEeGpovDQzEpx9g" name="implementationClass" type="_Hq4gm0fgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HsEzU0fgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_eeUvYkqOEeGiC_zHokq9VA" name="Feature" isAbstract="true">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeUvY0qOEeGiC_zHokq9VA" general="_edb-kEqOEeGiC_zHokq9VA" specific="_eeUvYkqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eifdxEqOEeGiC_zHokq9VA" general="_eipOsUqOEeGiC_zHokq9VA" specific="_eeUvYkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeUvZEqOEeGiC_zHokq9VA" name="isStatic" type="_eeLleEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_egG4EEqOEeGiC_zHokq9VA" name="implementationClass" type="_eeLlekqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_egG4EUqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HsEzVEfgEeGpovDQzEpx9g" name="implementation" type="_HsEzVkfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HsEzVUfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_egG4EkqOEeGiC_zHokq9VA" name="implementation" type="_egG4FEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_egG4E0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHfEfgEeGpovDQzEpx9g" name="FeatureCallExp" isAbstract="true">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHfUfgEeGpovDQzEpx9g" general="_Hre9hUfgEeGpovDQzEpx9g" specific="_HroHfEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHfkfgEeGpovDQzEpx9g" name="isPre" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_HroHf0fgEeGpovDQzEpx9g" value="false"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHpEqOEeGiC_zHokq9VA" name="FeatureCallExp" isAbstract="true">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHpUqOEeGiC_zHokq9VA" general="_efEWVUqOEeGiC_zHokq9VA" specific="_efOHpEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHpkqOEeGiC_zHokq9VA" name="isPre" type="_eeLleEqOEeGiC_zHokq9VA">

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_efOHp0qOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9m0fgEeGpovDQzEpx9g" name="IfExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9nEfgEeGpovDQzEpx9g" general="_Hre9kkfgEeGpovDQzEpx9g" specific="_Hre9m0fgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9nUfgEeGpovDQzEpx9g" name="condition" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9nkfgEeGpovDQzEpx9g" name="thenExpression" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9n0fgEeGpovDQzEpx9g" name="elseExpression" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHSUqOEeGiC_zHokq9VA" name="IfExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHSkqOEeGiC_zHokq9VA" general="_efOHQEqOEeGiC_zHokq9VA" specific="_efOHSUqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHS0qOEeGiC_zHokq9VA" name="condition" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHTEqOEeGiC_zHokq9VA" name="thenExpression" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHTUqOEeGiC_zHokq9VA" name="elseExpression" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9wUfgEeGpovDQzEpx9g" name="IntegerLiteralExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9wkfgEeGpovDQzEpx9g" general="_Hre90kfgEeGpovDQzEpx9g" specific="_Hre9wUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9w0fgEeGpovDQzEpx9g" name="integerSymbol" type="_Hq4gl0fgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHb0qOEeGiC_zHokq9VA" name="IntegerLiteralExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHcEqOEeGiC_zHokq9VA" general="_efOHgEqOEeGiC_zHokq9VA" specific="_efOHb0qOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHcUqOEeGiC_zHokq9VA" name="integerSymbol" type="_eeLldkqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHekfgEeGpovDQzEpx9g" name="InvalidLiteralExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHe0fgEeGpovDQzEpx9g" general="_Hre9zkfgEeGpovDQzEpx9g" specific="_HroHekfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHokqOEeGiC_zHokq9VA" name="InvalidLiteralExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHo0qOEeGiC_zHokq9VA" general="_efOHfEqOEeGiC_zHokq9VA" specific="_efOHokqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4dUfgEeGpovDQzEpx9g" name="InvalidType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4dkfgEeGpovDQzEpx9g" general="_HqSqqUfgEeGpovDQzEpx9g" specific="_Hrx4dUfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efqzO0qOEeGiC_zHokq9VA" name="InvalidType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzPEqOEeGiC_zHokq9VA" general="_edb-lkqOEeGiC_zHokq9VA" specific="_efqzO0qOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHoEfgEeGpovDQzEpx9g" name="IterateExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHoUfgEeGpovDQzEpx9g" general="_Hre9tkfgEeGpovDQzEpx9g" specific="_HroHoEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHokfgEeGpovDQzEpx9g" name="result" type="_Hre9pEfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HroHo0fgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efXRUEqOEeGiC_zHokq9VA" name="IterateExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efXRUUqOEeGiC_zHokq9VA" general="_efOHZEqOEeGiC_zHokq9VA" specific="_efXRUEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efXRUkqOEeGiC_zHokq9VA" name="result" type="_efOHUkqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efXRU0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4YEfgEeGpovDQzEpx9g" name="Iteration">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4YUfgEeGpovDQzEpx9g" general="_HqSqpEfgEeGpovDQzEpx9g" specific="_Hrx4YEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hrx4YkfgEeGpovDQzEpx9g" name="ownedIterator" type="_HqSqyUfgEeGpovDQzEpx9g" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hrx4Y0fgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hrx4ZEfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efhCMEqOEeGiC_zHokq9VA" name="Iteration">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efhCMUqOEeGiC_zHokq9VA" general="_edb-kUqOEeGiC_zHokq9VA" specific="_efhCMEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efhCMkqOEeGiC_zHokq9VA" name="ownedIterator" type="_edb-tkqOEeGiC_zHokq9VA" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efhCM0qOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efhCNEqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hrx4ZUfgEeGpovDQzEpx9g" name="ownedAccumulator" type="_HqSqyUfgEeGpovDQzEpx9g" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hrx4ZkfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hrx4Z0fgEeGpovDQzEpx9g" value="*"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efhCNUqOEeGiC_zHokq9VA" name="ownedAccumulator" type="_edb-tkqOEeGiC_zHokq9VA" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efhCNkqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efhCN0qOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHpEfgEeGpovDQzEpx9g" name="IteratorExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHpUfgEeGpovDQzEpx9g" general="_Hre9tkfgEeGpovDQzEpx9g" specific="_HroHpEfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efXRVEqOEeGiC_zHokq9VA" name="IteratorExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efXRVUqOEeGiC_zHokq9VA" general="_efOHZEqOEeGiC_zHokq9VA" specific="_efXRVEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4d0fgEeGpovDQzEpx9g" name="LambdaType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4eEfgEeGpovDQzEpx9g" general="_Hqll1UfgEeGpovDQzEpx9g" specific="_Hrx4d0fgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hrx4eUfgEeGpovDQzEpx9g" name="contextType" type="_HqllpkfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hrx4ekfgEeGpovDQzEpx9g" name="parameterType" type="_HqllpkfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hrx4e0fgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hrx4fEfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efqzPUqOEeGiC_zHokq9VA" name="LambdaType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzPkqOEeGiC_zHokq9VA" general="_edlIxUqOEeGiC_zHokq9VA" specific="_efqzPUqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efqzP0qOEeGiC_zHokq9VA" name="contextType" type="_edlIlkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efqzQEqOEeGiC_zHokq9VA" name="parameterType" type="_edlIlkqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efqzQUqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efqzQkqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hrx4fUfgEeGpovDQzEpx9g" name="resultType" type="_HqllpkfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efqzQ0qOEeGiC_zHokq9VA" name="resultType" type="_edlIlkqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9oEfgEeGpovDQzEpx9g" name="LetExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9oUfgEeGpovDQzEpx9g" general="_Hre9kkfgEeGpovDQzEpx9g" specific="_Hre9oEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9okfgEeGpovDQzEpx9g" name="in" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9o0fgEeGpovDQzEpx9g" name="variable" type="_Hre9pEfgEeGpovDQzEpx9g" aggregation="composite"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHTkqOEeGiC_zHokq9VA" name="LetExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHT0qOEeGiC_zHokq9VA" general="_efOHQEqOEeGiC_zHokq9VA" specific="_efOHTkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHUEqOEeGiC_zHokq9VA" name="in" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHUUqOEeGiC_zHokq9VA" name="variable" type="_efOHUkqOEeGiC_zHokq9VA" aggregation="composite"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4aEfgEeGpovDQzEpx9g" name="Library">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4aUfgEeGpovDQzEpx9g" general="_Hqllx0fgEeGpovDQzEpx9g" specific="_Hrx4aEfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efhCOEqOEeGiC_zHokq9VA" name="Library">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efhCOUqOEeGiC_zHokq9VA" general="_edlIt0qOEeGiC_zHokq9VA" specific="_efhCOEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9zkfgEeGpovDQzEpx9g" name="LiteralExp" isAbstract="true">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9z0fgEeGpovDQzEpx9g" general="_Hre9kkfgEeGpovDQzEpx9g" specific="_Hre9zkfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHfEqOEeGiC_zHokq9VA" name="LiteralExp" isAbstract="true">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHfUqOEeGiC_zHokq9VA" general="_efOHQEqOEeGiC_zHokq9VA" specific="_efOHfEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9tkfgEeGpovDQzEpx9g" name="LoopExp" isAbstract="true">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9t0fgEeGpovDQzEpx9g" general="_Hre9hUfgEeGpovDQzEpx9g" specific="_Hre9tkfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9uEfgEeGpovDQzEpx9g" name="body" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9uUfgEeGpovDQzEpx9g" name="iterator" type="_Hre9pEfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9ukfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hre9u0fgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHZEqOEeGiC_zHokq9VA" name="LoopExp" isAbstract="true">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHZUqOEeGiC_zHokq9VA" general="_efEWVUqOEeGiC_zHokq9VA" specific="_efOHZEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHZkqOEeGiC_zHokq9VA" name="body" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHZ0qOEeGiC_zHokq9VA" name="iterator" type="_efOHUkqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHaEqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efOHaUqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9vEfgEeGpovDQzEpx9g" name="referredIteration" type="_Hrx4YEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9vUfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHakqOEeGiC_zHokq9VA" name="referredIteration" type="_efhCMEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHa0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHj0fgEeGpovDQzEpx9g" name="MessageExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHkEfgEeGpovDQzEpx9g" general="_Hre9kkfgEeGpovDQzEpx9g" specific="_HroHj0fgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHkUfgEeGpovDQzEpx9g" name="target" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHkkfgEeGpovDQzEpx9g" name="argument" type="_Hre9kkfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HroHk0fgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HroHlEfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efXRP0qOEeGiC_zHokq9VA" name="MessageExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efXRQEqOEeGiC_zHokq9VA" general="_efOHQEqOEeGiC_zHokq9VA" specific="_efXRP0qOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efXRQUqOEeGiC_zHokq9VA" name="target" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efXRQkqOEeGiC_zHokq9VA" name="argument" type="_efOHQEqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efXRQ0qOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efXRREqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHlUfgEeGpovDQzEpx9g" name="calledOperation" type="_HqSqoEfgEeGpovDQzEpx9g" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HroHlkfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efXRRUqOEeGiC_zHokq9VA" name="calledOperation" type="_edSNkEqOEeGiC_zHokq9VA" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efXRRkqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHl0fgEeGpovDQzEpx9g" name="sentSignal" type="_HqSqpUfgEeGpovDQzEpx9g" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HroHmEfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efXRR0qOEeGiC_zHokq9VA" name="sentSignal" type="_edb-kkqOEeGiC_zHokq9VA" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efXRSEqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4fkfgEeGpovDQzEpx9g" name="MessageType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4f0fgEeGpovDQzEpx9g" general="_HqllpkfgEeGpovDQzEpx9g" specific="_Hrx4fkfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hrx4gEfgEeGpovDQzEpx9g" name="referredSignal" type="_HqSqqEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hrx4gUfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efqzREqOEeGiC_zHokq9VA" name="MessageType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzRUqOEeGiC_zHokq9VA" general="_edlIlkqOEeGiC_zHokq9VA" specific="_efqzREqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efqzRkqOEeGiC_zHokq9VA" name="referredSignal" type="_edb-lUqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efqzR0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hrx4gkfgEeGpovDQzEpx9g" name="referredOperation" type="_HqSqpEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hrx4g0fgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efqzSEqOEeGiC_zHokq9VA" name="referredOperation" type="_edb-kUqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efqzSUqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hqll2EfgEeGpovDQzEpx9g" name="MultiplicityElement" isAbstract="true">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_Hqll2UfgEeGpovDQzEpx9g" annotatedElement="_Hqll2EfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_edu5gEqOEeGiC_zHokq9VA" name="MultiplicityElement" isAbstract="true">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_edu5gUqOEeGiC_zHokq9VA" annotatedElement="_edu5gEqOEeGiC_zHokq9VA">

         <body>A multiplicity is a definition of an inclusive interval of non-negative integers beginning with a lower bound and ending with a (possibly infinite) upper bound. A multiplicity element embeds this information to specify the allowable cardinalities for an instantiation of this element.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hqll4EfgEeGpovDQzEpx9g" general="_HqlmEEfgEeGpovDQzEpx9g" specific="_Hqll2EfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hqll4UfgEeGpovDQzEpx9g" name="isOrdered" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hqll4kfgEeGpovDQzEpx9g" annotatedElement="_Hqll4UfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_edu5iEqOEeGiC_zHokq9VA" general="_edu5uEqOEeGiC_zHokq9VA" specific="_edu5gEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edu5iUqOEeGiC_zHokq9VA" name="isOrdered" type="_eeLleEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edu5ikqOEeGiC_zHokq9VA" annotatedElement="_edu5iUqOEeGiC_zHokq9VA">

           <body>For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.</body>

         </ownedComment>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hqll40fgEeGpovDQzEpx9g" value="false"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_edu5i0qOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hqll5EfgEeGpovDQzEpx9g" name="isUnique" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hqll5UfgEeGpovDQzEpx9g" annotatedElement="_Hqll5EfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edu5jEqOEeGiC_zHokq9VA" name="isUnique" type="_eeLleEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edu5jUqOEeGiC_zHokq9VA" annotatedElement="_edu5jEqOEeGiC_zHokq9VA">

           <body>For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique.</body>

         </ownedComment>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hqll5kfgEeGpovDQzEpx9g" value="true"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_edu5jkqOEeGiC_zHokq9VA" value="true"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hqll50fgEeGpovDQzEpx9g" name="lower" type="_Hq4gl0fgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hqll6EfgEeGpovDQzEpx9g" annotatedElement="_Hqll50fgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edu5j0qOEeGiC_zHokq9VA" name="lower" type="_eeLldkqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edu5kEqOEeGiC_zHokq9VA" annotatedElement="_edu5j0qOEeGiC_zHokq9VA">

           <body>Specifies the lower bound of the multiplicity interval.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hqll6UfgEeGpovDQzEpx9g"/>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hqll6kfgEeGpovDQzEpx9g" value="1"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edu5kUqOEeGiC_zHokq9VA"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_edu5kkqOEeGiC_zHokq9VA" value="1"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hqll60fgEeGpovDQzEpx9g" name="upper" type="_Hq4gnUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hqll7EfgEeGpovDQzEpx9g" annotatedElement="_Hqll60fgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edu5k0qOEeGiC_zHokq9VA" name="upper" type="_eeLlfEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edu5lEqOEeGiC_zHokq9VA" annotatedElement="_edu5k0qOEeGiC_zHokq9VA">

           <body>Specifies the upper bound of the multiplicity interval.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hqll7UfgEeGpovDQzEpx9g"/>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hqll7kfgEeGpovDQzEpx9g" value="1"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edu5lUqOEeGiC_zHokq9VA"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_edu5lkqOEeGiC_zHokq9VA" value="1"/>

       </ownedAttribute>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_Hqll70fgEeGpovDQzEpx9g" name="lowerBound" class="_Hqll2EfgEeGpovDQzEpx9g" isQuery="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hqll8EfgEeGpovDQzEpx9g" annotatedElement="_Hqll70fgEeGpovDQzEpx9g">

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_edu5l0qOEeGiC_zHokq9VA" name="lowerBound" class="_edu5gEqOEeGiC_zHokq9VA" isQuery="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edu5mEqOEeGiC_zHokq9VA" annotatedElement="_edu5l0qOEeGiC_zHokq9VA">

           <body>The query lowerBound() returns the lower bound of the multiplicity as an integer.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_Hqll80fgEeGpovDQzEpx9g" type="_Hq4gl0fgEeGpovDQzEpx9g" direction="return"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_edu5m0qOEeGiC_zHokq9VA" type="_eeLldkqOEeGiC_zHokq9VA" direction="return"/>

       </ownedOperation>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_Hqll9EfgEeGpovDQzEpx9g" name="upperBound" class="_Hqll2EfgEeGpovDQzEpx9g" isQuery="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hqll9UfgEeGpovDQzEpx9g" annotatedElement="_Hqll9EfgEeGpovDQzEpx9g">

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_edu5nEqOEeGiC_zHokq9VA" name="upperBound" class="_edu5gEqOEeGiC_zHokq9VA" isQuery="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edu5nUqOEeGiC_zHokq9VA" annotatedElement="_edu5nEqOEeGiC_zHokq9VA">

           <body>The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_Hqll-EfgEeGpovDQzEpx9g" type="_Hq4gnUfgEeGpovDQzEpx9g" direction="return"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_edu5oEqOEeGiC_zHokq9VA" type="_eeLlfEqOEeGiC_zHokq9VA" direction="return"/>

       </ownedOperation>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_Hqll-UfgEeGpovDQzEpx9g" name="isMultivalued" class="_Hqll2EfgEeGpovDQzEpx9g" isQuery="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hqll-kfgEeGpovDQzEpx9g" annotatedElement="_Hqll-UfgEeGpovDQzEpx9g">

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_edu5oUqOEeGiC_zHokq9VA" name="isMultivalued" class="_edu5gEqOEeGiC_zHokq9VA" isQuery="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edu5okqOEeGiC_zHokq9VA" annotatedElement="_edu5oUqOEeGiC_zHokq9VA">

           <body>The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_Hqll_0fgEeGpovDQzEpx9g" type="_Hq4gmUfgEeGpovDQzEpx9g" direction="return"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_edu5p0qOEeGiC_zHokq9VA" type="_eeLleEqOEeGiC_zHokq9VA" direction="return"/>

       </ownedOperation>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_HqlmAEfgEeGpovDQzEpx9g" name="includesCardinality" class="_Hqll2EfgEeGpovDQzEpx9g" isQuery="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqlmAUfgEeGpovDQzEpx9g" annotatedElement="_HqlmAEfgEeGpovDQzEpx9g">

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_edu5qEqOEeGiC_zHokq9VA" name="includesCardinality" class="_edu5gEqOEeGiC_zHokq9VA" isQuery="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edu5qUqOEeGiC_zHokq9VA" annotatedElement="_edu5qEqOEeGiC_zHokq9VA">

           <body>The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_HqlmBkfgEeGpovDQzEpx9g" type="_Hq4gmUfgEeGpovDQzEpx9g" direction="return"/>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_HqlmB0fgEeGpovDQzEpx9g" name="C" type="_Hq4gl0fgEeGpovDQzEpx9g"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_edu5rkqOEeGiC_zHokq9VA" type="_eeLleEqOEeGiC_zHokq9VA" direction="return"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_edu5r0qOEeGiC_zHokq9VA" name="C" type="_eeLldkqOEeGiC_zHokq9VA"/>

       </ownedOperation>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_HqlmCEfgEeGpovDQzEpx9g" name="includesMultiplicity" class="_Hqll2EfgEeGpovDQzEpx9g" isQuery="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqlmCUfgEeGpovDQzEpx9g" annotatedElement="_HqlmCEfgEeGpovDQzEpx9g">

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_edu5sEqOEeGiC_zHokq9VA" name="includesMultiplicity" class="_edu5gEqOEeGiC_zHokq9VA" isQuery="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edu5sUqOEeGiC_zHokq9VA" annotatedElement="_edu5sEqOEeGiC_zHokq9VA">

           <body>The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_HqlmDkfgEeGpovDQzEpx9g" type="_Hq4gmUfgEeGpovDQzEpx9g" direction="return"/>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_HqlmD0fgEeGpovDQzEpx9g" name="M" type="_Hqll2EfgEeGpovDQzEpx9g"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_edu5tkqOEeGiC_zHokq9VA" type="_eeLleEqOEeGiC_zHokq9VA" direction="return"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_edu5t0qOEeGiC_zHokq9VA" name="M" type="_edu5gEqOEeGiC_zHokq9VA"/>

       </ownedOperation>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqSqo0fgEeGpovDQzEpx9g" clientDependency="_HsEzYUfgEeGpovDQzEpx9g" name="NamedElement" isAbstract="true">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HqllrEfgEeGpovDQzEpx9g" annotatedElement="_HqSqo0fgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_edb-kEqOEeGiC_zHokq9VA" clientDependency="_egG4H0qOEeGiC_zHokq9VA" name="NamedElement" isAbstract="true">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_edlInEqOEeGiC_zHokq9VA" annotatedElement="_edb-kEqOEeGiC_zHokq9VA">

         <body>A named element represents an element with a name.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqllrUfgEeGpovDQzEpx9g" general="_HqlmEEfgEeGpovDQzEpx9g" specific="_HqSqo0fgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqllrkfgEeGpovDQzEpx9g" name="name" type="_Hq4gm0fgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hqllr0fgEeGpovDQzEpx9g" annotatedElement="_HqllrkfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_edlInUqOEeGiC_zHokq9VA" general="_edu5uEqOEeGiC_zHokq9VA" specific="_edb-kEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edlInkqOEeGiC_zHokq9VA" name="name" type="_eeLlekqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edlIn0qOEeGiC_zHokq9VA" annotatedElement="_edlInkqOEeGiC_zHokq9VA">

           <body>The name of the NamedElement.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqllsEfgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edlIoEqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hq4gjkfgEeGpovDQzEpx9g" name="ownedRule" type="_HqvWpEfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite" association="_Hq4gkUfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hq4gj0fgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hq4gkEfgEeGpovDQzEpx9g" value="*"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeB0sEqOEeGiC_zHokq9VA" name="ownedRule" type="_eeB0cEqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite" association="_eeLlcEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeB0sUqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eeB0skqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hq4gpEfgEeGpovDQzEpx9g" name="isStatic" type="_Hq4gmUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CX0fgEeGpovDQzEpx9g" name="ownedAnnotation" type="_Hr7CUEfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hr7CYEfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hr7CYUfgEeGpovDQzEpx9g" value="*"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeUvZUqOEeGiC_zHokq9VA" name="isStatic" type="_eeLleEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efz9MkqOEeGiC_zHokq9VA" name="ownedAnnotation" type="_efz9I0qOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efz9M0qOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efz9NEqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_HsEzYUfgEeGpovDQzEpx9g" name="" client="_HqSqo0fgEeGpovDQzEpx9g" supplier="_HsEzYEfgEeGpovDQzEpx9g" contract="_HsEzYEfgEeGpovDQzEpx9g" implementingClassifier="_HqSqo0fgEeGpovDQzEpx9g"/>

+      <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_egG4H0qOEeGiC_zHokq9VA" name="" client="_edb-kEqOEeGiC_zHokq9VA" supplier="_egG4HkqOEeGiC_zHokq9VA" contract="_egG4HkqOEeGiC_zHokq9VA" implementingClassifier="_edb-kEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hq4gk0fgEeGpovDQzEpx9g" name="Namespace" isAbstract="true">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hq4glEfgEeGpovDQzEpx9g" general="_HqSqo0fgEeGpovDQzEpx9g" specific="_Hq4gk0fgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_eeLlckqOEeGiC_zHokq9VA" name="Namespace" isAbstract="true">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeLlc0qOEeGiC_zHokq9VA" general="_edb-kEqOEeGiC_zHokq9VA" specific="_eeLlckqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHhEfgEeGpovDQzEpx9g" name="NavigationCallExp" isAbstract="true">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHhUfgEeGpovDQzEpx9g" general="_HroHfEfgEeGpovDQzEpx9g" specific="_HroHhEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHhkfgEeGpovDQzEpx9g" name="qualifier" type="_Hre9kkfgEeGpovDQzEpx9g" isOrdered="true">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HroHh0fgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HroHiEfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efXRNEqOEeGiC_zHokq9VA" name="NavigationCallExp" isAbstract="true">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efXRNUqOEeGiC_zHokq9VA" general="_efOHpEqOEeGiC_zHokq9VA" specific="_efXRNEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efXRNkqOEeGiC_zHokq9VA" name="qualifier" type="_efOHQEqOEeGiC_zHokq9VA" isOrdered="true">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efXRN0qOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efXROEqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHiUfgEeGpovDQzEpx9g" name="navigationSource" type="_HqllkEfgEeGpovDQzEpx9g" isOrdered="true">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HroHikfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efXROUqOEeGiC_zHokq9VA" name="navigationSource" type="_edlIgEqOEeGiC_zHokq9VA" isOrdered="true">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efXROkqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHbkfgEeGpovDQzEpx9g" name="NullLiteralExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHb0fgEeGpovDQzEpx9g" general="_Hre90EfgEeGpovDQzEpx9g" specific="_HroHbkfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHlkqOEeGiC_zHokq9VA" name="NullLiteralExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHl0qOEeGiC_zHokq9VA" general="_efOHfkqOEeGiC_zHokq9VA" specific="_efOHlkqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre90kfgEeGpovDQzEpx9g" name="NumericLiteralExp" isAbstract="true">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre900fgEeGpovDQzEpx9g" general="_Hre90EfgEeGpovDQzEpx9g" specific="_Hre90kfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHgEqOEeGiC_zHokq9VA" name="NumericLiteralExp" isAbstract="true">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHgUqOEeGiC_zHokq9VA" general="_efOHfkqOEeGiC_zHokq9VA" specific="_efOHgEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9kkfgEeGpovDQzEpx9g" name="OclExpression" isAbstract="true">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9k0fgEeGpovDQzEpx9g" general="_HqllsUfgEeGpovDQzEpx9g" specific="_Hre9kkfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHQEqOEeGiC_zHokq9VA" name="OclExpression" isAbstract="true">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHQUqOEeGiC_zHokq9VA" general="_edlIoUqOEeGiC_zHokq9VA" specific="_efOHQEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hq4ggEfgEeGpovDQzEpx9g" name="OpaqueExpression">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_Hq4ggUfgEeGpovDQzEpx9g" annotatedElement="_Hq4ggEfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_eeB0okqOEeGiC_zHokq9VA" name="OpaqueExpression">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eeB0o0qOEeGiC_zHokq9VA" annotatedElement="_eeB0okqOEeGiC_zHokq9VA">

         <body>An opaque expression is an uninterpreted textual statement that denotes a (possibly empty) set of values when evaluated in a context.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hq4ghUfgEeGpovDQzEpx9g" general="_HqvWtUfgEeGpovDQzEpx9g" specific="_Hq4ggEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hq4ghkfgEeGpovDQzEpx9g" name="body" type="_Hq4gm0fgEeGpovDQzEpx9g" isOrdered="true" isUnique="false" aggregation="composite">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hq4gh0fgEeGpovDQzEpx9g" annotatedElement="_Hq4ghkfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeB0p0qOEeGiC_zHokq9VA" general="_eeB0gUqOEeGiC_zHokq9VA" specific="_eeB0okqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeB0qEqOEeGiC_zHokq9VA" name="body" type="_eeLlekqOEeGiC_zHokq9VA" isOrdered="true" isUnique="false" aggregation="composite">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeB0qUqOEeGiC_zHokq9VA" annotatedElement="_eeB0qEqOEeGiC_zHokq9VA">

           <body>The text of the expression, possibly in multiple languages.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hq4giEfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hq4giUfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeB0qkqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eeB0q0qOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hq4gikfgEeGpovDQzEpx9g" name="language" type="_Hq4gm0fgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hq4gi0fgEeGpovDQzEpx9g" annotatedElement="_Hq4gikfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeB0rEqOEeGiC_zHokq9VA" name="language" type="_eeLlekqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeB0rUqOEeGiC_zHokq9VA" annotatedElement="_eeB0rEqOEeGiC_zHokq9VA">

           <body>Specifies the languages in which the expression is stated. The interpretation of the expression body depends on the languages. If the languages are unspecified, they might be implicit from the expression body or the context. Languages are matched to body strings by order.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hq4gjEfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hq4gjUfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeB0rkqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eeB0r0qOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CZEfgEeGpovDQzEpx9g" name="message" type="_Hq4gm0fgEeGpovDQzEpx9g" isOrdered="true" isUnique="false">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hr7CZUfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hr7CZkfgEeGpovDQzEpx9g" value="*"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efz9N0qOEeGiC_zHokq9VA" name="message" type="_eeLlekqOEeGiC_zHokq9VA" isOrdered="true" isUnique="false">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efz9OEqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efz9OUqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CZ0fgEeGpovDQzEpx9g" name="valueExpression" type="_HroHcEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hr7CaEfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efz9OkqOEeGiC_zHokq9VA" name="valueExpression" type="_efOHmEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efz9O0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqSqpEfgEeGpovDQzEpx9g" name="Operation">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HqSqu0fgEeGpovDQzEpx9g" annotatedElement="_HqSqpEfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_edb-kUqOEeGiC_zHokq9VA" name="Operation">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_edb-qEqOEeGiC_zHokq9VA" annotatedElement="_edb-kUqOEeGiC_zHokq9VA">

         <body>An operation is owned by a class and may be invoked in the context of objects that are instances of that class. It is a typed element and a multiplicity element.</body>

       </ownedComment>

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HrLbdEfgEeGpovDQzEpx9g" annotatedElement="_HqSqpEfgEeGpovDQzEpx9g">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eenqUkqOEeGiC_zHokq9VA" annotatedElement="_edb-kUqOEeGiC_zHokq9VA">

         <body>Operation specializes TemplateableElement in order to support specification of template operations and bound operations. Operation specializes ParameterableElement to specify that an operation can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqSqvEfgEeGpovDQzEpx9g" general="_HqllsUfgEeGpovDQzEpx9g" specific="_HqSqpEfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqSqvUfgEeGpovDQzEpx9g" general="_Hqll2EfgEeGpovDQzEpx9g" specific="_HqSqpEfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hq4glUfgEeGpovDQzEpx9g" general="_Hq4gk0fgEeGpovDQzEpx9g" specific="_HqSqpEfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrCRgEfgEeGpovDQzEpx9g" general="_Hq4goUfgEeGpovDQzEpx9g" specific="_HqSqpEfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrLbdUfgEeGpovDQzEpx9g" general="_HrCR2kfgEeGpovDQzEpx9g" specific="_HqSqpEfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrLbdkfgEeGpovDQzEpx9g" general="_HrCRxEfgEeGpovDQzEpx9g" specific="_HqSqpEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqSqvkfgEeGpovDQzEpx9g" name="raisedException" type="_HqllpkfgEeGpovDQzEpx9g" association="_HqlmIEfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqSqv0fgEeGpovDQzEpx9g" annotatedElement="_HqSqvkfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_edb-qUqOEeGiC_zHokq9VA" general="_edlIoUqOEeGiC_zHokq9VA" specific="_edb-kUqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_edb-qkqOEeGiC_zHokq9VA" general="_edu5gEqOEeGiC_zHokq9VA" specific="_edb-kUqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeLldEqOEeGiC_zHokq9VA" general="_eeLlckqOEeGiC_zHokq9VA" specific="_edb-kUqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeUvZkqOEeGiC_zHokq9VA" general="_eeUvYkqOEeGiC_zHokq9VA" specific="_edb-kUqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eenqU0qOEeGiC_zHokq9VA" general="_eeegqUqOEeGiC_zHokq9VA" specific="_edb-kUqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eenqVEqOEeGiC_zHokq9VA" general="_eeegk0qOEeGiC_zHokq9VA" specific="_edb-kUqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edb-q0qOEeGiC_zHokq9VA" name="raisedException" type="_edlIlkqOEeGiC_zHokq9VA" association="_ed4DekqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edb-rEqOEeGiC_zHokq9VA" annotatedElement="_edb-q0qOEeGiC_zHokq9VA">

           <body>The exceptions that are declared as possible during an invocation of the operation.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqSqwEfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HqSqwUfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edb-rUqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_edb-rkqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqSqwkfgEeGpovDQzEpx9g" name="ownedParameter" type="_HqSqyUfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite" association="_HqvWkEfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqSqw0fgEeGpovDQzEpx9g" annotatedElement="_HqSqwkfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edb-r0qOEeGiC_zHokq9VA" name="ownedParameter" type="_edb-tkqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite" association="_ed4DgkqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edb-sEqOEeGiC_zHokq9VA" annotatedElement="_edb-r0qOEeGiC_zHokq9VA">

           <body>The parameters to the operation.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqSqxEfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HqSqxUfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edb-sUqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_edb-skqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqSqxkfgEeGpovDQzEpx9g" name="class" type="_HqSqqUfgEeGpovDQzEpx9g" association="_HqvWkUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqSqx0fgEeGpovDQzEpx9g" annotatedElement="_HqSqxkfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edb-s0qOEeGiC_zHokq9VA" name="class" type="_edb-lkqOEeGiC_zHokq9VA" association="_ed4Dg0qOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edb-tEqOEeGiC_zHokq9VA" annotatedElement="_edb-s0qOEeGiC_zHokq9VA">

           <body>The class that owns the operation.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqSqyEfgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edb-tUqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrLbd0fgEeGpovDQzEpx9g" name="templateParameter" type="_HrLbekfgEeGpovDQzEpx9g" redefinedProperty="_HrCR3UfgEeGpovDQzEpx9g" association="_HrLbv0fgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrLbeEfgEeGpovDQzEpx9g" annotatedElement="_HrLbd0fgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eenqVUqOEeGiC_zHokq9VA" name="templateParameter" type="_eenqWEqOEeGiC_zHokq9VA" redefinedProperty="_eeegrEqOEeGiC_zHokq9VA" association="_eexbc0qOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eenqVkqOEeGiC_zHokq9VA" annotatedElement="_eenqVUqOEeGiC_zHokq9VA">

           <body>The template parameter that exposes this element as a formal parameter.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrLbeUfgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eenqV0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9cUfgEeGpovDQzEpx9g" name="owningType" type="_HqllpkfgEeGpovDQzEpx9g" association="_Hre9f0fgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9ckfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efEWQUqOEeGiC_zHokq9VA" name="owningType" type="_edlIlkqOEeGiC_zHokq9VA" association="_efEWT0qOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efEWQkqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HsOkUEfgEeGpovDQzEpx9g" name="precedence" type="_HsOkVUfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HsOkUUfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eifdsEqOEeGiC_zHokq9VA" name="precedence" type="_eifdtUqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eifdsUqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9xEfgEeGpovDQzEpx9g" name="OperationCallExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9xUfgEeGpovDQzEpx9g" general="_HroHfEfgEeGpovDQzEpx9g" specific="_Hre9xEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9xkfgEeGpovDQzEpx9g" name="argument" type="_Hre9kkfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9x0fgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hre9yEfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHckqOEeGiC_zHokq9VA" name="OperationCallExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHc0qOEeGiC_zHokq9VA" general="_efOHpEqOEeGiC_zHokq9VA" specific="_efOHckqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHdEqOEeGiC_zHokq9VA" name="argument" type="_efOHQEqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHdUqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efOHdkqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9yUfgEeGpovDQzEpx9g" name="referredOperation" type="_HqSqpEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9ykfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHd0qOEeGiC_zHokq9VA" name="referredOperation" type="_edb-kUqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHeEqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HrLbekfgEeGpovDQzEpx9g" name="OperationTemplateParameter">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HrLbe0fgEeGpovDQzEpx9g" annotatedElement="_HrLbekfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_eenqWEqOEeGiC_zHokq9VA" name="OperationTemplateParameter">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eenqWUqOEeGiC_zHokq9VA" annotatedElement="_eenqWEqOEeGiC_zHokq9VA">

         <body>An operation template parameter exposes an operation as a formal parameter for a template.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrLbfEfgEeGpovDQzEpx9g" general="_HrCRkUfgEeGpovDQzEpx9g" specific="_HrLbekfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrLbfUfgEeGpovDQzEpx9g" name="parameteredElement" type="_HqSqpEfgEeGpovDQzEpx9g" redefinedProperty="_HrCRmUfgEeGpovDQzEpx9g" association="_HrLbv0fgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrLbfkfgEeGpovDQzEpx9g" annotatedElement="_HrLbfUfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eenqWkqOEeGiC_zHokq9VA" general="_eeegYEqOEeGiC_zHokq9VA" specific="_eenqWEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eenqW0qOEeGiC_zHokq9VA" name="parameteredElement" type="_edb-kUqOEeGiC_zHokq9VA" redefinedProperty="_eeegaEqOEeGiC_zHokq9VA" association="_eexbc0qOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eenqXEqOEeGiC_zHokq9VA" annotatedElement="_eenqW0qOEeGiC_zHokq9VA">

           <body>The operation for this template parameter.</body>

         </ownedComment>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4hEfgEeGpovDQzEpx9g" name="OrderedSetType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4hUfgEeGpovDQzEpx9g" general="_Hrx4ckfgEeGpovDQzEpx9g" specific="_Hrx4hEfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efqzSkqOEeGiC_zHokq9VA" name="OrderedSetType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzS0qOEeGiC_zHokq9VA" general="_efqzOEqOEeGiC_zHokq9VA" specific="_efqzSkqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hqllx0fgEeGpovDQzEpx9g" name="Package">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HqllyEfgEeGpovDQzEpx9g" annotatedElement="_Hqllx0fgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_edlIt0qOEeGiC_zHokq9VA" name="Package">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_edlIuEqOEeGiC_zHokq9VA" annotatedElement="_edlIt0qOEeGiC_zHokq9VA">

         <body>A package is a container for types and other packages.</body>

       </ownedComment>

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HrLbnEfgEeGpovDQzEpx9g" annotatedElement="_Hqllx0fgEeGpovDQzEpx9g">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eexbUEqOEeGiC_zHokq9VA" annotatedElement="_edlIt0qOEeGiC_zHokq9VA">

         <body>Package specializes TemplateableElement and PackageableElement specializes ParameterableElement to specify that a package can be used as a template and a PackageableElement as a template parameter.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqllyUfgEeGpovDQzEpx9g" general="_HqSqo0fgEeGpovDQzEpx9g" specific="_Hqllx0fgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hq4glkfgEeGpovDQzEpx9g" general="_Hq4gk0fgEeGpovDQzEpx9g" specific="_Hqllx0fgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrLbnUfgEeGpovDQzEpx9g" general="_HrCRxEfgEeGpovDQzEpx9g" specific="_Hqllx0fgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqllykfgEeGpovDQzEpx9g" name="nestedPackage" type="_Hqllx0fgEeGpovDQzEpx9g" aggregation="composite" association="_HqvWm0fgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hqlly0fgEeGpovDQzEpx9g" annotatedElement="_HqllykfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_edlIuUqOEeGiC_zHokq9VA" general="_edb-kEqOEeGiC_zHokq9VA" specific="_edlIt0qOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeLldUqOEeGiC_zHokq9VA" general="_eeLlckqOEeGiC_zHokq9VA" specific="_edlIt0qOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eexbUUqOEeGiC_zHokq9VA" general="_eeegk0qOEeGiC_zHokq9VA" specific="_edlIt0qOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edlIukqOEeGiC_zHokq9VA" name="nestedPackage" type="_edlIt0qOEeGiC_zHokq9VA" aggregation="composite" association="_ed4DjUqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edlIu0qOEeGiC_zHokq9VA" annotatedElement="_edlIukqOEeGiC_zHokq9VA">

           <body>The set of contained packages.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqllzEfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HqllzUfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edlIvEqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_edlIvUqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqllzkfgEeGpovDQzEpx9g" name="nestingPackage" type="_Hqllx0fgEeGpovDQzEpx9g" association="_HqvWm0fgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hqllz0fgEeGpovDQzEpx9g" annotatedElement="_HqllzkfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edlIvkqOEeGiC_zHokq9VA" name="nestingPackage" type="_edlIt0qOEeGiC_zHokq9VA" association="_ed4DjUqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edlIv0qOEeGiC_zHokq9VA" annotatedElement="_edlIvkqOEeGiC_zHokq9VA">

           <body>The containing package.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hqll0EfgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edlIwEqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hqll0UfgEeGpovDQzEpx9g" name="ownedType" type="_HqllpkfgEeGpovDQzEpx9g" aggregation="composite" association="_HqvWnEfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hqll0kfgEeGpovDQzEpx9g" annotatedElement="_Hqll0UfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edlIwUqOEeGiC_zHokq9VA" name="ownedType" type="_edlIlkqOEeGiC_zHokq9VA" aggregation="composite" association="_ed4DjkqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edlIwkqOEeGiC_zHokq9VA" annotatedElement="_edlIwUqOEeGiC_zHokq9VA">

           <body>The set of contained types.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hqll00fgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hqll1EfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edlIw0qOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_edlIxEqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HsEzYkfgEeGpovDQzEpx9g" name="nsPrefix" type="_Hq4gm0fgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HsEzY0fgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_egG4IEqOEeGiC_zHokq9VA" name="nsPrefix" type="_eeLlekqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_egG4IUqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HsEzZEfgEeGpovDQzEpx9g" name="nsURI" type="_Hq4gm0fgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HsEzZUfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_egG4IkqOEeGiC_zHokq9VA" name="nsURI" type="_eeLlekqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_egG4I0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HsOkUkfgEeGpovDQzEpx9g" name="ownedPrecedence" type="_HsOkVUfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HsOkU0fgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HsOkVEfgEeGpovDQzEpx9g" value="*"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eifdskqOEeGiC_zHokq9VA" name="ownedPrecedence" type="_eifdtUqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eifds0qOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eifdtEqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HrLbf0fgEeGpovDQzEpx9g" name="PackageableElement" isAbstract="true">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HrLbgEfgEeGpovDQzEpx9g" annotatedElement="_HrLbf0fgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_eenqXUqOEeGiC_zHokq9VA" name="PackageableElement" isAbstract="true">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eenqXkqOEeGiC_zHokq9VA" annotatedElement="_eenqXUqOEeGiC_zHokq9VA">

         <body>Packageable elements are able to serve as a template parameter.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrLbgUfgEeGpovDQzEpx9g" general="_HrCR2kfgEeGpovDQzEpx9g" specific="_HrLbf0fgEeGpovDQzEpx9g"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eenqX0qOEeGiC_zHokq9VA" general="_eeegqUqOEeGiC_zHokq9VA" specific="_eenqXUqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqSqyUfgEeGpovDQzEpx9g" name="Parameter">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HqSqykfgEeGpovDQzEpx9g" annotatedElement="_HqSqyUfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_edb-tkqOEeGiC_zHokq9VA" name="Parameter">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_edb-t0qOEeGiC_zHokq9VA" annotatedElement="_edb-tkqOEeGiC_zHokq9VA">

         <body>A parameter is a typed element that represents a parameter of an operation.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqSqy0fgEeGpovDQzEpx9g" general="_HqllsUfgEeGpovDQzEpx9g" specific="_HqSqyUfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqSqzEfgEeGpovDQzEpx9g" general="_Hqll2EfgEeGpovDQzEpx9g" specific="_HqSqyUfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4lUfgEeGpovDQzEpx9g" general="_HroHn0fgEeGpovDQzEpx9g" specific="_HqSqyUfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HsXuQEfgEeGpovDQzEpx9g" general="_HsXuQUfgEeGpovDQzEpx9g" specific="_HqSqyUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqSqzUfgEeGpovDQzEpx9g" name="operation" type="_HqSqpEfgEeGpovDQzEpx9g" association="_HqvWkEfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqSqzkfgEeGpovDQzEpx9g" annotatedElement="_HqSqzUfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_edb-uEqOEeGiC_zHokq9VA" general="_edlIoUqOEeGiC_zHokq9VA" specific="_edb-tkqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_edb-uUqOEeGiC_zHokq9VA" general="_edu5gEqOEeGiC_zHokq9VA" specific="_edb-tkqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzW0qOEeGiC_zHokq9VA" general="_efXRT0qOEeGiC_zHokq9VA" specific="_edb-tkqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eipOsEqOEeGiC_zHokq9VA" general="_eipOsUqOEeGiC_zHokq9VA" specific="_edb-tkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edb-ukqOEeGiC_zHokq9VA" name="operation" type="_edb-kUqOEeGiC_zHokq9VA" association="_ed4DgkqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edb-u0qOEeGiC_zHokq9VA" annotatedElement="_edb-ukqOEeGiC_zHokq9VA">

           <body>The operation that owns the parameter.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqSqz0fgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edb-vEqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HrCR2kfgEeGpovDQzEpx9g" name="ParameterableElement" isAbstract="true">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HrCR20fgEeGpovDQzEpx9g" annotatedElement="_HrCR2kfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_eeegqUqOEeGiC_zHokq9VA" name="ParameterableElement" isAbstract="true">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eeegqkqOEeGiC_zHokq9VA" annotatedElement="_eeegqUqOEeGiC_zHokq9VA">

         <body>A parameterable element is an element that can be exposed as a formal template parameter for a template, or specified as an actual parameter in a binding of a template.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrCR3EfgEeGpovDQzEpx9g" general="_HqlmEEfgEeGpovDQzEpx9g" specific="_HrCR2kfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCR3UfgEeGpovDQzEpx9g" name="templateParameter" type="_HrCRkUfgEeGpovDQzEpx9g" association="_HrLbsUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCR3kfgEeGpovDQzEpx9g" annotatedElement="_HrCR3UfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeegq0qOEeGiC_zHokq9VA" general="_edu5uEqOEeGiC_zHokq9VA" specific="_eeegqUqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeegrEqOEeGiC_zHokq9VA" name="templateParameter" type="_eeegYEqOEeGiC_zHokq9VA" association="_eexbZUqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegrUqOEeGiC_zHokq9VA" annotatedElement="_eeegrEqOEeGiC_zHokq9VA">

           <body>The template parameter that exposes this element as a formal parameter.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrCR30fgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeegrkqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCR4EfgEeGpovDQzEpx9g" name="owningTemplateParameter" type="_HrCRkUfgEeGpovDQzEpx9g" subsettedProperty="_HrCR3UfgEeGpovDQzEpx9g" association="_HrLbs0fgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCR4UfgEeGpovDQzEpx9g" annotatedElement="_HrCR4EfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeegr0qOEeGiC_zHokq9VA" name="owningTemplateParameter" type="_eeegYEqOEeGiC_zHokq9VA" subsettedProperty="_eeegrEqOEeGiC_zHokq9VA" association="_eexbZ0qOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegsEqOEeGiC_zHokq9VA" annotatedElement="_eeegr0qOEeGiC_zHokq9VA">

           <body>The formal template parameter that owns this element.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrCR4kfgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeegsUqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_HrCR40fgEeGpovDQzEpx9g" name="isTemplateParameter" class="_HrCR2kfgEeGpovDQzEpx9g" isQuery="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCR5EfgEeGpovDQzEpx9g" annotatedElement="_HrCR40fgEeGpovDQzEpx9g">

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_eeegskqOEeGiC_zHokq9VA" name="isTemplateParameter" class="_eeegqUqOEeGiC_zHokq9VA" isQuery="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegs0qOEeGiC_zHokq9VA" annotatedElement="_eeegskqOEeGiC_zHokq9VA">

           <body>The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_HrCR50fgEeGpovDQzEpx9g" type="_Hq4gmUfgEeGpovDQzEpx9g" direction="return"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_eeegtkqOEeGiC_zHokq9VA" type="_eeLleEqOEeGiC_zHokq9VA" direction="return"/>

       </ownedOperation>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HsOkVUfgEeGpovDQzEpx9g" name="Precedence">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HsOkVkfgEeGpovDQzEpx9g" general="_HqSqo0fgEeGpovDQzEpx9g" specific="_HsOkVUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HsOkV0fgEeGpovDQzEpx9g" name="associativity" type="_HsEzbkfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HsOkWEfgEeGpovDQzEpx9g"/>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_HsOkWUfgEeGpovDQzEpx9g" value="Left"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_eifdtUqOEeGiC_zHokq9VA" name="Precedence">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eifdtkqOEeGiC_zHokq9VA" general="_edb-kEqOEeGiC_zHokq9VA" specific="_eifdtUqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eifdt0qOEeGiC_zHokq9VA" name="associativity" type="_eiVss0qOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eifduEqOEeGiC_zHokq9VA"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_eifduUqOEeGiC_zHokq9VA" value="Left"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HsOkWkfgEeGpovDQzEpx9g" name="order" type="_Hq4gl0fgEeGpovDQzEpx9g" isDerived="true"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eifdukqOEeGiC_zHokq9VA" name="order" type="_eeLldkqOEeGiC_zHokq9VA" isDerived="true"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre90EfgEeGpovDQzEpx9g" name="PrimitiveLiteralExp" isAbstract="true">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre90UfgEeGpovDQzEpx9g" general="_Hre9zkfgEeGpovDQzEpx9g" specific="_Hre90EfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHfkqOEeGiC_zHokq9VA" name="PrimitiveLiteralExp" isAbstract="true">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHf0qOEeGiC_zHokq9VA" general="_efOHfEqOEeGiC_zHokq9VA" specific="_efOHfkqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqllxEfgEeGpovDQzEpx9g" name="PrimitiveType">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HqllxUfgEeGpovDQzEpx9g" annotatedElement="_HqllxEfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_edlItEqOEeGiC_zHokq9VA" name="PrimitiveType">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_edlItUqOEeGiC_zHokq9VA" annotatedElement="_edlItEqOEeGiC_zHokq9VA">

         <body>A primitive type is a data type implemented by the underlying infrastructure and made available for modeling.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqllxkfgEeGpovDQzEpx9g" general="_Hqll1UfgEeGpovDQzEpx9g" specific="_HqllxEfgEeGpovDQzEpx9g"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_edlItkqOEeGiC_zHokq9VA" general="_edlIxUqOEeGiC_zHokq9VA" specific="_edlItEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqllkEfgEeGpovDQzEpx9g" name="Property">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HqllkUfgEeGpovDQzEpx9g" annotatedElement="_HqllkEfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_edlIgEqOEeGiC_zHokq9VA" name="Property">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_edlIgUqOEeGiC_zHokq9VA" annotatedElement="_edlIgEqOEeGiC_zHokq9VA">

         <body>A property is a typed element that represents an attribute of a class.</body>

       </ownedComment>

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HrLbcEfgEeGpovDQzEpx9g" annotatedElement="_HqllkEfgEeGpovDQzEpx9g">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eeegt0qOEeGiC_zHokq9VA" annotatedElement="_edlIgEqOEeGiC_zHokq9VA">

         <body>Property specializes ParameterableElement to specify that a property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqllkkfgEeGpovDQzEpx9g" general="_HqllsUfgEeGpovDQzEpx9g" specific="_HqllkEfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hqllk0fgEeGpovDQzEpx9g" general="_Hqll2EfgEeGpovDQzEpx9g" specific="_HqllkEfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrCRgUfgEeGpovDQzEpx9g" general="_Hq4goUfgEeGpovDQzEpx9g" specific="_HqllkEfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrLbcUfgEeGpovDQzEpx9g" general="_HrCR2kfgEeGpovDQzEpx9g" specific="_HqllkEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqlllEfgEeGpovDQzEpx9g" name="isReadOnly" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqlllUfgEeGpovDQzEpx9g" annotatedElement="_HqlllEfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_edlIgkqOEeGiC_zHokq9VA" general="_edlIoUqOEeGiC_zHokq9VA" specific="_edlIgEqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_edlIg0qOEeGiC_zHokq9VA" general="_edu5gEqOEeGiC_zHokq9VA" specific="_edlIgEqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeUvZ0qOEeGiC_zHokq9VA" general="_eeUvYkqOEeGiC_zHokq9VA" specific="_edlIgEqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeeguEqOEeGiC_zHokq9VA" general="_eeegqUqOEeGiC_zHokq9VA" specific="_edlIgEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edlIhEqOEeGiC_zHokq9VA" name="isReadOnly" type="_eeLleEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edlIhUqOEeGiC_zHokq9VA" annotatedElement="_edlIhEqOEeGiC_zHokq9VA">

           <body>If isReadOnly is true, the attribute may not be written to after initialization.</body>

         </ownedComment>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_HqlllkfgEeGpovDQzEpx9g" value="false"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_edlIhkqOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hqlll0fgEeGpovDQzEpx9g" name="default" type="_Hq4gm0fgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqllmEfgEeGpovDQzEpx9g" annotatedElement="_Hqlll0fgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edlIh0qOEeGiC_zHokq9VA" name="default" type="_eeLlekqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edlIiEqOEeGiC_zHokq9VA" annotatedElement="_edlIh0qOEeGiC_zHokq9VA">

           <body>A string that is evaluated to give a default value for the attribute when an object of the owning class is instantiated.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqllmUfgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edlIiUqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqllmkfgEeGpovDQzEpx9g" name="isComposite" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_Hqllm0fgEeGpovDQzEpx9g" annotatedElement="_HqllmkfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edlIikqOEeGiC_zHokq9VA" name="isComposite" type="_eeLleEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edlIi0qOEeGiC_zHokq9VA" annotatedElement="_edlIikqOEeGiC_zHokq9VA">

           <body>If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute.</body>

         </ownedComment>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_HqllnEfgEeGpovDQzEpx9g" value="false"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_edlIjEqOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqllnUfgEeGpovDQzEpx9g" name="isDerived" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqllnkfgEeGpovDQzEpx9g" annotatedElement="_HqllnUfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edlIjUqOEeGiC_zHokq9VA" name="isDerived" type="_eeLleEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edlIjkqOEeGiC_zHokq9VA" annotatedElement="_edlIjUqOEeGiC_zHokq9VA">

           <body>If isDerived is true, the value of the attribute is derived from information elsewhere.</body>

         </ownedComment>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hqlln0fgEeGpovDQzEpx9g" value="false"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_edlIj0qOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqlloEfgEeGpovDQzEpx9g" name="class" type="_HqSqqUfgEeGpovDQzEpx9g" association="_HqlmJEfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqlloUfgEeGpovDQzEpx9g" annotatedElement="_HqlloEfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edlIkEqOEeGiC_zHokq9VA" name="class" type="_edb-lkqOEeGiC_zHokq9VA" association="_ed4DfkqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edlIkUqOEeGiC_zHokq9VA" annotatedElement="_edlIkEqOEeGiC_zHokq9VA">

           <body>The class that owns the property, and of which the property is an attribute.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqllokfgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edlIkkqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hqllo0fgEeGpovDQzEpx9g" name="opposite" type="_HqllkEfgEeGpovDQzEpx9g" association="_HqlmJUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqllpEfgEeGpovDQzEpx9g" annotatedElement="_Hqllo0fgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edlIk0qOEeGiC_zHokq9VA" name="opposite" type="_edlIgEqOEeGiC_zHokq9VA" association="_ed4Df0qOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edlIlEqOEeGiC_zHokq9VA" annotatedElement="_edlIk0qOEeGiC_zHokq9VA">

           <body>Two attributes attr1 and attr2 of two objects o1 and o2 (which may be the same object) may be paired with each other so that o1.attr1 refers to o2 if and only if o2.attr2 refers to o1. In such a case attr1 is the opposite of attr2 and attr2 is the opposite of attr1.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqllpUfgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edlIlUqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrVMdUfgEeGpovDQzEpx9g" name="association" type="_HrVMcEfgEeGpovDQzEpx9g" association="_HrVMekfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrVMdkfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ee7MVUqOEeGiC_zHokq9VA" name="association" type="_ee7MUEqOEeGiC_zHokq9VA" association="_ee7MWkqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ee7MVkqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrVMd0fgEeGpovDQzEpx9g" name="implicit" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrVMeEfgEeGpovDQzEpx9g"/>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_HrVMeUfgEeGpovDQzEpx9g" value="false"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ee7MV0qOEeGiC_zHokq9VA" name="implicit" type="_eeLleEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ee7MWEqOEeGiC_zHokq9VA"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_ee7MWUqOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9c0fgEeGpovDQzEpx9g" name="owningType" type="_HqllpkfgEeGpovDQzEpx9g" association="_Hre9fkfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9dEfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efEWQ0qOEeGiC_zHokq9VA" name="owningType" type="_edlIlkqOEeGiC_zHokq9VA" association="_efEWTkqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efEWREqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CdkfgEeGpovDQzEpx9g" name="isID" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hr7Cd0fgEeGpovDQzEpx9g" value="false"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ef9uKkqOEeGiC_zHokq9VA" name="isID" type="_eeLleEqOEeGiC_zHokq9VA">

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_ef9uK0qOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CeEfgEeGpovDQzEpx9g" name="keys" type="_HqllkEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hr7CeUfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hr7CekfgEeGpovDQzEpx9g" value="*"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ef9uLEqOEeGiC_zHokq9VA" name="keys" type="_edlIgEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ef9uLUqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ef9uLkqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7Ce0fgEeGpovDQzEpx9g" name="isResolveProxies" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hr7CfEfgEeGpovDQzEpx9g" value="true"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ef9uL0qOEeGiC_zHokq9VA" name="isResolveProxies" type="_eeLleEqOEeGiC_zHokq9VA">

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_ef9uMEqOEeGiC_zHokq9VA" value="true"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CfUfgEeGpovDQzEpx9g" name="isTransient" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hr7CfkfgEeGpovDQzEpx9g" value="false"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ef9uMUqOEeGiC_zHokq9VA" name="isTransient" type="_eeLleEqOEeGiC_zHokq9VA">

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_ef9uMkqOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7Cf0fgEeGpovDQzEpx9g" name="isUnsettable" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hr7CgEfgEeGpovDQzEpx9g" value="false"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ef9uM0qOEeGiC_zHokq9VA" name="isUnsettable" type="_eeLleEqOEeGiC_zHokq9VA">

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_ef9uNEqOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CgUfgEeGpovDQzEpx9g" name="isVolatile" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hr7CgkfgEeGpovDQzEpx9g" value="false"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ef9uNUqOEeGiC_zHokq9VA" name="isVolatile" type="_eeLleEqOEeGiC_zHokq9VA">

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_ef9uNkqOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9qkfgEeGpovDQzEpx9g" name="PropertyCallExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9q0fgEeGpovDQzEpx9g" general="_HroHhEfgEeGpovDQzEpx9g" specific="_Hre9qkfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9rEfgEeGpovDQzEpx9g" name="referredProperty" type="_HqllkEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9rUfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHWEqOEeGiC_zHokq9VA" name="PropertyCallExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHWUqOEeGiC_zHokq9VA" general="_efXRNEqOEeGiC_zHokq9VA" specific="_efOHWEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHWkqOEeGiC_zHokq9VA" name="referredProperty" type="_edlIgEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHW0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9y0fgEeGpovDQzEpx9g" name="RealLiteralExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9zEfgEeGpovDQzEpx9g" general="_Hre90kfgEeGpovDQzEpx9g" specific="_Hre9y0fgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9zUfgEeGpovDQzEpx9g" name="realSymbol" type="_Hrx4akfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHeUqOEeGiC_zHokq9VA" name="RealLiteralExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHekqOEeGiC_zHokq9VA" general="_efOHgEqOEeGiC_zHokq9VA" specific="_efOHeUqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHe0qOEeGiC_zHokq9VA" name="realSymbol" type="_efqzMEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4hkfgEeGpovDQzEpx9g" name="SelfType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4h0fgEeGpovDQzEpx9g" general="_HqSqqUfgEeGpovDQzEpx9g" specific="_Hrx4hkfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efqzTEqOEeGiC_zHokq9VA" name="SelfType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzTUqOEeGiC_zHokq9VA" general="_edb-lkqOEeGiC_zHokq9VA" specific="_efqzTEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqSqpUfgEeGpovDQzEpx9g" name="SendSignalAction">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqSqpkfgEeGpovDQzEpx9g" general="_HqSqo0fgEeGpovDQzEpx9g" specific="_HqSqpUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqSqp0fgEeGpovDQzEpx9g" name="signal" type="_HqSqqEfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_edb-kkqOEeGiC_zHokq9VA" name="SendSignalAction">

+      <generalization xmi:type="uml:Generalization" xmi:id="_edb-k0qOEeGiC_zHokq9VA" general="_edb-kEqOEeGiC_zHokq9VA" specific="_edb-kkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edb-lEqOEeGiC_zHokq9VA" name="signal" type="_edb-lUqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4iEfgEeGpovDQzEpx9g" name="SequenceType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4iUfgEeGpovDQzEpx9g" general="_Hrx4ckfgEeGpovDQzEpx9g" specific="_Hrx4iEfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efqzTkqOEeGiC_zHokq9VA" name="SequenceType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzT0qOEeGiC_zHokq9VA" general="_efqzOEqOEeGiC_zHokq9VA" specific="_efqzTkqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4ikfgEeGpovDQzEpx9g" name="SetType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4i0fgEeGpovDQzEpx9g" general="_Hrx4ckfgEeGpovDQzEpx9g" specific="_Hrx4ikfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efqzUEqOEeGiC_zHokq9VA" name="SetType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzUUqOEeGiC_zHokq9VA" general="_efqzOEqOEeGiC_zHokq9VA" specific="_efqzUEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqSqqEfgEeGpovDQzEpx9g" name="Signal">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4jEfgEeGpovDQzEpx9g" general="_HqSqo0fgEeGpovDQzEpx9g" specific="_HqSqqEfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_edb-lUqOEeGiC_zHokq9VA" name="Signal">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzUkqOEeGiC_zHokq9VA" general="_edb-kEqOEeGiC_zHokq9VA" specific="_edb-lUqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hq4gn0fgEeGpovDQzEpx9g" name="State">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hq4goEfgEeGpovDQzEpx9g" general="_HqSqo0fgEeGpovDQzEpx9g" specific="_Hq4gn0fgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_eeUvYEqOEeGiC_zHokq9VA" name="State">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeUvYUqOEeGiC_zHokq9VA" general="_edb-kEqOEeGiC_zHokq9VA" specific="_eeUvYEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHm0fgEeGpovDQzEpx9g" name="StateExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHnEfgEeGpovDQzEpx9g" general="_Hre9kkfgEeGpovDQzEpx9g" specific="_HroHm0fgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHnUfgEeGpovDQzEpx9g" name="referredState" type="_Hq4gn0fgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HroHnkfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efXRS0qOEeGiC_zHokq9VA" name="StateExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efXRTEqOEeGiC_zHokq9VA" general="_efOHQEqOEeGiC_zHokq9VA" specific="_efXRS0qOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efXRTUqOEeGiC_zHokq9VA" name="referredState" type="_eeUvYEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efXRTkqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9vkfgEeGpovDQzEpx9g" name="StringLiteralExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9v0fgEeGpovDQzEpx9g" general="_Hre90EfgEeGpovDQzEpx9g" specific="_Hre9vkfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9wEfgEeGpovDQzEpx9g" name="stringSymbol" type="_Hq4gm0fgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHbEqOEeGiC_zHokq9VA" name="StringLiteralExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHbUqOEeGiC_zHokq9VA" general="_efOHfkqOEeGiC_zHokq9VA" specific="_efOHbEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHbkqOEeGiC_zHokq9VA" name="stringSymbol" type="_eeLlekqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HrCRpEfgEeGpovDQzEpx9g" name="TemplateBinding">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRpUfgEeGpovDQzEpx9g" annotatedElement="_HrCRpEfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_eeegc0qOEeGiC_zHokq9VA" name="TemplateBinding">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eeegdEqOEeGiC_zHokq9VA" annotatedElement="_eeegc0qOEeGiC_zHokq9VA">

         <body>A template binding represents a relationship between a templateable element and a template. A template binding specifies the substitutions of actual parameters for the formal parameters of the template.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrCRrEfgEeGpovDQzEpx9g" general="_HqlmEEfgEeGpovDQzEpx9g" specific="_HrCRpEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRrUfgEeGpovDQzEpx9g" name="boundElement" type="_HrCRxEfgEeGpovDQzEpx9g" association="_HrLbo0fgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRrkfgEeGpovDQzEpx9g" annotatedElement="_HrCRrUfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeege0qOEeGiC_zHokq9VA" general="_edu5uEqOEeGiC_zHokq9VA" specific="_eeegc0qOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeegfEqOEeGiC_zHokq9VA" name="boundElement" type="_eeegk0qOEeGiC_zHokq9VA" association="_eexbV0qOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegfUqOEeGiC_zHokq9VA" annotatedElement="_eeegfEqOEeGiC_zHokq9VA">

           <body>The element that is bound by this binding.</body>

         </ownedComment>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRr0fgEeGpovDQzEpx9g" name="signature" type="_HrCRgkfgEeGpovDQzEpx9g" association="_HrLbqEfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRsEfgEeGpovDQzEpx9g" annotatedElement="_HrCRr0fgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeegfkqOEeGiC_zHokq9VA" name="signature" type="_eeUvaEqOEeGiC_zHokq9VA" association="_eexbXEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegf0qOEeGiC_zHokq9VA" annotatedElement="_eeegfkqOEeGiC_zHokq9VA">

           <body>The template signature for the template that is the target of the binding.</body>

         </ownedComment>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRsUfgEeGpovDQzEpx9g" name="parameterSubstitution" type="_HrCRtUfgEeGpovDQzEpx9g" aggregation="composite" association="_HrLbrEfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRskfgEeGpovDQzEpx9g" annotatedElement="_HrCRsUfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeeggEqOEeGiC_zHokq9VA" name="parameterSubstitution" type="_eeeghEqOEeGiC_zHokq9VA" aggregation="composite" association="_eexbYEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeeggUqOEeGiC_zHokq9VA" annotatedElement="_eeeggEqOEeGiC_zHokq9VA">

           <body>The parameter substitutions owned by this template binding.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrCRs0fgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HrCRtEfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeeggkqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eeegg0qOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HrCRkUfgEeGpovDQzEpx9g" name="TemplateParameter">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRkkfgEeGpovDQzEpx9g" annotatedElement="_HrCRkUfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_eeegYEqOEeGiC_zHokq9VA" name="TemplateParameter">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eeegYUqOEeGiC_zHokq9VA" annotatedElement="_eeegYEqOEeGiC_zHokq9VA">

         <body>A template parameter exposes a parameterable element as a formal template parameter of a template.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrCRlkfgEeGpovDQzEpx9g" general="_HqlmEEfgEeGpovDQzEpx9g" specific="_HrCRkUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRl0fgEeGpovDQzEpx9g" name="signature" type="_HrCRgkfgEeGpovDQzEpx9g" association="_HrLbokfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRmEfgEeGpovDQzEpx9g" annotatedElement="_HrCRl0fgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeegZUqOEeGiC_zHokq9VA" general="_edu5uEqOEeGiC_zHokq9VA" specific="_eeegYEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeegZkqOEeGiC_zHokq9VA" name="signature" type="_eeUvaEqOEeGiC_zHokq9VA" association="_eexbVkqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegZ0qOEeGiC_zHokq9VA" annotatedElement="_eeegZkqOEeGiC_zHokq9VA">

           <body>The template signature that owns this template parameter.</body>

         </ownedComment>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRmUfgEeGpovDQzEpx9g" name="parameteredElement" type="_HrCR2kfgEeGpovDQzEpx9g" association="_HrLbsUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRmkfgEeGpovDQzEpx9g" annotatedElement="_HrCRmUfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeegaEqOEeGiC_zHokq9VA" name="parameteredElement" type="_eeegqUqOEeGiC_zHokq9VA" association="_eexbZUqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegaUqOEeGiC_zHokq9VA" annotatedElement="_eeegaEqOEeGiC_zHokq9VA">

           <body>The element exposed by this template parameter.</body>

         </ownedComment>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRm0fgEeGpovDQzEpx9g" name="ownedParameteredElement" type="_HrCR2kfgEeGpovDQzEpx9g" aggregation="composite" subsettedProperty="_HrCRmUfgEeGpovDQzEpx9g" association="_HrLbs0fgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRnEfgEeGpovDQzEpx9g" annotatedElement="_HrCRm0fgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeegakqOEeGiC_zHokq9VA" name="ownedParameteredElement" type="_eeegqUqOEeGiC_zHokq9VA" aggregation="composite" subsettedProperty="_eeegaEqOEeGiC_zHokq9VA" association="_eexbZ0qOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeega0qOEeGiC_zHokq9VA" annotatedElement="_eeegakqOEeGiC_zHokq9VA">

           <body>The element that is owned by this template parameter.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrCRnUfgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeegbEqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRnkfgEeGpovDQzEpx9g" name="default" type="_HrCR2kfgEeGpovDQzEpx9g" association="_HrLbtEfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRn0fgEeGpovDQzEpx9g" annotatedElement="_HrCRnkfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeegbUqOEeGiC_zHokq9VA" name="default" type="_eeegqUqOEeGiC_zHokq9VA" association="_eexbaEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegbkqOEeGiC_zHokq9VA" annotatedElement="_eeegbUqOEeGiC_zHokq9VA">

           <body>The element that is the default for this formal template parameter.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrCRoEfgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeegb0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRoUfgEeGpovDQzEpx9g" name="ownedDefault" type="_HrCR2kfgEeGpovDQzEpx9g" aggregation="composite" subsettedProperty="_HrCRnkfgEeGpovDQzEpx9g" association="_HrLbuEfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRokfgEeGpovDQzEpx9g" annotatedElement="_HrCRoUfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeegcEqOEeGiC_zHokq9VA" name="ownedDefault" type="_eeegqUqOEeGiC_zHokq9VA" aggregation="composite" subsettedProperty="_eeegbUqOEeGiC_zHokq9VA" association="_eexbbEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegcUqOEeGiC_zHokq9VA" annotatedElement="_eeegcEqOEeGiC_zHokq9VA">

           <body>The element that is owned by this template parameter for the purpose of providing a default.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrCRo0fgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeegckqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HrCRtUfgEeGpovDQzEpx9g" name="TemplateParameterSubstitution">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRtkfgEeGpovDQzEpx9g" annotatedElement="_HrCRtUfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_eeeghEqOEeGiC_zHokq9VA" name="TemplateParameterSubstitution">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eeeghUqOEeGiC_zHokq9VA" annotatedElement="_eeeghEqOEeGiC_zHokq9VA">

         <body>A template parameter substitution relates the actual parameter to a formal template parameter as part of a template binding.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrCRukfgEeGpovDQzEpx9g" general="_HqlmEEfgEeGpovDQzEpx9g" specific="_HrCRtUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRu0fgEeGpovDQzEpx9g" name="formal" type="_HrCRkUfgEeGpovDQzEpx9g" association="_HrLbpEfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRvEfgEeGpovDQzEpx9g" annotatedElement="_HrCRu0fgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeegiUqOEeGiC_zHokq9VA" general="_edu5uEqOEeGiC_zHokq9VA" specific="_eeeghEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeegikqOEeGiC_zHokq9VA" name="formal" type="_eeegYEqOEeGiC_zHokq9VA" association="_eexbWEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegi0qOEeGiC_zHokq9VA" annotatedElement="_eeegikqOEeGiC_zHokq9VA">

           <body>The formal template parameter that is associated with this substitution.</body>

         </ownedComment>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRvUfgEeGpovDQzEpx9g" name="templateBinding" type="_HrCRpEfgEeGpovDQzEpx9g" association="_HrLbrEfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRvkfgEeGpovDQzEpx9g" annotatedElement="_HrCRvUfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeegjEqOEeGiC_zHokq9VA" name="templateBinding" type="_eeegc0qOEeGiC_zHokq9VA" association="_eexbYEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegjUqOEeGiC_zHokq9VA" annotatedElement="_eeegjEqOEeGiC_zHokq9VA">

           <body>The optional bindings from this element to templates.</body>

         </ownedComment>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRv0fgEeGpovDQzEpx9g" name="actual" type="_HrCR2kfgEeGpovDQzEpx9g" association="_HrLbrUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRwEfgEeGpovDQzEpx9g" annotatedElement="_HrCRv0fgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeegjkqOEeGiC_zHokq9VA" name="actual" type="_eeegqUqOEeGiC_zHokq9VA" association="_eexbYUqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegj0qOEeGiC_zHokq9VA" annotatedElement="_eeegjkqOEeGiC_zHokq9VA">

           <body>The element that is the actual parameter for this substitution.</body>

         </ownedComment>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRwUfgEeGpovDQzEpx9g" name="ownedActual" type="_HrCR2kfgEeGpovDQzEpx9g" aggregation="composite" subsettedProperty="_HrCRv0fgEeGpovDQzEpx9g" association="_HrLbu0fgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRwkfgEeGpovDQzEpx9g" annotatedElement="_HrCRwUfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeegkEqOEeGiC_zHokq9VA" name="ownedActual" type="_eeegqUqOEeGiC_zHokq9VA" aggregation="composite" subsettedProperty="_eeegjkqOEeGiC_zHokq9VA" association="_eexbb0qOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegkUqOEeGiC_zHokq9VA" annotatedElement="_eeegkEqOEeGiC_zHokq9VA">

           <body>The actual parameter that is owned by this substitution.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrCRw0fgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeegkkqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4jUfgEeGpovDQzEpx9g" name="TemplateParameterType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4jkfgEeGpovDQzEpx9g" general="_HqllpkfgEeGpovDQzEpx9g" specific="_Hrx4jUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hrx4j0fgEeGpovDQzEpx9g" name="specification" type="_Hq4gm0fgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hrx4kEfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efqzU0qOEeGiC_zHokq9VA" name="TemplateParameterType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzVEqOEeGiC_zHokq9VA" general="_edlIlkqOEeGiC_zHokq9VA" specific="_efqzU0qOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efqzVUqOEeGiC_zHokq9VA" name="specification" type="_eeLlekqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efqzVkqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HrCRgkfgEeGpovDQzEpx9g" name="TemplateSignature">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRg0fgEeGpovDQzEpx9g" annotatedElement="_HrCRgkfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_eeUvaEqOEeGiC_zHokq9VA" name="TemplateSignature">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eeUvaUqOEeGiC_zHokq9VA" annotatedElement="_eeUvaEqOEeGiC_zHokq9VA">

         <body>A template signature bundles the set of formal template parameters for a templated element.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrCRh0fgEeGpovDQzEpx9g" general="_HqlmEEfgEeGpovDQzEpx9g" specific="_HrCRgkfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRiEfgEeGpovDQzEpx9g" name="parameter" type="_HrCRkUfgEeGpovDQzEpx9g" isOrdered="true" association="_HrLbnkfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRiUfgEeGpovDQzEpx9g" annotatedElement="_HrCRiEfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeUvbUqOEeGiC_zHokq9VA" general="_edu5uEqOEeGiC_zHokq9VA" specific="_eeUvaEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeUvbkqOEeGiC_zHokq9VA" name="parameter" type="_eeegYEqOEeGiC_zHokq9VA" isOrdered="true" association="_eexbUkqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeUvb0qOEeGiC_zHokq9VA" annotatedElement="_eeUvbkqOEeGiC_zHokq9VA">

           <body>The ordered set of all formal template parameters for this template signature.</body>

         </ownedComment>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HrCRikfgEeGpovDQzEpx9g" value="*"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eeUvcEqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRi0fgEeGpovDQzEpx9g" name="ownedParameter" type="_HrCRkUfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite" subsettedProperty="_HrCRiEfgEeGpovDQzEpx9g" association="_HrLbokfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRjEfgEeGpovDQzEpx9g" annotatedElement="_HrCRi0fgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeUvcUqOEeGiC_zHokq9VA" name="ownedParameter" type="_eeegYEqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite" subsettedProperty="_eeUvbkqOEeGiC_zHokq9VA" association="_eexbVkqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeUvckqOEeGiC_zHokq9VA" annotatedElement="_eeUvcUqOEeGiC_zHokq9VA">

           <body>The formal template parameters that are owned by this template signature.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrCRjUfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HrCRjkfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeUvc0qOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eeUvdEqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRj0fgEeGpovDQzEpx9g" name="template" type="_HrCRxEfgEeGpovDQzEpx9g" association="_HrLbskfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRkEfgEeGpovDQzEpx9g" annotatedElement="_HrCRj0fgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeUvdUqOEeGiC_zHokq9VA" name="template" type="_eeegk0qOEeGiC_zHokq9VA" association="_eexbZkqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeUvdkqOEeGiC_zHokq9VA" annotatedElement="_eeUvdUqOEeGiC_zHokq9VA">

           <body>The element that owns this template signature.</body>

         </ownedComment>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HrCRxEfgEeGpovDQzEpx9g" name="TemplateableElement" isAbstract="true">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRxUfgEeGpovDQzEpx9g" annotatedElement="_HrCRxEfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_eeegk0qOEeGiC_zHokq9VA" name="TemplateableElement" isAbstract="true">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eeeglEqOEeGiC_zHokq9VA" annotatedElement="_eeegk0qOEeGiC_zHokq9VA">

         <body>A templateable element is an element that can optionally be defined as a template and bound to other templates.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrCRxkfgEeGpovDQzEpx9g" general="_HqlmEEfgEeGpovDQzEpx9g" specific="_HrCRxEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRx0fgEeGpovDQzEpx9g" name="templateBinding" type="_HrCRpEfgEeGpovDQzEpx9g" aggregation="composite" association="_HrLbo0fgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRyEfgEeGpovDQzEpx9g" annotatedElement="_HrCRx0fgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeeglUqOEeGiC_zHokq9VA" general="_edu5uEqOEeGiC_zHokq9VA" specific="_eeegk0qOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeeglkqOEeGiC_zHokq9VA" name="templateBinding" type="_eeegc0qOEeGiC_zHokq9VA" aggregation="composite" association="_eexbV0qOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegl0qOEeGiC_zHokq9VA" annotatedElement="_eeeglkqOEeGiC_zHokq9VA">

           <body>The optional bindings from this element to templates.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrCRyUfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HrCRykfgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeegmEqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eeegmUqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrCRy0fgEeGpovDQzEpx9g" name="ownedTemplateSignature" type="_HrCRgkfgEeGpovDQzEpx9g" aggregation="composite" association="_HrLbskfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRzEfgEeGpovDQzEpx9g" annotatedElement="_HrCRy0fgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eeegmkqOEeGiC_zHokq9VA" name="ownedTemplateSignature" type="_eeUvaEqOEeGiC_zHokq9VA" aggregation="composite" association="_eexbZkqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegm0qOEeGiC_zHokq9VA" annotatedElement="_eeegmkqOEeGiC_zHokq9VA">

           <body>The optional template signature specifying the formal template parameters.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrCRzUfgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeegnEqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7CaUfgEeGpovDQzEpx9g" name="unspecializedElement" type="_HrCRxEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hr7CakfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efz9PEqOEeGiC_zHokq9VA" name="unspecializedElement" type="_eeegk0qOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efz9PUqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_HrCRzkfgEeGpovDQzEpx9g" name="parameterableElements" class="_HrCRxEfgEeGpovDQzEpx9g" isQuery="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCRz0fgEeGpovDQzEpx9g" annotatedElement="_HrCRzkfgEeGpovDQzEpx9g">

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_eeegnUqOEeGiC_zHokq9VA" name="parameterableElements" class="_eeegk0qOEeGiC_zHokq9VA" isQuery="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegnkqOEeGiC_zHokq9VA" annotatedElement="_eeegnUqOEeGiC_zHokq9VA">

           <body>The query parameterableElements() returns the set of elements that may be used as the parametered elements for a template parameter of this templateable element. By default, this set includes all the owned elements. Subclasses may override this operation if they choose to restrict the set of parameterable elements.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_HrCR0kfgEeGpovDQzEpx9g" type="_HrCR2kfgEeGpovDQzEpx9g" direction="return">

-          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrCR00fgEeGpovDQzEpx9g"/>

-          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HrCR1EfgEeGpovDQzEpx9g" value="*"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_eeegoUqOEeGiC_zHokq9VA" type="_eeegqUqOEeGiC_zHokq9VA" direction="return">

+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eeegokqOEeGiC_zHokq9VA"/>

+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eeego0qOEeGiC_zHokq9VA" value="*"/>

         </ownedParameter>

       </ownedOperation>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_HrCR1UfgEeGpovDQzEpx9g" name="isTemplate" class="_HrCRxEfgEeGpovDQzEpx9g" isQuery="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrCR1kfgEeGpovDQzEpx9g" annotatedElement="_HrCR1UfgEeGpovDQzEpx9g">

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_eeegpEqOEeGiC_zHokq9VA" name="isTemplate" class="_eeegk0qOEeGiC_zHokq9VA" isQuery="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeegpUqOEeGiC_zHokq9VA" annotatedElement="_eeegpEqOEeGiC_zHokq9VA">

           <body>The query isTemplate() returns whether this templateable element is actually a template.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_HrCR2UfgEeGpovDQzEpx9g" type="_Hq4gmUfgEeGpovDQzEpx9g" direction="return"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_eeegqEqOEeGiC_zHokq9VA" type="_eeLleEqOEeGiC_zHokq9VA" direction="return"/>

       </ownedOperation>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHaUfgEeGpovDQzEpx9g" name="TupleLiteralExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHakfgEeGpovDQzEpx9g" general="_Hre9zkfgEeGpovDQzEpx9g" specific="_HroHaUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHa0fgEeGpovDQzEpx9g" name="part" type="_HroHgEfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HroHbEfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HroHbUfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHkUqOEeGiC_zHokq9VA" name="TupleLiteralExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHkkqOEeGiC_zHokq9VA" general="_efOHfEqOEeGiC_zHokq9VA" specific="_efOHkUqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHk0qOEeGiC_zHokq9VA" name="part" type="_efXRMEqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHlEqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efOHlUqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHgEfgEeGpovDQzEpx9g" name="TupleLiteralPart">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHgUfgEeGpovDQzEpx9g" general="_HqllsUfgEeGpovDQzEpx9g" specific="_HroHgEfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4lkfgEeGpovDQzEpx9g" general="_HroHn0fgEeGpovDQzEpx9g" specific="_HroHgEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HroHgkfgEeGpovDQzEpx9g" name="initExpression" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HroHg0fgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efXRMEqOEeGiC_zHokq9VA" name="TupleLiteralPart">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efXRMUqOEeGiC_zHokq9VA" general="_edlIoUqOEeGiC_zHokq9VA" specific="_efXRMEqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzXEqOEeGiC_zHokq9VA" general="_efXRT0qOEeGiC_zHokq9VA" specific="_efXRMEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efXRMkqOEeGiC_zHokq9VA" name="initExpression" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efXRM0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4kUfgEeGpovDQzEpx9g" name="TupleType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4kkfgEeGpovDQzEpx9g" general="_Hqll1UfgEeGpovDQzEpx9g" specific="_Hrx4kUfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efqzV0qOEeGiC_zHokq9VA" name="TupleType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzWEqOEeGiC_zHokq9VA" general="_edlIxUqOEeGiC_zHokq9VA" specific="_efqzV0qOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqllpkfgEeGpovDQzEpx9g" name="Type">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_Hqllp0fgEeGpovDQzEpx9g" annotatedElement="_HqllpkfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_edlIlkqOEeGiC_zHokq9VA" name="Type">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_edlIl0qOEeGiC_zHokq9VA" annotatedElement="_edlIlkqOEeGiC_zHokq9VA">

         <body>A type is a named element that is used as the type for a typed element. A type can be contained in a package.</body>

       </ownedComment>

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HrLbgkfgEeGpovDQzEpx9g" annotatedElement="_HqllpkfgEeGpovDQzEpx9g">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eenqYEqOEeGiC_zHokq9VA" annotatedElement="_edlIlkqOEeGiC_zHokq9VA">

         <body>Type is defined to be a kind of templateable element so that a type can be parameterized. It is also defined to be a kind of parameterable element so that a type can be a formal template parameter.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqllqEfgEeGpovDQzEpx9g" general="_HqSqo0fgEeGpovDQzEpx9g" specific="_HqllpkfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrLbg0fgEeGpovDQzEpx9g" general="_HrCRxEfgEeGpovDQzEpx9g" specific="_HqllpkfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrLbhEfgEeGpovDQzEpx9g" general="_HrCR2kfgEeGpovDQzEpx9g" specific="_HqllpkfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqllqUfgEeGpovDQzEpx9g" name="package" type="_Hqllx0fgEeGpovDQzEpx9g" association="_HqvWnEfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqllqkfgEeGpovDQzEpx9g" annotatedElement="_HqllqUfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_edlImEqOEeGiC_zHokq9VA" general="_edb-kEqOEeGiC_zHokq9VA" specific="_edlIlkqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eenqYUqOEeGiC_zHokq9VA" general="_eeegk0qOEeGiC_zHokq9VA" specific="_edlIlkqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eenqYkqOEeGiC_zHokq9VA" general="_eeegqUqOEeGiC_zHokq9VA" specific="_edlIlkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edlImUqOEeGiC_zHokq9VA" name="package" type="_edlIt0qOEeGiC_zHokq9VA" association="_ed4DjkqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edlImkqOEeGiC_zHokq9VA" annotatedElement="_edlImUqOEeGiC_zHokq9VA">

           <body>Specifies the owning package of this classifier, if any.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hqllq0fgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edlIm0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrLbhUfgEeGpovDQzEpx9g" name="templateParameter" type="_HrLbjUfgEeGpovDQzEpx9g" redefinedProperty="_HrCR3UfgEeGpovDQzEpx9g" association="_HrLbvkfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrLbhkfgEeGpovDQzEpx9g" annotatedElement="_HrLbhUfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eenqY0qOEeGiC_zHokq9VA" name="templateParameter" type="_eenqa0qOEeGiC_zHokq9VA" redefinedProperty="_eeegrEqOEeGiC_zHokq9VA" association="_eexbckqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eenqZEqOEeGiC_zHokq9VA" annotatedElement="_eenqY0qOEeGiC_zHokq9VA">

           <body>The template parameter that exposes this element as a formal parameter.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrLbh0fgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eenqZUqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9dUfgEeGpovDQzEpx9g" name="ownedAttribute" type="_HqllkEfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite" association="_Hre9fkfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9dkfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hre9d0fgEeGpovDQzEpx9g" value="*"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efEWRUqOEeGiC_zHokq9VA" name="ownedAttribute" type="_edlIgEqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite" association="_efEWTkqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efEWRkqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efEWR0qOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9eEfgEeGpovDQzEpx9g" name="ownedOperation" type="_HqSqpEfgEeGpovDQzEpx9g" isOrdered="true" aggregation="composite" association="_Hre9f0fgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9eUfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hre9ekfgEeGpovDQzEpx9g" value="*"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efEWSEqOEeGiC_zHokq9VA" name="ownedOperation" type="_edb-kUqOEeGiC_zHokq9VA" isOrdered="true" aggregation="composite" association="_efEWT0qOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efEWSUqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efEWSkqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9e0fgEeGpovDQzEpx9g" name="superClass" type="_HqllpkfgEeGpovDQzEpx9g" isOrdered="true">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9fEfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Hre9fUfgEeGpovDQzEpx9g" value="*"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efEWS0qOEeGiC_zHokq9VA" name="superClass" type="_edlIlkqOEeGiC_zHokq9VA" isOrdered="true">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efEWTEqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efEWTUqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr7Cg0fgEeGpovDQzEpx9g" name="instanceClassName" type="_Hq4gm0fgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hr7ChEfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ef9uN0qOEeGiC_zHokq9VA" name="instanceClassName" type="_eeLlekqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ef9uOEqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_HrLbiEfgEeGpovDQzEpx9g" name="isTemplate" class="_HqllpkfgEeGpovDQzEpx9g" isQuery="true" redefinedOperation="_HrCR1UfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrLbiUfgEeGpovDQzEpx9g" annotatedElement="_HrLbiEfgEeGpovDQzEpx9g">

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_eenqZkqOEeGiC_zHokq9VA" name="isTemplate" class="_edlIlkqOEeGiC_zHokq9VA" isQuery="true" redefinedOperation="_eeegpEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eenqZ0qOEeGiC_zHokq9VA" annotatedElement="_eenqZkqOEeGiC_zHokq9VA">

           <body>The query isTemplate() returns whether this templateable element is actually a template.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_HrLbjEfgEeGpovDQzEpx9g" type="_Hq4gmUfgEeGpovDQzEpx9g" direction="return"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_eenqakqOEeGiC_zHokq9VA" type="_eeLleEqOEeGiC_zHokq9VA" direction="return"/>

       </ownedOperation>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9skfgEeGpovDQzEpx9g" name="TypeExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9s0fgEeGpovDQzEpx9g" general="_Hre9kkfgEeGpovDQzEpx9g" specific="_Hre9skfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9tEfgEeGpovDQzEpx9g" name="referredType" type="_HqllpkfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9tUfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHYEqOEeGiC_zHokq9VA" name="TypeExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHYUqOEeGiC_zHokq9VA" general="_efOHQEqOEeGiC_zHokq9VA" specific="_efOHYEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHYkqOEeGiC_zHokq9VA" name="referredType" type="_edlIlkqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHY0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HrLbjUfgEeGpovDQzEpx9g" name="TypeTemplateParameter">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HrLbjkfgEeGpovDQzEpx9g" annotatedElement="_HrLbjUfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_eenqa0qOEeGiC_zHokq9VA" name="TypeTemplateParameter">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eenqbEqOEeGiC_zHokq9VA" annotatedElement="_eenqa0qOEeGiC_zHokq9VA">

         <body>A type template parameter exposes a type as a formal template parameter.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrLbkkfgEeGpovDQzEpx9g" general="_HrCRkUfgEeGpovDQzEpx9g" specific="_HrLbjUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrLbk0fgEeGpovDQzEpx9g" name="allowSubstitutable" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrLblEfgEeGpovDQzEpx9g" annotatedElement="_HrLbk0fgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eenqcEqOEeGiC_zHokq9VA" general="_eeegYEqOEeGiC_zHokq9VA" specific="_eenqa0qOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eenqcUqOEeGiC_zHokq9VA" name="allowSubstitutable" type="_eeLleEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eenqckqOEeGiC_zHokq9VA" annotatedElement="_eenqcUqOEeGiC_zHokq9VA">

           <body>Constrains the required relationship between an actual parameter and the parameteredElement for this formal parameter.</body>

         </ownedComment>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_HrLblUfgEeGpovDQzEpx9g" value="true"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_eenqc0qOEeGiC_zHokq9VA" value="true"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrLblkfgEeGpovDQzEpx9g" name="parameteredElement" type="_HqllpkfgEeGpovDQzEpx9g" redefinedProperty="_HrCRmUfgEeGpovDQzEpx9g" association="_HrLbvkfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrLbl0fgEeGpovDQzEpx9g" annotatedElement="_HrLblkfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eenqdEqOEeGiC_zHokq9VA" name="parameteredElement" type="_edlIlkqOEeGiC_zHokq9VA" redefinedProperty="_eeegaEqOEeGiC_zHokq9VA" association="_eexbckqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eenqdUqOEeGiC_zHokq9VA" annotatedElement="_eenqdEqOEeGiC_zHokq9VA">

           <body>The parameterable classifier for this template parameter.</body>

         </ownedComment>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HrLbmEfgEeGpovDQzEpx9g" name="constrainingType" type="_HqllpkfgEeGpovDQzEpx9g" association="_HrLbwEfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HrLbmUfgEeGpovDQzEpx9g" annotatedElement="_HrLbmEfgEeGpovDQzEpx9g">

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_eenqdkqOEeGiC_zHokq9VA" name="constrainingType" type="_edlIlkqOEeGiC_zHokq9VA" association="_eexbdEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eenqd0qOEeGiC_zHokq9VA" annotatedElement="_eenqdkqOEeGiC_zHokq9VA">

           <body>The classifiers that constrain the argument that can be used for the parameter. If the allowSubstitutable attribute is true, then any classifier that is compatible with this constraining classifier can be substituted; otherwise, it must be either this classifier or one of its subclasses. If this property is empty, there are no constraints on the classifier that can be used as an argument.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrLbmkfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HrLbm0fgEeGpovDQzEpx9g" value="*"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eenqeEqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eenqeUqOEeGiC_zHokq9VA" value="*"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqllsUfgEeGpovDQzEpx9g" name="TypedElement" isAbstract="true">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HqllskfgEeGpovDQzEpx9g" annotatedElement="_HqllsUfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_edlIoUqOEeGiC_zHokq9VA" name="TypedElement" isAbstract="true">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_edlIokqOEeGiC_zHokq9VA" annotatedElement="_edlIoUqOEeGiC_zHokq9VA">

         <body>A typed element is a kind of named element that represents an element with a type.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hqlls0fgEeGpovDQzEpx9g" general="_HqSqo0fgEeGpovDQzEpx9g" specific="_HqllsUfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HqlltEfgEeGpovDQzEpx9g" name="type" type="_HqllpkfgEeGpovDQzEpx9g" association="_HqvWlkfgEeGpovDQzEpx9g">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqlltUfgEeGpovDQzEpx9g" annotatedElement="_HqlltEfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_edlIo0qOEeGiC_zHokq9VA" general="_edb-kEqOEeGiC_zHokq9VA" specific="_edlIoUqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_edlIpEqOEeGiC_zHokq9VA" name="type" type="_edlIlkqOEeGiC_zHokq9VA" association="_ed4DiEqOEeGiC_zHokq9VA">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_edlIpUqOEeGiC_zHokq9VA" annotatedElement="_edlIpEqOEeGiC_zHokq9VA">

           <body>The type of the TypedElement.</body>

         </ownedComment>

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqlltkfgEeGpovDQzEpx9g"/>

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_edlIpkqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HsXuQUfgEeGpovDQzEpx9g" name="TypedMultiplicityElement" isAbstract="true">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HsXuQkfgEeGpovDQzEpx9g" general="_HqllsUfgEeGpovDQzEpx9g" specific="_HsXuQUfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HsXuQ0fgEeGpovDQzEpx9g" general="_Hqll2EfgEeGpovDQzEpx9g" specific="_HsXuQUfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_eipOsUqOEeGiC_zHokq9VA" name="TypedMultiplicityElement" isAbstract="true">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eipOskqOEeGiC_zHokq9VA" general="_edlIoUqOEeGiC_zHokq9VA" specific="_eipOsUqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eipOs0qOEeGiC_zHokq9VA" general="_edu5gEqOEeGiC_zHokq9VA" specific="_eipOsUqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9lEfgEeGpovDQzEpx9g" name="UnlimitedNaturalLiteralExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9lUfgEeGpovDQzEpx9g" general="_Hre90kfgEeGpovDQzEpx9g" specific="_Hre9lEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9lkfgEeGpovDQzEpx9g" name="unlimitedNaturalSymbol" type="_Hq4gnUfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHQkqOEeGiC_zHokq9VA" name="UnlimitedNaturalLiteralExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHQ0qOEeGiC_zHokq9VA" general="_efOHgEqOEeGiC_zHokq9VA" specific="_efOHQkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHREqOEeGiC_zHokq9VA" name="unlimitedNaturalSymbol" type="_eeLlfEqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HsEzZ0fgEeGpovDQzEpx9g" name="UnspecifiedType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HsEzaEfgEeGpovDQzEpx9g" general="_HqSqqUfgEeGpovDQzEpx9g" specific="_HsEzZ0fgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HsEzaUfgEeGpovDQzEpx9g" name="lowerBound" type="_HqllpkfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_HsEzakfgEeGpovDQzEpx9g" name="upperBound" type="_HqllpkfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_egQpEEqOEeGiC_zHokq9VA" name="UnspecifiedType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_egQpEUqOEeGiC_zHokq9VA" general="_edb-lkqOEeGiC_zHokq9VA" specific="_egQpEEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_egQpEkqOEeGiC_zHokq9VA" name="lowerBound" type="_edlIlkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_egQpE0qOEeGiC_zHokq9VA" name="upperBound" type="_edlIlkqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHmUfgEeGpovDQzEpx9g" name="UnspecifiedValueExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_HroHmkfgEeGpovDQzEpx9g" general="_Hre9kkfgEeGpovDQzEpx9g" specific="_HroHmUfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efXRSUqOEeGiC_zHokq9VA" name="UnspecifiedValueExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efXRSkqOEeGiC_zHokq9VA" general="_efOHQEqOEeGiC_zHokq9VA" specific="_efXRSUqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HqvWtUfgEeGpovDQzEpx9g" name="ValueSpecification" isAbstract="true">

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HqvWtkfgEeGpovDQzEpx9g" annotatedElement="_HqvWtUfgEeGpovDQzEpx9g">

+    <packagedElement xmi:type="uml:Class" xmi:id="_eeB0gUqOEeGiC_zHokq9VA" name="ValueSpecification" isAbstract="true">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eeB0gkqOEeGiC_zHokq9VA" annotatedElement="_eeB0gUqOEeGiC_zHokq9VA">

         <body>A value specification is the specification of a (possibly empty) set of instances, including both objects and data values.</body>

       </ownedComment>

-      <ownedComment xmi:type="uml:Comment" xmi:id="_HrLbckfgEeGpovDQzEpx9g" annotatedElement="_HqvWtUfgEeGpovDQzEpx9g">

+      <ownedComment xmi:type="uml:Comment" xmi:id="_eenqUEqOEeGiC_zHokq9VA" annotatedElement="_eeB0gUqOEeGiC_zHokq9VA">

         <body>ValueSpecification specializes ParameterableElement to specify that a value specification can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template.</body>

       </ownedComment>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HqvWt0fgEeGpovDQzEpx9g" general="_HqllsUfgEeGpovDQzEpx9g" specific="_HqvWtUfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_HrLbc0fgEeGpovDQzEpx9g" general="_HrCR2kfgEeGpovDQzEpx9g" specific="_HqvWtUfgEeGpovDQzEpx9g"/>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_HqvWuEfgEeGpovDQzEpx9g" name="isComputable" class="_HqvWtUfgEeGpovDQzEpx9g" isQuery="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqvWuUfgEeGpovDQzEpx9g" annotatedElement="_HqvWuEfgEeGpovDQzEpx9g">

+      <generalization xmi:type="uml:Generalization" xmi:id="_eeB0g0qOEeGiC_zHokq9VA" general="_edlIoUqOEeGiC_zHokq9VA" specific="_eeB0gUqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_eenqUUqOEeGiC_zHokq9VA" general="_eeegqUqOEeGiC_zHokq9VA" specific="_eeB0gUqOEeGiC_zHokq9VA"/>

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_eeB0hEqOEeGiC_zHokq9VA" name="isComputable" class="_eeB0gUqOEeGiC_zHokq9VA" isQuery="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeB0hUqOEeGiC_zHokq9VA" annotatedElement="_eeB0hEqOEeGiC_zHokq9VA">

           <body>The query isComputable() determines whether a value specification can be computed in a model. This operation cannot be fully defined in OCL. A conforming implementation is expected to deliver true for this operation for all value specifications that it can compute, and to compute all of those for which the operation is true. A conforming implementation is expected to be able to compute the value of all literals.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_HqvWvEfgEeGpovDQzEpx9g" type="_Hq4gmUfgEeGpovDQzEpx9g" direction="return"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_eeB0iEqOEeGiC_zHokq9VA" type="_eeLleEqOEeGiC_zHokq9VA" direction="return"/>

       </ownedOperation>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_HqvWvUfgEeGpovDQzEpx9g" name="integerValue" class="_HqvWtUfgEeGpovDQzEpx9g" isQuery="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqvWvkfgEeGpovDQzEpx9g" annotatedElement="_HqvWvUfgEeGpovDQzEpx9g">

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_eeB0iUqOEeGiC_zHokq9VA" name="integerValue" class="_eeB0gUqOEeGiC_zHokq9VA" isQuery="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeB0ikqOEeGiC_zHokq9VA" annotatedElement="_eeB0iUqOEeGiC_zHokq9VA">

           <body>The query integerValue() gives a single Integer value when one can be computed.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_HqvWwUfgEeGpovDQzEpx9g" type="_Hq4gl0fgEeGpovDQzEpx9g" direction="return"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_eeB0jUqOEeGiC_zHokq9VA" type="_eeLldkqOEeGiC_zHokq9VA" direction="return"/>

       </ownedOperation>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_HqvWwkfgEeGpovDQzEpx9g" name="booleanValue" class="_HqvWtUfgEeGpovDQzEpx9g" isQuery="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqvWw0fgEeGpovDQzEpx9g" annotatedElement="_HqvWwkfgEeGpovDQzEpx9g">

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_eeB0jkqOEeGiC_zHokq9VA" name="booleanValue" class="_eeB0gUqOEeGiC_zHokq9VA" isQuery="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeB0j0qOEeGiC_zHokq9VA" annotatedElement="_eeB0jkqOEeGiC_zHokq9VA">

           <body>The query booleanValue() gives a single Boolean value when one can be computed.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_HqvWxkfgEeGpovDQzEpx9g" type="_Hq4gmUfgEeGpovDQzEpx9g" direction="return"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_eeB0kkqOEeGiC_zHokq9VA" type="_eeLleEqOEeGiC_zHokq9VA" direction="return"/>

       </ownedOperation>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_HqvWx0fgEeGpovDQzEpx9g" name="stringValue" class="_HqvWtUfgEeGpovDQzEpx9g" isQuery="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqvWyEfgEeGpovDQzEpx9g" annotatedElement="_HqvWx0fgEeGpovDQzEpx9g">

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_eeB0k0qOEeGiC_zHokq9VA" name="stringValue" class="_eeB0gUqOEeGiC_zHokq9VA" isQuery="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeB0lEqOEeGiC_zHokq9VA" annotatedElement="_eeB0k0qOEeGiC_zHokq9VA">

           <body>The query stringValue() gives a single String value when one can be computed.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_HqvWy0fgEeGpovDQzEpx9g" type="_Hq4gm0fgEeGpovDQzEpx9g" direction="return"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_eeB0l0qOEeGiC_zHokq9VA" type="_eeLlekqOEeGiC_zHokq9VA" direction="return"/>

       </ownedOperation>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_HqvWzEfgEeGpovDQzEpx9g" name="unlimitedValue" class="_HqvWtUfgEeGpovDQzEpx9g" isQuery="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqvWzUfgEeGpovDQzEpx9g" annotatedElement="_HqvWzEfgEeGpovDQzEpx9g">

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_eeB0mEqOEeGiC_zHokq9VA" name="unlimitedValue" class="_eeB0gUqOEeGiC_zHokq9VA" isQuery="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeB0mUqOEeGiC_zHokq9VA" annotatedElement="_eeB0mEqOEeGiC_zHokq9VA">

           <body>The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_HqvW0EfgEeGpovDQzEpx9g" type="_Hq4gnUfgEeGpovDQzEpx9g" direction="return"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_eeB0nEqOEeGiC_zHokq9VA" type="_eeLlfEqOEeGiC_zHokq9VA" direction="return"/>

       </ownedOperation>

-      <ownedOperation xmi:type="uml:Operation" xmi:id="_HqvW0UfgEeGpovDQzEpx9g" name="isNull" class="_HqvWtUfgEeGpovDQzEpx9g" isQuery="true">

-        <ownedComment xmi:type="uml:Comment" xmi:id="_HqvW0kfgEeGpovDQzEpx9g" annotatedElement="_HqvW0UfgEeGpovDQzEpx9g">

+      <ownedOperation xmi:type="uml:Operation" xmi:id="_eeB0nUqOEeGiC_zHokq9VA" name="isNull" class="_eeB0gUqOEeGiC_zHokq9VA" isQuery="true">

+        <ownedComment xmi:type="uml:Comment" xmi:id="_eeB0nkqOEeGiC_zHokq9VA" annotatedElement="_eeB0nUqOEeGiC_zHokq9VA">

           <body>The query isNull() returns true when it can be computed that the value is null.</body>

         </ownedComment>

-        <ownedParameter xmi:type="uml:Parameter" xmi:id="_HqvW1UfgEeGpovDQzEpx9g" type="_Hq4gmUfgEeGpovDQzEpx9g" direction="return"/>

+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_eeB0oUqOEeGiC_zHokq9VA" type="_eeLleEqOEeGiC_zHokq9VA" direction="return"/>

       </ownedOperation>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9pEfgEeGpovDQzEpx9g" name="Variable">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9pUfgEeGpovDQzEpx9g" general="_HqllsUfgEeGpovDQzEpx9g" specific="_Hre9pEfgEeGpovDQzEpx9g"/>

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4mEfgEeGpovDQzEpx9g" general="_HroHn0fgEeGpovDQzEpx9g" specific="_Hre9pEfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9pkfgEeGpovDQzEpx9g" name="initExpression" type="_Hre9kkfgEeGpovDQzEpx9g" aggregation="composite">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9p0fgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHUkqOEeGiC_zHokq9VA" name="Variable">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHU0qOEeGiC_zHokq9VA" general="_edlIoUqOEeGiC_zHokq9VA" specific="_efOHUkqOEeGiC_zHokq9VA"/>

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzXkqOEeGiC_zHokq9VA" general="_efXRT0qOEeGiC_zHokq9VA" specific="_efOHUkqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHVEqOEeGiC_zHokq9VA" name="initExpression" type="_efOHQEqOEeGiC_zHokq9VA" aggregation="composite">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHVUqOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9qEfgEeGpovDQzEpx9g" name="representedParameter" type="_HqSqyUfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9qUfgEeGpovDQzEpx9g"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHVkqOEeGiC_zHokq9VA" name="representedParameter" type="_edb-tkqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHV0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hrx4mUfgEeGpovDQzEpx9g" name="implicit" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hrx4mkfgEeGpovDQzEpx9g"/>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hrx4m0fgEeGpovDQzEpx9g" value="false"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efqzX0qOEeGiC_zHokq9VA" name="implicit" type="_eeLleEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efqzYEqOEeGiC_zHokq9VA"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_efqzYUqOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_HroHn0fgEeGpovDQzEpx9g" name="VariableDeclaration" isAbstract="true">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4l0fgEeGpovDQzEpx9g" general="_HqllsUfgEeGpovDQzEpx9g" specific="_HroHn0fgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efXRT0qOEeGiC_zHokq9VA" name="VariableDeclaration" isAbstract="true">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzXUqOEeGiC_zHokq9VA" general="_edlIoUqOEeGiC_zHokq9VA" specific="_efXRT0qOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hre9rkfgEeGpovDQzEpx9g" name="VariableExp">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hre9r0fgEeGpovDQzEpx9g" general="_Hre9kkfgEeGpovDQzEpx9g" specific="_Hre9rkfgEeGpovDQzEpx9g"/>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hre9sEfgEeGpovDQzEpx9g" name="referredVariable" type="_HroHn0fgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hre9sUfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efOHXEqOEeGiC_zHokq9VA" name="VariableExp">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efOHXUqOEeGiC_zHokq9VA" general="_efOHQEqOEeGiC_zHokq9VA" specific="_efOHXEqOEeGiC_zHokq9VA"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efOHXkqOEeGiC_zHokq9VA" name="referredVariable" type="_efXRT0qOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efOHX0qOEeGiC_zHokq9VA"/>

       </ownedAttribute>

-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Hrx4nEfgEeGpovDQzEpx9g" name="implicit" type="_Hq4gmUfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hrx4nUfgEeGpovDQzEpx9g"/>

-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Hrx4nkfgEeGpovDQzEpx9g" value="false"/>

+      <ownedAttribute xmi:type="uml:Property" xmi:id="_efz9IEqOEeGiC_zHokq9VA" name="implicit" type="_eeLleEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efz9IUqOEeGiC_zHokq9VA"/>

+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_efz9IkqOEeGiC_zHokq9VA" value="false"/>

       </ownedAttribute>

     </packagedElement>

-    <packagedElement xmi:type="uml:Class" xmi:id="_Hrx4k0fgEeGpovDQzEpx9g" name="VoidType">

-      <generalization xmi:type="uml:Generalization" xmi:id="_Hrx4lEfgEeGpovDQzEpx9g" general="_HqSqqUfgEeGpovDQzEpx9g" specific="_Hrx4k0fgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Class" xmi:id="_efqzWUqOEeGiC_zHokq9VA" name="VoidType">

+      <generalization xmi:type="uml:Generalization" xmi:id="_efqzWkqOEeGiC_zHokq9VA" general="_edb-lkqOEeGiC_zHokq9VA" specific="_efqzWUqOEeGiC_zHokq9VA"/>

     </packagedElement>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbrUfgEeGpovDQzEpx9g" name="A_actual_templateParameterSubstitution" memberEnd="_HrCRv0fgEeGpovDQzEpx9g _HrLbrkfgEeGpovDQzEpx9g">

-      <ownedEnd xmi:type="uml:Property" xmi:id="_HrLbrkfgEeGpovDQzEpx9g" name="templateParameterSubstitution" type="_HrCRtUfgEeGpovDQzEpx9g" owningAssociation="_HrLbrUfgEeGpovDQzEpx9g" association="_HrLbrUfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrLbr0fgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HrLbsEfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbYUqOEeGiC_zHokq9VA" name="A_actual_templateParameterSubstitution" memberEnd="_eeegjkqOEeGiC_zHokq9VA _eexbYkqOEeGiC_zHokq9VA">

+      <ownedEnd xmi:type="uml:Property" xmi:id="_eexbYkqOEeGiC_zHokq9VA" name="templateParameterSubstitution" type="_eeeghEqOEeGiC_zHokq9VA" owningAssociation="_eexbYUqOEeGiC_zHokq9VA" association="_eexbYUqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eexbY0qOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eexbZEqOEeGiC_zHokq9VA" value="*"/>

       </ownedEnd>

     </packagedElement>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HqvWnUfgEeGpovDQzEpx9g" name="A_annotatedElement_comment" memberEnd="_HqlmHEfgEeGpovDQzEpx9g _HqvWnkfgEeGpovDQzEpx9g">

-      <ownedEnd xmi:type="uml:Property" xmi:id="_HqvWnkfgEeGpovDQzEpx9g" name="comment" type="_HqlmFkfgEeGpovDQzEpx9g" owningAssociation="_HqvWnUfgEeGpovDQzEpx9g" association="_HqvWnUfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqvWn0fgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HqvWoEfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_ed4Dj0qOEeGiC_zHokq9VA" name="A_annotatedElement_comment" memberEnd="_ed4DdkqOEeGiC_zHokq9VA _ed4DkEqOEeGiC_zHokq9VA">

+      <ownedEnd xmi:type="uml:Property" xmi:id="_ed4DkEqOEeGiC_zHokq9VA" name="comment" type="_ed4DcEqOEeGiC_zHokq9VA" owningAssociation="_ed4Dj0qOEeGiC_zHokq9VA" association="_ed4Dj0qOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ed4DkUqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ed4DkkqOEeGiC_zHokq9VA" value="*"/>

       </ownedEnd>

     </packagedElement>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrVMekfgEeGpovDQzEpx9g" name="A_associationClass_property" memberEnd="_HrVMckfgEeGpovDQzEpx9g _HrVMdUfgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbwEfgEeGpovDQzEpx9g" name="A_constrainingType_typeTemplateParameter" memberEnd="_HrLbmEfgEeGpovDQzEpx9g _HrLbwUfgEeGpovDQzEpx9g">

-      <ownedEnd xmi:type="uml:Property" xmi:id="_HrLbwUfgEeGpovDQzEpx9g" name="typeTemplateParameter" type="_HrLbjUfgEeGpovDQzEpx9g" owningAssociation="_HrLbwEfgEeGpovDQzEpx9g" association="_HrLbwEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrLbwkfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HrLbw0fgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_ee7MWkqOEeGiC_zHokq9VA" name="A_associationClass_property" memberEnd="_ee7MUkqOEeGiC_zHokq9VA _ee7MVUqOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbdEqOEeGiC_zHokq9VA" name="A_constrainingType_typeTemplateParameter" memberEnd="_eenqdkqOEeGiC_zHokq9VA _eexbdUqOEeGiC_zHokq9VA">

+      <ownedEnd xmi:type="uml:Property" xmi:id="_eexbdUqOEeGiC_zHokq9VA" name="typeTemplateParameter" type="_eenqa0qOEeGiC_zHokq9VA" owningAssociation="_eexbdEqOEeGiC_zHokq9VA" association="_eexbdEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eexbdkqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eexbd0qOEeGiC_zHokq9VA" value="*"/>

       </ownedEnd>

     </packagedElement>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbtEfgEeGpovDQzEpx9g" name="A_default_templateParameter" memberEnd="_HrCRnkfgEeGpovDQzEpx9g _HrLbtUfgEeGpovDQzEpx9g">

-      <ownedEnd xmi:type="uml:Property" xmi:id="_HrLbtUfgEeGpovDQzEpx9g" name="templateParameter" type="_HrCRkUfgEeGpovDQzEpx9g" owningAssociation="_HrLbtEfgEeGpovDQzEpx9g" association="_HrLbtEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrLbtkfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HrLbt0fgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbaEqOEeGiC_zHokq9VA" name="A_default_templateParameter" memberEnd="_eeegbUqOEeGiC_zHokq9VA _eexbaUqOEeGiC_zHokq9VA">

+      <ownedEnd xmi:type="uml:Property" xmi:id="_eexbaUqOEeGiC_zHokq9VA" name="templateParameter" type="_eeegYEqOEeGiC_zHokq9VA" owningAssociation="_eexbaEqOEeGiC_zHokq9VA" association="_eexbaEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eexbakqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eexba0qOEeGiC_zHokq9VA" value="*"/>

       </ownedEnd>

     </packagedElement>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbpEfgEeGpovDQzEpx9g" name="A_formal_templateParameterSubstitution" memberEnd="_HrCRu0fgEeGpovDQzEpx9g _HrLbpUfgEeGpovDQzEpx9g">

-      <ownedEnd xmi:type="uml:Property" xmi:id="_HrLbpUfgEeGpovDQzEpx9g" name="templateParameterSubstitution" type="_HrCRtUfgEeGpovDQzEpx9g" owningAssociation="_HrLbpEfgEeGpovDQzEpx9g" association="_HrLbpEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrLbpkfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HrLbp0fgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbWEqOEeGiC_zHokq9VA" name="A_formal_templateParameterSubstitution" memberEnd="_eeegikqOEeGiC_zHokq9VA _eexbWUqOEeGiC_zHokq9VA">

+      <ownedEnd xmi:type="uml:Property" xmi:id="_eexbWUqOEeGiC_zHokq9VA" name="templateParameterSubstitution" type="_eeeghEqOEeGiC_zHokq9VA" owningAssociation="_eexbWEqOEeGiC_zHokq9VA" association="_eexbWEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eexbWkqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eexbW0qOEeGiC_zHokq9VA" value="*"/>

       </ownedEnd>

     </packagedElement>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HqvWm0fgEeGpovDQzEpx9g" name="A_nestedPackage_nestingPackage" memberEnd="_HqllykfgEeGpovDQzEpx9g _HqllzkfgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbv0fgEeGpovDQzEpx9g" name="A_operation_templateParameter_parameteredElement" memberEnd="_HrLbd0fgEeGpovDQzEpx9g _HrLbfUfgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HqlmJUfgEeGpovDQzEpx9g" name="A_opposite_property" memberEnd="_Hqllo0fgEeGpovDQzEpx9g _HqlmJkfgEeGpovDQzEpx9g">

-      <ownedEnd xmi:type="uml:Property" xmi:id="_HqlmJkfgEeGpovDQzEpx9g" name="property" type="_HqllkEfgEeGpovDQzEpx9g" owningAssociation="_HqlmJUfgEeGpovDQzEpx9g" association="_HqlmJUfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqlmJ0fgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_ed4DjUqOEeGiC_zHokq9VA" name="A_nestedPackage_nestingPackage" memberEnd="_edlIukqOEeGiC_zHokq9VA _edlIvkqOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbc0qOEeGiC_zHokq9VA" name="A_operation_templateParameter_parameteredElement" memberEnd="_eenqVUqOEeGiC_zHokq9VA _eenqW0qOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_ed4Df0qOEeGiC_zHokq9VA" name="A_opposite_property" memberEnd="_edlIk0qOEeGiC_zHokq9VA _ed4DgEqOEeGiC_zHokq9VA">

+      <ownedEnd xmi:type="uml:Property" xmi:id="_ed4DgEqOEeGiC_zHokq9VA" name="property" type="_edlIgEqOEeGiC_zHokq9VA" owningAssociation="_ed4Df0qOEeGiC_zHokq9VA" association="_ed4Df0qOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ed4DgUqOEeGiC_zHokq9VA"/>

       </ownedEnd>

     </packagedElement>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbu0fgEeGpovDQzEpx9g" name="A_ownedActual_templateParameterSubstitution" memberEnd="_HrCRwUfgEeGpovDQzEpx9g _HrLbvEfgEeGpovDQzEpx9g">

-      <ownedEnd xmi:type="uml:Property" xmi:id="_HrLbvEfgEeGpovDQzEpx9g" name="templateParameterSubstitution" type="_HrCRtUfgEeGpovDQzEpx9g" owningAssociation="_HrLbu0fgEeGpovDQzEpx9g" association="_HrLbu0fgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrLbvUfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbb0qOEeGiC_zHokq9VA" name="A_ownedActual_templateParameterSubstitution" memberEnd="_eeegkEqOEeGiC_zHokq9VA _eexbcEqOEeGiC_zHokq9VA">

+      <ownedEnd xmi:type="uml:Property" xmi:id="_eexbcEqOEeGiC_zHokq9VA" name="templateParameterSubstitution" type="_eeeghEqOEeGiC_zHokq9VA" owningAssociation="_eexbb0qOEeGiC_zHokq9VA" association="_eexbb0qOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eexbcUqOEeGiC_zHokq9VA"/>

       </ownedEnd>

     </packagedElement>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HqlmJEfgEeGpovDQzEpx9g" name="A_ownedAttribute_class" memberEnd="_HqSqr0fgEeGpovDQzEpx9g _HqlloEfgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_Hre9fkfgEeGpovDQzEpx9g" name="A_ownedAttribute_owningType" memberEnd="_Hre9dUfgEeGpovDQzEpx9g _Hre9c0fgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HqvWoUfgEeGpovDQzEpx9g" name="A_ownedComment_owningElement" memberEnd="_HqlmEkfgEeGpovDQzEpx9g _HqvWokfgEeGpovDQzEpx9g">

-      <ownedEnd xmi:type="uml:Property" xmi:id="_HqvWokfgEeGpovDQzEpx9g" name="owningElement" type="_HqlmEEfgEeGpovDQzEpx9g" owningAssociation="_HqvWoUfgEeGpovDQzEpx9g" association="_HqvWoUfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqvWo0fgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_ed4DfkqOEeGiC_zHokq9VA" name="A_ownedAttribute_class" memberEnd="_edb-nEqOEeGiC_zHokq9VA _edlIkEqOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_efEWTkqOEeGiC_zHokq9VA" name="A_ownedAttribute_owningType" memberEnd="_efEWRUqOEeGiC_zHokq9VA _efEWQ0qOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_ed4Dk0qOEeGiC_zHokq9VA" name="A_ownedComment_owningElement" memberEnd="_edu5ukqOEeGiC_zHokq9VA _ed4DlEqOEeGiC_zHokq9VA">

+      <ownedEnd xmi:type="uml:Property" xmi:id="_ed4DlEqOEeGiC_zHokq9VA" name="owningElement" type="_edu5uEqOEeGiC_zHokq9VA" owningAssociation="_ed4Dk0qOEeGiC_zHokq9VA" association="_ed4Dk0qOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ed4DlUqOEeGiC_zHokq9VA"/>

       </ownedEnd>

     </packagedElement>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbuEfgEeGpovDQzEpx9g" name="A_ownedDefault_templateParameter" memberEnd="_HrCRoUfgEeGpovDQzEpx9g _HrLbuUfgEeGpovDQzEpx9g">

-      <ownedEnd xmi:type="uml:Property" xmi:id="_HrLbuUfgEeGpovDQzEpx9g" name="templateParameter" type="_HrCRkUfgEeGpovDQzEpx9g" owningAssociation="_HrLbuEfgEeGpovDQzEpx9g" association="_HrLbuEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrLbukfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbbEqOEeGiC_zHokq9VA" name="A_ownedDefault_templateParameter" memberEnd="_eeegcEqOEeGiC_zHokq9VA _eexbbUqOEeGiC_zHokq9VA">

+      <ownedEnd xmi:type="uml:Property" xmi:id="_eexbbUqOEeGiC_zHokq9VA" name="templateParameter" type="_eeegYEqOEeGiC_zHokq9VA" owningAssociation="_eexbbEqOEeGiC_zHokq9VA" association="_eexbbEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eexbbkqOEeGiC_zHokq9VA"/>

       </ownedEnd>

     </packagedElement>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HqvWmkfgEeGpovDQzEpx9g" name="A_ownedLiteral_enumeration" memberEnd="_HqllukfgEeGpovDQzEpx9g _HqllwUfgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HqvWkUfgEeGpovDQzEpx9g" name="A_ownedOperation_class" memberEnd="_HqSqs0fgEeGpovDQzEpx9g _HqSqxkfgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_Hre9f0fgEeGpovDQzEpx9g" name="A_ownedOperation_owningType" memberEnd="_Hre9eEfgEeGpovDQzEpx9g _Hre9cUfgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HqvWkEfgEeGpovDQzEpx9g" name="A_ownedParameter_operation" memberEnd="_HqSqwkfgEeGpovDQzEpx9g _HqSqzUfgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbokfgEeGpovDQzEpx9g" name="A_ownedParameter_signature" memberEnd="_HrCRi0fgEeGpovDQzEpx9g _HrCRl0fgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbs0fgEeGpovDQzEpx9g" name="A_ownedParameteredElement_owningTemplateParameter" memberEnd="_HrCRm0fgEeGpovDQzEpx9g _HrCR4EfgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_Hq4gkUfgEeGpovDQzEpx9g" name="A_ownedRule_context" memberEnd="_Hq4gjkfgEeGpovDQzEpx9g _HqvWs0fgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbskfgEeGpovDQzEpx9g" name="A_ownedTemplateSignature_template" memberEnd="_HrCRy0fgEeGpovDQzEpx9g _HrCRj0fgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HqvWnEfgEeGpovDQzEpx9g" name="A_ownedType_package" memberEnd="_Hqll0UfgEeGpovDQzEpx9g _HqllqUfgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbrEfgEeGpovDQzEpx9g" name="A_parameterSubstitution_templateBinding" memberEnd="_HrCRsUfgEeGpovDQzEpx9g _HrCRvUfgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbnkfgEeGpovDQzEpx9g" name="A_parameter_templateSignature" memberEnd="_HrCRiEfgEeGpovDQzEpx9g _HrLbn0fgEeGpovDQzEpx9g">

-      <ownedEnd xmi:type="uml:Property" xmi:id="_HrLbn0fgEeGpovDQzEpx9g" name="templateSignature" type="_HrCRgkfgEeGpovDQzEpx9g" owningAssociation="_HrLbnkfgEeGpovDQzEpx9g" association="_HrLbnkfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrLboEfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HrLboUfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_ed4DjEqOEeGiC_zHokq9VA" name="A_ownedLiteral_enumeration" memberEnd="_edlIqkqOEeGiC_zHokq9VA _edlIsUqOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_ed4Dg0qOEeGiC_zHokq9VA" name="A_ownedOperation_class" memberEnd="_edb-oEqOEeGiC_zHokq9VA _edb-s0qOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_efEWT0qOEeGiC_zHokq9VA" name="A_ownedOperation_owningType" memberEnd="_efEWSEqOEeGiC_zHokq9VA _efEWQUqOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_ed4DgkqOEeGiC_zHokq9VA" name="A_ownedParameter_operation" memberEnd="_edb-r0qOEeGiC_zHokq9VA _edb-ukqOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbVkqOEeGiC_zHokq9VA" name="A_ownedParameter_signature" memberEnd="_eeUvcUqOEeGiC_zHokq9VA _eeegZkqOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbZ0qOEeGiC_zHokq9VA" name="A_ownedParameteredElement_owningTemplateParameter" memberEnd="_eeegakqOEeGiC_zHokq9VA _eeegr0qOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eeLlcEqOEeGiC_zHokq9VA" name="A_ownedRule_context" memberEnd="_eeB0sEqOEeGiC_zHokq9VA _eeB0f0qOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbZkqOEeGiC_zHokq9VA" name="A_ownedTemplateSignature_template" memberEnd="_eeegmkqOEeGiC_zHokq9VA _eeUvdUqOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_ed4DjkqOEeGiC_zHokq9VA" name="A_ownedType_package" memberEnd="_edlIwUqOEeGiC_zHokq9VA _edlImUqOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbYEqOEeGiC_zHokq9VA" name="A_parameterSubstitution_templateBinding" memberEnd="_eeeggEqOEeGiC_zHokq9VA _eeegjEqOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbUkqOEeGiC_zHokq9VA" name="A_parameter_templateSignature" memberEnd="_eeUvbkqOEeGiC_zHokq9VA _eexbU0qOEeGiC_zHokq9VA">

+      <ownedEnd xmi:type="uml:Property" xmi:id="_eexbU0qOEeGiC_zHokq9VA" name="templateSignature" type="_eeUvaEqOEeGiC_zHokq9VA" owningAssociation="_eexbUkqOEeGiC_zHokq9VA" association="_eexbUkqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eexbVEqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eexbVUqOEeGiC_zHokq9VA" value="*"/>

       </ownedEnd>

     </packagedElement>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbsUfgEeGpovDQzEpx9g" name="A_parameteredElement_templateParameter" memberEnd="_HrCRmUfgEeGpovDQzEpx9g _HrCR3UfgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HqlmIEfgEeGpovDQzEpx9g" name="A_raisedException_operation" memberEnd="_HqSqvkfgEeGpovDQzEpx9g _HqlmIUfgEeGpovDQzEpx9g">

-      <ownedEnd xmi:type="uml:Property" xmi:id="_HqlmIUfgEeGpovDQzEpx9g" name="operation" type="_HqSqpEfgEeGpovDQzEpx9g" owningAssociation="_HqlmIEfgEeGpovDQzEpx9g" association="_HqlmIEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqlmIkfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HqlmI0fgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbZUqOEeGiC_zHokq9VA" name="A_parameteredElement_templateParameter" memberEnd="_eeegaEqOEeGiC_zHokq9VA _eeegrEqOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_ed4DekqOEeGiC_zHokq9VA" name="A_raisedException_operation" memberEnd="_edb-q0qOEeGiC_zHokq9VA _ed4De0qOEeGiC_zHokq9VA">

+      <ownedEnd xmi:type="uml:Property" xmi:id="_ed4De0qOEeGiC_zHokq9VA" name="operation" type="_edb-kUqOEeGiC_zHokq9VA" owningAssociation="_ed4DekqOEeGiC_zHokq9VA" association="_ed4DekqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ed4DfEqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ed4DfUqOEeGiC_zHokq9VA" value="*"/>

       </ownedEnd>

     </packagedElement>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbqEfgEeGpovDQzEpx9g" name="A_signature_templateBinding" memberEnd="_HrCRr0fgEeGpovDQzEpx9g _HrLbqUfgEeGpovDQzEpx9g">

-      <ownedEnd xmi:type="uml:Property" xmi:id="_HrLbqUfgEeGpovDQzEpx9g" name="templateBinding" type="_HrCRpEfgEeGpovDQzEpx9g" owningAssociation="_HrLbqEfgEeGpovDQzEpx9g" association="_HrLbqEfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrLbqkfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HrLbq0fgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbXEqOEeGiC_zHokq9VA" name="A_signature_templateBinding" memberEnd="_eeegfkqOEeGiC_zHokq9VA _eexbXUqOEeGiC_zHokq9VA">

+      <ownedEnd xmi:type="uml:Property" xmi:id="_eexbXUqOEeGiC_zHokq9VA" name="templateBinding" type="_eeegc0qOEeGiC_zHokq9VA" owningAssociation="_eexbXEqOEeGiC_zHokq9VA" association="_eexbXEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eexbXkqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eexbX0qOEeGiC_zHokq9VA" value="*"/>

       </ownedEnd>

     </packagedElement>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HqvWkkfgEeGpovDQzEpx9g" name="A_superClass_class" memberEnd="_HqSqt0fgEeGpovDQzEpx9g _HqvWk0fgEeGpovDQzEpx9g">

-      <ownedEnd xmi:type="uml:Property" xmi:id="_HqvWk0fgEeGpovDQzEpx9g" name="class" type="_HqSqqUfgEeGpovDQzEpx9g" owningAssociation="_HqvWkkfgEeGpovDQzEpx9g" association="_HqvWkkfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqvWlEfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HqvWlUfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_ed4DhEqOEeGiC_zHokq9VA" name="A_superClass_class" memberEnd="_edb-pEqOEeGiC_zHokq9VA _ed4DhUqOEeGiC_zHokq9VA">

+      <ownedEnd xmi:type="uml:Property" xmi:id="_ed4DhUqOEeGiC_zHokq9VA" name="class" type="_edb-lkqOEeGiC_zHokq9VA" owningAssociation="_ed4DhEqOEeGiC_zHokq9VA" association="_ed4DhEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ed4DhkqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ed4Dh0qOEeGiC_zHokq9VA" value="*"/>

       </ownedEnd>

     </packagedElement>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbo0fgEeGpovDQzEpx9g" name="A_templateBinding_boundElement" memberEnd="_HrCRx0fgEeGpovDQzEpx9g _HrCRrUfgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HrLbvkfgEeGpovDQzEpx9g" name="A_type_templateParameter_parameteredElement" memberEnd="_HrLbhUfgEeGpovDQzEpx9g _HrLblkfgEeGpovDQzEpx9g"/>

-    <packagedElement xmi:type="uml:Association" xmi:id="_HqvWlkfgEeGpovDQzEpx9g" name="A_type_typedElement" memberEnd="_HqlltEfgEeGpovDQzEpx9g _HqvWl0fgEeGpovDQzEpx9g">

-      <ownedEnd xmi:type="uml:Property" xmi:id="_HqvWl0fgEeGpovDQzEpx9g" name="typedElement" type="_HqllsUfgEeGpovDQzEpx9g" owningAssociation="_HqvWlkfgEeGpovDQzEpx9g" association="_HqvWlkfgEeGpovDQzEpx9g">

-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HqvWmEfgEeGpovDQzEpx9g"/>

-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HqvWmUfgEeGpovDQzEpx9g" value="*"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbV0qOEeGiC_zHokq9VA" name="A_templateBinding_boundElement" memberEnd="_eeeglkqOEeGiC_zHokq9VA _eeegfEqOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_eexbckqOEeGiC_zHokq9VA" name="A_type_templateParameter_parameteredElement" memberEnd="_eenqY0qOEeGiC_zHokq9VA _eenqdEqOEeGiC_zHokq9VA"/>

+    <packagedElement xmi:type="uml:Association" xmi:id="_ed4DiEqOEeGiC_zHokq9VA" name="A_type_typedElement" memberEnd="_edlIpEqOEeGiC_zHokq9VA _ed4DiUqOEeGiC_zHokq9VA">

+      <ownedEnd xmi:type="uml:Property" xmi:id="_ed4DiUqOEeGiC_zHokq9VA" name="typedElement" type="_edlIoUqOEeGiC_zHokq9VA" owningAssociation="_ed4DiEqOEeGiC_zHokq9VA" association="_ed4DiEqOEeGiC_zHokq9VA">

+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ed4DikqOEeGiC_zHokq9VA"/>

+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ed4Di0qOEeGiC_zHokq9VA" value="*"/>

       </ownedEnd>

     </packagedElement>

-    <packagedElement xmi:type="uml:Interface" xmi:id="_HsEzX0fgEeGpovDQzEpx9g" name="MorePivotable" isAbstract="true"/>

-    <packagedElement xmi:type="uml:Interface" xmi:id="_HsEzYEfgEeGpovDQzEpx9g" name="Nameable" isAbstract="true"/>

-    <packagedElement xmi:type="uml:Interface" xmi:id="_HsEzZkfgEeGpovDQzEpx9g" name="Pivotable" isAbstract="true"/>

-    <packagedElement xmi:type="uml:Interface" xmi:id="_HsXuRUfgEeGpovDQzEpx9g" name="Visitable" isAbstract="true"/>

-    <packagedElement xmi:type="uml:Interface" xmi:id="_HsXuRkfgEeGpovDQzEpx9g" name="Visitor" isAbstract="true">

-      <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_HsXuR0fgEeGpovDQzEpx9g" parameter="_HsXuSEfgEeGpovDQzEpx9g _HsXuSkfgEeGpovDQzEpx9g">

-        <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_HsXuSEfgEeGpovDQzEpx9g" parameteredElement="_HsXuSUfgEeGpovDQzEpx9g" signature="_HsXuR0fgEeGpovDQzEpx9g">

-          <ownedParameteredElement xmi:type="uml:Class" xmi:id="_HsXuSUfgEeGpovDQzEpx9g" name="R" owningTemplateParameter="_HsXuSEfgEeGpovDQzEpx9g" templateParameter="_HsXuSEfgEeGpovDQzEpx9g"/>

+    <packagedElement xmi:type="uml:Interface" xmi:id="_egG4HUqOEeGiC_zHokq9VA" name="MorePivotable" isAbstract="true"/>

+    <packagedElement xmi:type="uml:Interface" xmi:id="_egG4HkqOEeGiC_zHokq9VA" name="Nameable" isAbstract="true"/>

+    <packagedElement xmi:type="uml:Interface" xmi:id="_egG4JEqOEeGiC_zHokq9VA" name="Pivotable" isAbstract="true"/>

+    <packagedElement xmi:type="uml:Interface" xmi:id="_eipOtUqOEeGiC_zHokq9VA" name="Visitable" isAbstract="true"/>

+    <packagedElement xmi:type="uml:Interface" xmi:id="_eipOtkqOEeGiC_zHokq9VA" name="Visitor" isAbstract="true">

+      <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_eipOt0qOEeGiC_zHokq9VA" parameter="_eipOuEqOEeGiC_zHokq9VA _eipOukqOEeGiC_zHokq9VA">

+        <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_eipOuEqOEeGiC_zHokq9VA" parameteredElement="_eipOuUqOEeGiC_zHokq9VA" signature="_eipOt0qOEeGiC_zHokq9VA">

+          <ownedParameteredElement xmi:type="uml:Class" xmi:id="_eipOuUqOEeGiC_zHokq9VA" name="R" owningTemplateParameter="_eipOuEqOEeGiC_zHokq9VA" templateParameter="_eipOuEqOEeGiC_zHokq9VA"/>

         </ownedParameter>

-        <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_HsXuSkfgEeGpovDQzEpx9g" parameteredElement="_HsXuS0fgEeGpovDQzEpx9g" signature="_HsXuR0fgEeGpovDQzEpx9g">

-          <ownedParameteredElement xmi:type="uml:Class" xmi:id="_HsXuS0fgEeGpovDQzEpx9g" name="C" owningTemplateParameter="_HsXuSkfgEeGpovDQzEpx9g" templateParameter="_HsXuSkfgEeGpovDQzEpx9g"/>

+        <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_eipOukqOEeGiC_zHokq9VA" parameteredElement="_eipOu0qOEeGiC_zHokq9VA" signature="_eipOt0qOEeGiC_zHokq9VA">

+          <ownedParameteredElement xmi:type="uml:Class" xmi:id="_eipOu0qOEeGiC_zHokq9VA" name="C" owningTemplateParameter="_eipOukqOEeGiC_zHokq9VA" templateParameter="_eipOukqOEeGiC_zHokq9VA"/>

         </ownedParameter>

       </ownedTemplateSignature>

     </packagedElement>

@@ -1315,23 +1315,23 @@
   <Ecore:EAttribute xmi:id="_yqM3UL2iEd-nQufuYygZtQ" isTransient="true"/>

   <Ecore:EPackage xmi:id="_hn2o4sinEd-sJIf4tYBt-g" base_Package="_0" nsPrefix="pivot" nsURI="http://www.eclipse.org/ocl/3.1.0/Pivot"/>

   <Ecore:EPackage xmi:id="_6wkKcMknEd-bx742yyafXQ" base_Package="_0" nsPrefix="pivot" nsURI="http://www.eclipse.org/ocl/3.1.0/Pivot"/>

-  <Ecore:EReference xmi:id="_Hr7Ca0fgEeGpovDQzEpx9g" isTransient="true" base_Property="_Hr7CZ0fgEeGpovDQzEpx9g"/>

-  <Ecore:EReference xmi:id="_Hr7CbEfgEeGpovDQzEpx9g" isTransient="true" base_Property="_Hr7CaUfgEeGpovDQzEpx9g" isResolveProxies="false"/>

-  <Ecore:EAttribute xmi:id="_HsEzWUfgEeGpovDQzEpx9g" isTransient="true" base_Property="_HsEzVEfgEeGpovDQzEpx9g"/>

-  <Ecore:EDataType xmi:id="_HsEzWkfgEeGpovDQzEpx9g" instanceClassName="org.eclipse.ocl.examples.domain.library.LibraryFeature" base_PrimitiveType="_HsEzVkfgEeGpovDQzEpx9g"/>

-  <Ecore:EDataType xmi:id="_HsEzW0fgEeGpovDQzEpx9g" instanceClassName="java.lang.Object" base_PrimitiveType="_HsEzV0fgEeGpovDQzEpx9g"/>

-  <Ecore:EDataType xmi:id="_HsEzXEfgEeGpovDQzEpx9g" instanceClassName="java.lang.Throwable" base_PrimitiveType="_HsEzWEfgEeGpovDQzEpx9g"/>

-  <Ecore:EClass xmi:id="_HsEza0fgEeGpovDQzEpx9g" instanceClassName="org.eclipse.ocl.examples.pivot.util.MorePivotable" base_Interface="_HsEzX0fgEeGpovDQzEpx9g" className="MorePivotable"/>

-  <Ecore:EClass xmi:id="_HsEzbEfgEeGpovDQzEpx9g" instanceClassName="org.eclipse.ocl.examples.pivot.util.Nameable" base_Interface="_HsEzYEfgEeGpovDQzEpx9g" className="Nameable"/>

-  <Ecore:EClass xmi:id="_HsEzbUfgEeGpovDQzEpx9g" instanceClassName="org.eclipse.ocl.examples.pivot.util.Pivotable" base_Interface="_HsEzZkfgEeGpovDQzEpx9g" className="Pivotable"/>

-  <Ecore:EAttribute xmi:id="_HsOkW0fgEeGpovDQzEpx9g" base_Property="_HsOkWkfgEeGpovDQzEpx9g"/>

-  <Ecore:EDataType xmi:id="_HsOkXUfgEeGpovDQzEpx9g" instanceClassName="boolean" base_PrimitiveType="_Hq4gmUfgEeGpovDQzEpx9g"/>

-  <Ecore:EDataType xmi:id="_HsOkXkfgEeGpovDQzEpx9g" instanceClassName="int" base_PrimitiveType="_HsOkXEfgEeGpovDQzEpx9g"/>

-  <Ecore:EDataType xmi:id="_HsOkX0fgEeGpovDQzEpx9g" instanceClassName="java.math.BigInteger" base_PrimitiveType="_Hq4gl0fgEeGpovDQzEpx9g"/>

-  <Ecore:EDataType xmi:id="_HsOkYEfgEeGpovDQzEpx9g" instanceClassName="java.math.BigDecimal" base_PrimitiveType="_Hrx4akfgEeGpovDQzEpx9g"/>

-  <Ecore:EDataType xmi:id="_HsOkYUfgEeGpovDQzEpx9g" instanceClassName="java.lang.String" base_PrimitiveType="_Hq4gm0fgEeGpovDQzEpx9g"/>

-  <Ecore:EDataType xmi:id="_HsOkYkfgEeGpovDQzEpx9g" instanceClassName="java.math.BigInteger" base_PrimitiveType="_Hq4gnUfgEeGpovDQzEpx9g"/>

-  <Ecore:EAttribute xmi:id="_HsOkY0fgEeGpovDQzEpx9g" isUnsettable="true" base_Property="_Hre9hEfgEeGpovDQzEpx9g"/>

-  <Ecore:EClass xmi:id="_HsXuTEfgEeGpovDQzEpx9g" instanceClassName="org.eclipse.ocl.examples.pivot.util.Visitable" base_Interface="_HsXuRUfgEeGpovDQzEpx9g" className="Visitable"/>

-  <Ecore:EClass xmi:id="_HsXuTUfgEeGpovDQzEpx9g" instanceClassName="org.eclipse.ocl.examples.pivot.util.Visitor" base_Interface="_HsXuRkfgEeGpovDQzEpx9g"/>

+  <Ecore:EReference xmi:id="_efz9PkqOEeGiC_zHokq9VA" isTransient="true" base_Property="_efz9OkqOEeGiC_zHokq9VA"/>

+  <Ecore:EReference xmi:id="_ef9uIEqOEeGiC_zHokq9VA" isTransient="true" base_Property="_efz9PEqOEeGiC_zHokq9VA" isResolveProxies="false"/>

+  <Ecore:EAttribute xmi:id="_egG4F0qOEeGiC_zHokq9VA" isTransient="true" base_Property="_egG4EkqOEeGiC_zHokq9VA"/>

+  <Ecore:EDataType xmi:id="_egG4GEqOEeGiC_zHokq9VA" instanceClassName="org.eclipse.ocl.examples.domain.library.LibraryFeature" base_PrimitiveType="_egG4FEqOEeGiC_zHokq9VA"/>

+  <Ecore:EDataType xmi:id="_egG4GUqOEeGiC_zHokq9VA" instanceClassName="java.lang.Object" base_PrimitiveType="_egG4FUqOEeGiC_zHokq9VA"/>

+  <Ecore:EDataType xmi:id="_egG4GkqOEeGiC_zHokq9VA" instanceClassName="java.lang.Throwable" base_PrimitiveType="_egG4FkqOEeGiC_zHokq9VA"/>

+  <Ecore:EClass xmi:id="_eiVssEqOEeGiC_zHokq9VA" instanceClassName="org.eclipse.ocl.examples.pivot.util.MorePivotable" base_Interface="_egG4HUqOEeGiC_zHokq9VA" className="MorePivotable"/>

+  <Ecore:EClass xmi:id="_eiVssUqOEeGiC_zHokq9VA" instanceClassName="org.eclipse.ocl.examples.pivot.util.Nameable" base_Interface="_egG4HkqOEeGiC_zHokq9VA" className="Nameable"/>

+  <Ecore:EClass xmi:id="_eiVsskqOEeGiC_zHokq9VA" instanceClassName="org.eclipse.ocl.examples.pivot.util.Pivotable" base_Interface="_egG4JEqOEeGiC_zHokq9VA" className="Pivotable"/>

+  <Ecore:EAttribute xmi:id="_eifdu0qOEeGiC_zHokq9VA" base_Property="_eifdukqOEeGiC_zHokq9VA"/>

+  <Ecore:EDataType xmi:id="_eifdvUqOEeGiC_zHokq9VA" instanceClassName="boolean" base_PrimitiveType="_eeLleEqOEeGiC_zHokq9VA"/>

+  <Ecore:EDataType xmi:id="_eifdvkqOEeGiC_zHokq9VA" instanceClassName="int" base_PrimitiveType="_eifdvEqOEeGiC_zHokq9VA"/>

+  <Ecore:EDataType xmi:id="_eifdv0qOEeGiC_zHokq9VA" instanceClassName="java.math.BigInteger" base_PrimitiveType="_eeLldkqOEeGiC_zHokq9VA"/>

+  <Ecore:EDataType xmi:id="_eifdwEqOEeGiC_zHokq9VA" instanceClassName="java.math.BigDecimal" base_PrimitiveType="_efqzMEqOEeGiC_zHokq9VA"/>

+  <Ecore:EDataType xmi:id="_eifdwUqOEeGiC_zHokq9VA" instanceClassName="java.lang.String" base_PrimitiveType="_eeLlekqOEeGiC_zHokq9VA"/>

+  <Ecore:EDataType xmi:id="_eifdwkqOEeGiC_zHokq9VA" instanceClassName="java.math.BigInteger" base_PrimitiveType="_eeLlfEqOEeGiC_zHokq9VA"/>

+  <Ecore:EAttribute xmi:id="_eifdw0qOEeGiC_zHokq9VA" isUnsettable="true" base_Property="_efEWVEqOEeGiC_zHokq9VA"/>

+  <Ecore:EClass xmi:id="_eipOvEqOEeGiC_zHokq9VA" instanceClassName="org.eclipse.ocl.examples.pivot.util.Visitable" base_Interface="_eipOtUqOEeGiC_zHokq9VA" className="Visitable"/>

+  <Ecore:EClass xmi:id="_eipOvUqOEeGiC_zHokq9VA" instanceClassName="org.eclipse.ocl.examples.pivot.util.Visitor" base_Interface="_eipOtkqOEeGiC_zHokq9VA"/>

 </xmi:XMI>