diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLCommonXtend.xtend b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLCommonXtend.xtend
index bcefe13..e1bb5e7 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLCommonXtend.xtend
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLCommonXtend.xtend
@@ -123,7 +123,7 @@
 			«FOR pkge : sortedPackages»
 
 				«FOR type : ClassUtil.nullFree(pkge2primitiveTypes.get(pkge))»
-				private final @NonNull PrimitiveType «type.getPrefixedSymbolNameWithoutNormalization("_" + type.partialName())» = createPrimitiveType("«type.name»");
+				private final @NonNull Class «type.getPrefixedSymbolNameWithoutNormalization("_" + type.partialName())» = createPrimitiveType("«type.name»");
 				«ENDFOR»
 			«ENDFOR»
 		'''
@@ -272,6 +272,8 @@
 			«FOR name : externals»«var element = ClassUtil.nonNullState(name2external.get(name))»
 			«IF element instanceof Package»
 			private final @NonNull Package «getPrefixedSymbolName(element, name)» = «element.getExternalReference()»;
+			«ELSEIF element instanceof PrimitiveType»
+			private final @NonNull Class «getPrefixedSymbolName(element, name)» = «element.getExternalReference()»;
 			«ELSE»
 			private final @NonNull «element.eClass().getName()» «getPrefixedSymbolName(element, name)» = «element.getExternalReference()»;
 			«ENDIF»
diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLmetamodelXtend.xtend b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLmetamodelXtend.xtend
index 42bda99..7e37cdb 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLmetamodelXtend.xtend
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLmetamodelXtend.xtend
@@ -84,42 +84,51 @@
 			 * Do not edit it.
 			 *******************************************************************************/
 			package	«javaPackageName»;
-			
+
 			import java.io.IOException;
-			import java.math.BigInteger;
 			import java.util.List;
 			import java.util.Map;
-			
+
 			import org.eclipse.emf.common.notify.Notification;
 			import org.eclipse.emf.common.notify.NotificationChain;
 			import org.eclipse.emf.common.util.URI;
 			import org.eclipse.emf.ecore.resource.Resource;
 			import org.eclipse.emf.ecore.resource.ResourceSet;
-			import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
 			import org.eclipse.jdt.annotation.NonNull;
 			import org.eclipse.jdt.annotation.Nullable;
-			import org.eclipse.ocl.pivot.*;
+			import org.eclipse.ocl.pivot.AnyType;
+			import org.eclipse.ocl.pivot.BagType;
+			import org.eclipse.ocl.pivot.BooleanType;
 			import org.eclipse.ocl.pivot.Class;
+			import org.eclipse.ocl.pivot.CollectionType;
+			import org.eclipse.ocl.pivot.DataType;
+			import org.eclipse.ocl.pivot.Enumeration;
+			import org.eclipse.ocl.pivot.EnumerationLiteral;
+			import org.eclipse.ocl.pivot.Model;
+			import org.eclipse.ocl.pivot.Operation;
+			import org.eclipse.ocl.pivot.OrderedSetType;
 			import org.eclipse.ocl.pivot.Package;
+			import org.eclipse.ocl.pivot.Parameter;
+			import org.eclipse.ocl.pivot.PivotPackage;
+			import org.eclipse.ocl.pivot.Property;
+			import org.eclipse.ocl.pivot.SequenceType;
+			import org.eclipse.ocl.pivot.SetType;
+			import org.eclipse.ocl.pivot.TemplateParameter;
 			import org.eclipse.ocl.pivot.ids.IdManager;
 			import org.eclipse.ocl.pivot.internal.complete.StandardLibraryInternal;
 			import org.eclipse.ocl.pivot.internal.library.StandardLibraryContribution;
 			import org.eclipse.ocl.pivot.internal.resource.ASResourceImpl;
 			import org.eclipse.ocl.pivot.internal.resource.OCLASResourceFactory;
 			import org.eclipse.ocl.pivot.internal.utilities.AbstractContents;
-			import org.eclipse.ocl.pivot.library.LibraryFeature;
 			import org.eclipse.ocl.pivot.model.OCLstdlib;
-			import org.eclipse.ocl.pivot.utilities.ClassUtil;
 			import org.eclipse.ocl.pivot.utilities.PivotConstants;
-			import org.eclipse.ocl.pivot.internal.utilities.PivotObjectImpl;
-			import org.eclipse.ocl.pivot.utilities.PivotUtil;
 			«IF ((externalPackages !== null) && !externalPackages.isEmpty())»
-			
+
 			«FOR externalPackage : externalPackages»
 				«externalPackage.declarePackageImport()»
 			«ENDFOR»
 			«ENDIF»
-			
+
 			/**
 			 * This is the pivot representation of the «uri» metamodel
 			 * auto-generated from «sourceFile».
diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLstdlibXtend.xtend b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLstdlibXtend.xtend
index 0e1b09b..8780ec7 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLstdlibXtend.xtend
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLstdlibXtend.xtend
@@ -136,31 +136,44 @@
 			 * Do not edit it.
 			 *******************************************************************************/
 			package	«javaPackageName»;
-			
+
 			import java.io.IOException;
-			import java.util.ArrayList;
 			import java.util.List;
 			import java.util.Map;
-			import java.util.Set;
-			
+
 			import org.eclipse.emf.common.notify.Notification;
 			import org.eclipse.emf.common.notify.NotificationChain;
-			import org.eclipse.emf.common.util.TreeIterator;
 			import org.eclipse.emf.common.util.URI;
-			import org.eclipse.emf.ecore.EObject;
 			import org.eclipse.emf.ecore.EPackage;
-			import org.eclipse.emf.ecore.EReference;
-			import org.eclipse.emf.ecore.impl.BasicEObjectImpl;
 			import org.eclipse.emf.ecore.resource.Resource;
 			import org.eclipse.emf.ecore.resource.ResourceSet;
-			import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
 			import org.eclipse.jdt.annotation.NonNull;
 			import org.eclipse.jdt.annotation.Nullable;
-			import org.eclipse.ocl.pivot.*;
+			import org.eclipse.ocl.pivot.AnyType;
+			import org.eclipse.ocl.pivot.AssociativityKind;
+			import org.eclipse.ocl.pivot.BagType;
 			import org.eclipse.ocl.pivot.Class;
+			import org.eclipse.ocl.pivot.CollectionType;
+			import org.eclipse.ocl.pivot.InvalidType;
+			import org.eclipse.ocl.pivot.Iteration;
+			import org.eclipse.ocl.pivot.LambdaType;
+			import org.eclipse.ocl.pivot.Library;
+			import org.eclipse.ocl.pivot.MapType;
+			import org.eclipse.ocl.pivot.Model;
+			import org.eclipse.ocl.pivot.Operation;
+			import org.eclipse.ocl.pivot.OrderedSetType;
 			import org.eclipse.ocl.pivot.Package;
+			import org.eclipse.ocl.pivot.Parameter;
+			import org.eclipse.ocl.pivot.Precedence;
+			import org.eclipse.ocl.pivot.PrimitiveType;
+			import org.eclipse.ocl.pivot.Property;
+			import org.eclipse.ocl.pivot.SelfType;
+			import org.eclipse.ocl.pivot.SequenceType;
+			import org.eclipse.ocl.pivot.SetType;
+			import org.eclipse.ocl.pivot.TemplateParameter;
+			import org.eclipse.ocl.pivot.TupleType;
+			import org.eclipse.ocl.pivot.VoidType;
 			import org.eclipse.ocl.pivot.ids.IdManager;
-			import org.eclipse.ocl.pivot.ids.PackageId;
 			import org.eclipse.ocl.pivot.internal.library.StandardLibraryContribution;
 			import org.eclipse.ocl.pivot.internal.resource.ASResourceImpl;
 			import org.eclipse.ocl.pivot.internal.resource.OCLASResourceFactory;
@@ -168,16 +181,14 @@
 			import org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal;
 			import org.eclipse.ocl.pivot.model.OCLmetamodel;
 			import org.eclipse.ocl.pivot.utilities.ClassUtil;
-			import org.eclipse.ocl.pivot.utilities.MetamodelManager;
 			import org.eclipse.ocl.pivot.utilities.PivotConstants;
-			import org.eclipse.ocl.pivot.utilities.PivotUtil;
 			«IF ((externalPackages !== null) && !externalPackages.isEmpty())»
-			
+
 			«FOR externalPackage : externalPackages»
 				«externalPackage.declarePackageImport()»
 			«ENDFOR»
 			«ENDIF»
-			
+
 			/**
 			 * This is the «uri» Standard Library
 			 * auto-generated from «sourceFile».
diff --git a/examples/org.eclipse.ocl.examples.codegen/emf-gen/org/eclipse/ocl/examples/codegen/model/CGLibrary.java b/examples/org.eclipse.ocl.examples.codegen/emf-gen/org/eclipse/ocl/examples/codegen/model/CGLibrary.java
index d3ab3af..b30f0bb 100644
--- a/examples/org.eclipse.ocl.examples.codegen/emf-gen/org/eclipse/ocl/examples/codegen/model/CGLibrary.java
+++ b/examples/org.eclipse.ocl.examples.codegen/emf-gen/org/eclipse/ocl/examples/codegen/model/CGLibrary.java
@@ -252,11 +252,11 @@
 		}
 
 		private final @NonNull Package _ocl = getPackage(org.eclipse.ocl.pivot.model.OCLstdlib.getDefaultModel(), "ocl");
-		private final @NonNull PrimitiveType _Boolean = getPrimitiveType(_ocl, "Boolean");
-		private final @NonNull PrimitiveType _Integer = getPrimitiveType(_ocl, "Integer");
+		private final @NonNull Class _Boolean = getPrimitiveType(_ocl, "Boolean");
+		private final @NonNull Class _Integer = getPrimitiveType(_ocl, "Integer");
 		private final @NonNull AnyType _OclAny = getAnyType(_ocl, "OclAny");
 		private final @NonNull Class _OclElement = getClass(_ocl, "OclElement");
-		private final @NonNull PrimitiveType _String = getPrimitiveType(_ocl, "String");
+		private final @NonNull Class _String = getPrimitiveType(_ocl, "String");
 
 		private void installPackages() {
 			model.getOwnedPackages().add(ocl);
diff --git a/plugins/org.eclipse.ocl.pivot/.settings/.api_filters b/plugins/org.eclipse.ocl.pivot/.settings/.api_filters
index e046322..ff62169 100644
--- a/plugins/org.eclipse.ocl.pivot/.settings/.api_filters
+++ b/plugins/org.eclipse.ocl.pivot/.settings/.api_filters
@@ -1515,6 +1515,14 @@
             </message_arguments>
         </filter>
     </resource>
+    <resource path="src/org/eclipse/ocl/pivot/internal/utilities/AbstractContents.java" type="org.eclipse.ocl.pivot.internal.utilities.AbstractContents">
+        <filter id="338792546">
+            <message_arguments>
+                <message_argument value="org.eclipse.ocl.pivot.internal.utilities.AbstractContents"/>
+                <message_argument value="getPrimitiveType(Package, String)"/>
+            </message_arguments>
+        </filter>
+    </resource>
     <resource path="src/org/eclipse/ocl/pivot/internal/utilities/AbstractTechnology.java" type="org.eclipse.ocl.pivot.internal.utilities.AbstractTechnology">
         <filter comment="Bug 512402 workaround" id="576725006">
             <message_arguments>
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLmetamodel.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLmetamodel.java
index 77ca920..c916825 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLmetamodel.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLmetamodel.java
@@ -42,7 +42,6 @@
 import org.eclipse.ocl.pivot.Package;
 import org.eclipse.ocl.pivot.Parameter;
 import org.eclipse.ocl.pivot.PivotPackage;
-import org.eclipse.ocl.pivot.PrimitiveType;
 import org.eclipse.ocl.pivot.Property;
 import org.eclipse.ocl.pivot.SequenceType;
 import org.eclipse.ocl.pivot.SetType;
@@ -55,6 +54,9 @@
 import org.eclipse.ocl.pivot.internal.utilities.AbstractContents;
 import org.eclipse.ocl.pivot.utilities.PivotConstants;
 
+import org.eclipse.ocl.pivot.oclstdlib.OCLstdlibPackage;
+import org.eclipse.ocl.pivot.PivotPackage;
+
 /**
  * This is the pivot representation of the http://www.eclipse.org/ocl/2015/Pivot metamodel
  * auto-generated from /org.eclipse.ocl.pivot/model/Pivot.ecore.
@@ -259,20 +261,20 @@
 
 		private final @NonNull Package _ocl = standardLibrary;
 		private final @NonNull BagType _Bag = getBagType(_ocl, "Bag");
-		private final @NonNull BooleanType _Boolean = getBooleanType(_ocl, "Boolean");
+		private final @NonNull Class _Boolean = getBooleanType(_ocl, "Boolean");
 		private final @NonNull CollectionType _Collection = getCollectionType(_ocl, "Collection");
-		private final @NonNull PrimitiveType _Integer = getPrimitiveType(_ocl, "Integer");
+		private final @NonNull Class _Integer = getPrimitiveType(_ocl, "Integer");
 		private final @NonNull AnyType _OclAny = getAnyType(_ocl, "OclAny");
 		private final @NonNull Class _OclElement = getClass(_ocl, "OclElement");
 		private final @NonNull Class _OclEnumeration = getClass(_ocl, "OclEnumeration");
 		private final @NonNull CollectionType _OrderedCollection = getCollectionType(_ocl, "OrderedCollection");
 		private final @NonNull OrderedSetType _OrderedSet = getOrderedSetType(_ocl, "OrderedSet");
-		private final @NonNull PrimitiveType _Real = getPrimitiveType(_ocl, "Real");
+		private final @NonNull Class _Real = getPrimitiveType(_ocl, "Real");
 		private final @NonNull SequenceType _Sequence = getSequenceType(_ocl, "Sequence");
 		private final @NonNull SetType _Set = getSetType(_ocl, "Set");
-		private final @NonNull PrimitiveType _String = getPrimitiveType(_ocl, "String");
+		private final @NonNull Class _String = getPrimitiveType(_ocl, "String");
 		private final @NonNull CollectionType _UniqueCollection = getCollectionType(_ocl, "UniqueCollection");
-		private final @NonNull PrimitiveType _UnlimitedNatural = getPrimitiveType(_ocl, "UnlimitedNatural");
+		private final @NonNull Class _UnlimitedNatural = getPrimitiveType(_ocl, "UnlimitedNatural");
 		private final @NonNull TemplateParameter _Bag_T = getTemplateParameter(_Bag, 0);
 		private final @NonNull TemplateParameter _Collection_T = getTemplateParameter(_Collection, 0);
 		private final @NonNull TemplateParameter _OrderedCollection_T = getTemplateParameter(_OrderedCollection, 0);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLstdlib.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLstdlib.java
index eecdabb..8252a1d 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLstdlib.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLstdlib.java
@@ -59,10 +59,11 @@
 import org.eclipse.ocl.pivot.internal.resource.OCLASResourceFactory;
 import org.eclipse.ocl.pivot.internal.utilities.AbstractContents;
 import org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal;
-import org.eclipse.ocl.pivot.oclstdlib.OCLstdlibPackage;
 import org.eclipse.ocl.pivot.utilities.ClassUtil;
 import org.eclipse.ocl.pivot.utilities.PivotConstants;
 
+import org.eclipse.ocl.pivot.oclstdlib.OCLstdlibPackage;
+
 /**
  * This is the http://www.eclipse.org/ocl/2015/Library Standard Library
  * auto-generated from /org.eclipse.ocl.pivot/model/OCL-2.5.oclstdlib.
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/utilities/AbstractContents.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/utilities/AbstractContents.java
index 417b3e3..dba20ef 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/utilities/AbstractContents.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/utilities/AbstractContents.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2012, 2018 Willink Transformations and others.
+ * Copyright (c) 2012, 2022 Willink Transformations and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v2.0
  * which accompanies this distribution, and is available at
@@ -35,7 +35,6 @@
 import org.eclipse.ocl.pivot.OrderedSetType;
 import org.eclipse.ocl.pivot.ParameterVariable;
 import org.eclipse.ocl.pivot.PivotFactory;
-import org.eclipse.ocl.pivot.PrimitiveType;
 import org.eclipse.ocl.pivot.Property;
 import org.eclipse.ocl.pivot.SelfType;
 import org.eclipse.ocl.pivot.SequenceType;
@@ -420,8 +419,11 @@
 		return ClassUtil.nonNullState(NameUtil.getNameable(asModel.getOwnedPackages(), name));
 	}
 
-	protected @NonNull PrimitiveType getPrimitiveType(org.eclipse.ocl.pivot.@NonNull Package asPackage, @NonNull String name) {
-		return (PrimitiveType) ClassUtil.nonNullState(asPackage.getOwnedClass(name));
+	/**
+	 * @since 1.18
+	 */
+	protected org.eclipse.ocl.pivot.@NonNull Class getPrimitiveType(org.eclipse.ocl.pivot.@NonNull Package asPackage, @NonNull String name) {
+		return ClassUtil.nonNullState(asPackage.getOwnedClass(name));
 	}
 
 	protected @NonNull Property getProperty(org.eclipse.ocl.pivot.@NonNull Class asClass, @NonNull String name) {
