[unrelated] Tidy gratuitous references
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/AbstractScheduledRegion.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/AbstractScheduledRegion.java
index b2a1491..45ca51c 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/AbstractScheduledRegion.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/AbstractScheduledRegion.java
@@ -37,22 +37,22 @@
 	/**
 	 * All regions within this scheduled region.
 	 */
-	private final @NonNull List<@NonNull Region> regions = new ArrayList<@NonNull Region>();
+	private final @NonNull List<@NonNull Region> regions = new ArrayList<>();
 
 	/**
 	 * All the connections defined in this region, but not those in nested regions.
 	 */
-	private @NonNull List<@NonNull Connection> connections = new ArrayList<@NonNull Connection>();
+	private @NonNull List<@NonNull Connection> connections = new ArrayList<>();
 
 	/**
 	 * The per-class node connections that unite a set of sources via a shared connection.
 	 */
-	private final @NonNull Map<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull Map<@NonNull Set<@NonNull Node>, @NonNull NodeConnection>> classDatumAnalysis2nodes2nodeConnections = new HashMap<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull Map<@NonNull Set<@NonNull Node>, @NonNull NodeConnection>>();
+	private final @NonNull Map<@NonNull ClassDatumAnalysis, @NonNull Map<@NonNull Set<@NonNull Node>, @NonNull NodeConnection>> classDatumAnalysis2nodes2nodeConnections = new HashMap<>();
 
 	/**
 	 * The edge connections that unite a set of sources via a shared connection.
 	 */
-	private final @NonNull Map<@NonNull Set<@NonNull NavigableEdge>, @NonNull EdgeConnection> edges2edgeConnection = new HashMap<@NonNull Set<@NonNull NavigableEdge>, @NonNull EdgeConnection>();
+	private final @NonNull Map<@NonNull Set<@NonNull NavigableEdge>, @NonNull EdgeConnection> edges2edgeConnection = new HashMap<>();
 
 	public AbstractScheduledRegion(@NonNull MultiRegion multiRegion) {
 		super(multiRegion);
@@ -120,8 +120,8 @@
 		//
 		//	Index all predicated and realized edges by typed model and property.
 		//
-		Map<@NonNull TypedModel, @NonNull Map<@NonNull Property, @NonNull List<@NonNull NavigableEdge>>> typedModel2property2predicatedEdges = new HashMap<@NonNull TypedModel, @NonNull Map<@NonNull Property, @NonNull List<@NonNull NavigableEdge>>>();
-		Map<@NonNull TypedModel, @NonNull Map<@NonNull Property, @NonNull List<@NonNull NavigableEdge>>> typedModel2property2realizedEdges = new HashMap<@NonNull TypedModel, @NonNull Map<@NonNull Property, @NonNull List<@NonNull NavigableEdge>>>();
+		Map<@NonNull TypedModel, @NonNull Map<@NonNull Property, @NonNull List<@NonNull NavigableEdge>>> typedModel2property2predicatedEdges = new HashMap<>();
+		Map<@NonNull TypedModel, @NonNull Map<@NonNull Property, @NonNull List<@NonNull NavigableEdge>>> typedModel2property2realizedEdges = new HashMap<>();
 		for (@NonNull Region region : orderedRegions) {
 			QVTs2QVTiVisitor.POLLED_PROPERTIES.println("building indexes for " + region + " " + region.getIndexRangeText());
 			region.buildPredicatedNavigationEdgesIndex(typedModel2property2predicatedEdges);
@@ -238,8 +238,8 @@
 		/*		for (Region calledRegion : sortedRegions) {
 			calledRegion.refineBindings(this);
 		} */
-		/*		HashMap<Node, List<Node>> outerNode2outerNodes = new HashMap<Node, List<Node>>();
-		Map<Region, Map<NavigationEdge, NavigationEdge>> region2innerEdge2outerEdge = new HashMap<Region, Map<NavigationEdge, NavigationEdge>>();
+		/*		HashMap<Node, List<Node>> outerNode2outerNodes = new HashMap<>();
+		Map<Region, Map<NavigationEdge, NavigationEdge>> region2innerEdge2outerEdge = new HashMap<>();
 		propagateCommonNavigations(rootContainmentRegion, outerNode2outerNodes, region2innerEdge2outerEdge);
 		for (@SuppressWarnings("null")@NonNull Map.Entry<Region, Map<NavigationEdge, NavigationEdge>> entry1 : region2innerEdge2outerEdge.entrySet()) {
 			Region innerRegion = entry1.getKey();
@@ -248,7 +248,7 @@
 				List<NavigationEdge> bestPath = null;
 				for (@SuppressWarnings("null")@NonNull List<Node> headGroup : innerRegion.getHeadNodeGroups()) {
 					for (@SuppressWarnings("null")@NonNull Node headNode : headGroup) {
-						bestPath = getBestPath(bestPath, getPath(headNode, innerNode, new HashSet<Edge>()));
+						bestPath = getBestPath(bestPath, getPath(headNode, innerNode, new HashSet<>()));
 					}
 				}
 				assert bestPath != null;
@@ -272,8 +272,8 @@
 					}
 				}
 			} */
-		/*			Map<Node, Edge> innerNode2edge = new HashMap<Node, Edge>();
-			Map<Node, Node> innerNode2outerNode = new HashMap<Node, Node>();
+		/*			Map<Node, Edge> innerNode2edge = new HashMap<>();
+			Map<Node, Node> innerNode2outerNode = new HashMap<>();
 //			for (NavigationEdge innerEdge : entry1.getValue().keySet()) {
 //				innerNode2edge.put(innerEdge.getSource(), innerEdge);
 //			}
@@ -311,7 +311,7 @@
 	public @NonNull NodeConnection getAttributeConnection(@NonNull Iterable<@NonNull Node> sourceNodes, @NonNull CompleteClass owningClass, @NonNull Property property, @NonNull ClassDatumAnalysis classDatumAnalysis) {
 		Map<@NonNull Set<@NonNull Node>, @NonNull NodeConnection> nodes2connection = classDatumAnalysis2nodes2nodeConnections.get(classDatumAnalysis);
 		if (nodes2connection == null) {
-			nodes2connection = new HashMap<@NonNull Set<@NonNull Node>, @NonNull NodeConnection>();
+			nodes2connection = new HashMap<>();
 			classDatumAnalysis2nodes2nodeConnections.put(classDatumAnalysis, nodes2connection);
 		}
 		Set<@NonNull Node> sourceSet = Sets.newHashSet(sourceNodes);
@@ -363,7 +363,7 @@
 	public @NonNull NodeConnection getNodeConnection(@NonNull Iterable<@NonNull Node> sourceNodes, @NonNull ClassDatumAnalysis classDatumAnalysis) {
 		Map<@NonNull Set<@NonNull Node>, @NonNull NodeConnection> nodes2connection = classDatumAnalysis2nodes2nodeConnections.get(classDatumAnalysis);
 		if (nodes2connection == null) {
-			nodes2connection = new HashMap<@NonNull Set<@NonNull Node>, @NonNull NodeConnection>();
+			nodes2connection = new HashMap<>();
 			classDatumAnalysis2nodes2nodeConnections.put(classDatumAnalysis, nodes2connection);
 		}
 		Set<@NonNull Node> sourceSet = Sets.newHashSet(sourceNodes);
@@ -438,7 +438,7 @@
 		ClassDatumAnalysis classDatumAnalysis = connection.getClassDatumAnalysis();
 		Map<@NonNull Set<@NonNull Node>, NodeConnection> nodes2connections = classDatumAnalysis2nodes2nodeConnections.get(classDatumAnalysis);
 		assert nodes2connections != null;
-		Set<@NonNull Node> newSourceNodes = new HashSet<@NonNull Node>();
+		Set<@NonNull Node> newSourceNodes = new HashSet<>();
 		Iterables.addAll(newSourceNodes, connection.getSources());
 		NodeConnection oldConnection = nodes2connections.remove(newSourceNodes);
 		assert oldConnection == connection;
@@ -462,7 +462,7 @@
 	 * After cycles have been removed, split looped connection variables to isolate the unlooping base case, from the/each looping case.
 	 */
 	protected void splitConnectionVariables() {
-		for (@NonNull NodeConnection connection : getNodeConnections()) { //new ArrayList<NodeConnection>(getNodeConnections())) {
+		for (@NonNull NodeConnection connection : getNodeConnections()) { //new ArrayList<>(getNodeConnections())) {
 			if (connection.isPassed()) {
 				Set<@NonNull Region> loopRegions = null;
 				for (@NonNull Region sourceRegion : connection.getSourceRegions()) {
@@ -470,7 +470,7 @@
 						for (@NonNull Region targetRegion : connection.getTargetRegions()) {
 							if (sourceRegion == targetRegion) {
 								if (loopRegions == null) {
-									loopRegions = new HashSet<@NonNull Region>();
+									loopRegions = new HashSet<>();
 								}
 								loopRegions.add(sourceRegion);
 							}
@@ -479,14 +479,14 @@
 				}
 				if (loopRegions != null) {
 					ClassDatumAnalysis classDatumAnalysis = connection.getClassDatumAnalysis();
-					List<Node> allSourceNodes = new ArrayList<Node>();
+					List<@NonNull Node> allSourceNodes = new ArrayList<>();
 					Iterables.addAll(allSourceNodes, connection.getSources());
 					for (@NonNull Region loopRegion : loopRegions) {
 						Node sourceNode = connection.getSource(loopRegion);
 						Node targetNode = connection.getTarget(loopRegion);
 						targetNode.removeIncomingConnection(connection);
 						connection.removeTarget(targetNode);
-						Set<Node> selectedSourceNodes = new HashSet<Node>(allSourceNodes);
+						Set<@NonNull Node> selectedSourceNodes = new HashSet<>(allSourceNodes);
 						selectedSourceNodes.remove(sourceNode);
 						NodeConnection loopConection = getNodeConnection(selectedSourceNodes, classDatumAnalysis);
 						loopConection.addPassedTargetNode(targetNode);
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/CyclicScheduledRegion.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/CyclicScheduledRegion.java
index 56cf2d1..8c41edb 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/CyclicScheduledRegion.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/CyclicScheduledRegion.java
@@ -171,7 +171,7 @@
 		//
 		//	Identify the same-typed passed connections to be merged.
 		//
-		Map<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull Set<@NonNull NodeConnection>> classDatumAnalysis2connections = new HashMap<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull Set<@NonNull NodeConnection>>();
+		Map<@NonNull ClassDatumAnalysis, @NonNull Set<@NonNull NodeConnection>> classDatumAnalysis2connections = new HashMap<@NonNull ClassDatumAnalysis, @NonNull Set<@NonNull NodeConnection>>();
 		for (@NonNull Region innerRegion : getRegions()) {
 			for (@NonNull NodeConnection connection : innerRegion.getIncomingPassedConnections()) {
 				ClassDatumAnalysis classDatumAnalysis = connection.getClassDatumAnalysis();
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/OperationRegion.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/OperationRegion.java
index dcd40a0..2fe98cf 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/OperationRegion.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/OperationRegion.java
@@ -90,7 +90,7 @@
 		Iterable<@NonNull List<@NonNull OperationDependencyStep>> hiddenPaths = paths.getHiddenPaths();
 		Iterable<@NonNull List<@NonNull OperationDependencyStep>> returnPaths = paths.getReturnPaths();
 		RootDomainUsageAnalysis domainAnalysis = schedulerConstants.getDomainAnalysis();
-		Map<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull Node> classDatumAnalysis2node = new HashMap<>();
+		Map<@NonNull ClassDatumAnalysis, @NonNull Node> classDatumAnalysis2node = new HashMap<>();
 		for (List<@NonNull OperationDependencyStep> steps : Iterables.concat(returnPaths, hiddenPaths)) {
 			if (steps.size() > 0) {
 				boolean isDirty = false;
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/RootCompositionRegion.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/RootCompositionRegion.java
index 75e917e..075c9f7 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/RootCompositionRegion.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/RootCompositionRegion.java
@@ -20,7 +20,6 @@
 import org.eclipse.ocl.pivot.CompleteEnvironment;
 import org.eclipse.ocl.pivot.Property;
 import org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis;
-import org.eclipse.qvtd.compiler.internal.qvts2qvts.Region2Depth;
 import org.eclipse.qvtd.compiler.internal.utilities.SymbolNameBuilder;
 import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
 import org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder;
@@ -37,13 +36,13 @@
 	 * The introducer node for each consumed ClassDatumAnalysis and for each known container property where the containing property is known.
 	 * The null containing property is used for introducer nodes required to be at the root.
 	 */
-	private final @NonNull Map<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull Map<@Nullable Property, @NonNull Node>> classDatumAnalysis2property2node = new HashMap<>();
+	private final @NonNull Map<@NonNull ClassDatumAnalysis, @NonNull Map<@Nullable Property, @NonNull Node>> classDatumAnalysis2property2node = new HashMap<>();
 
 	/**
 	 * The introducer node for each consumed ClassDatumAnalysis and for each known containing type where the containing property is just oclContainer.
 	 * The null type is used when no containing property or type is known.
 	 */
-	private final @NonNull Map<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull Map<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull Node>> classDatumAnalysis2type2node = new HashMap<>();
+	private final @NonNull Map<@NonNull ClassDatumAnalysis, @NonNull Map<@Nullable ClassDatumAnalysis, @NonNull Node>> classDatumAnalysis2type2node = new HashMap<>();
 
 	protected RootCompositionRegion(@NonNull MultiRegion multiRegion) {
 		super(multiRegion);
@@ -94,7 +93,7 @@
 		//
 		Node introducedNode;
 		if (parent2childProperty == null) {												// No known containment, owned by null type
-			Map<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull Node> type2node = classDatumAnalysis2type2node.get(consumedClassDatumAnalysis);
+			Map<@Nullable ClassDatumAnalysis, @NonNull Node> type2node = classDatumAnalysis2type2node.get(consumedClassDatumAnalysis);
 			if (type2node == null) {
 				type2node = new HashMap<>();
 				classDatumAnalysis2type2node.put(consumedClassDatumAnalysis, type2node);
@@ -119,7 +118,7 @@
 			}
 		}
 		else if (containingClassDatumAnalysis != null) {								// Non-root oclContainer ownership
-			Map<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull Node> type2node = classDatumAnalysis2type2node.get(consumedClassDatumAnalysis);
+			Map<@Nullable ClassDatumAnalysis, @NonNull Node> type2node = classDatumAnalysis2type2node.get(consumedClassDatumAnalysis);
 			if (type2node == null) {
 				type2node = new HashMap<>();
 				classDatumAnalysis2type2node.put(consumedClassDatumAnalysis, type2node);
@@ -171,11 +170,6 @@
 	}
 
 	@Override
-	public boolean isLateMergeable(@NonNull Region innerRegion, @NonNull Region2Depth region2depths) {
-		return false;
-	}
-
-	@Override
 	public boolean isRootCompositionRegion() {
 		return true;
 	}
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/RootScheduledRegion.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/RootScheduledRegion.java
index a298ba8..0f13854 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/RootScheduledRegion.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/RootScheduledRegion.java
@@ -36,7 +36,6 @@
 import org.eclipse.ocl.pivot.utilities.PivotConstants;
 import org.eclipse.ocl.pivot.utilities.PivotUtil;
 import org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis;
-import org.eclipse.qvtd.compiler.internal.qvts2qvts.Region2Depth;
 import org.eclipse.qvtd.compiler.internal.utilities.SymbolNameBuilder;
 import org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder;
 import org.eclipse.qvtd.pivot.qvtcore.analysis.DomainUsage;
@@ -79,7 +78,7 @@
 	/**
 	 * The input models that may introduce model elements for transformation.
 	 */
-	private final @NonNull Map<@NonNull Model, org.eclipse.qvtd.pivot.qvtcore.analysis.DomainUsage> inputModels = new HashMap<@NonNull Model, org.eclipse.qvtd.pivot.qvtcore.analysis.DomainUsage>();
+	private final @NonNull Map<@NonNull Model, @NonNull DomainUsage> inputModels = new HashMap<>();
 
 	/**
 	 * Mapping from each input class to the composite properties that may contain the class or its subclasses.
@@ -91,13 +90,13 @@
 	 *-- relationship is included in every entry since it must be considered as an introducer for every possible
 	 *-- consumption.
 	 */
-	private final @NonNull Map<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull Set<@NonNull Property>> containedClassDatumAnalysis2compositeProperties = new HashMap<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull Set<@NonNull Property>>();
+	private final @NonNull Map<@NonNull ClassDatumAnalysis, @NonNull Set<@NonNull Property>> containedClassDatumAnalysis2compositeProperties = new HashMap<>();
 
 	/**
 	 * The input model classes that may be used as independent inputs by mappings and the nodes at which they are consumed.
 	 * In the worst case a flat schedule just permutes allInstances() to provide all mapping inputs.
 	 */
-	private final @NonNull Map<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull List<@NonNull Node>> consumedClassDatumAnalysis2headNodes = new HashMap<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull List<@NonNull Node>>();
+	private final @NonNull Map<@NonNull ClassDatumAnalysis, @NonNull List<@NonNull Node>> consumedClassDatumAnalysis2headNodes = new HashMap<>();
 
 	/**
 	 * Mapping from each composite property to the classes consumed by mappings and transitive compositions.
@@ -106,22 +105,22 @@
 	 * For simple cases each composition introduces instances of just a single class corresponding to its composed type.
 	 * In more complex cases a composition may also introduce instances of superclasses of its composed type.
 	 */
-	private final @NonNull Map<@NonNull Property, @NonNull Set<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis>> consumedCompositeProperty2introducedClassDatumAnalyses = new HashMap<@NonNull Property, @NonNull Set<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis>>();
+	private final @NonNull Map<@NonNull Property, @NonNull Set<@NonNull ClassDatumAnalysis>> consumedCompositeProperty2introducedClassDatumAnalyses = new HashMap<>();
 
 	/**
 	 * The per-class join nodes that identify all introducers.
 	 */
-	private final @NonNull Map<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull List<@NonNull Node>> introducedClassDatumAnalysis2nodes = new HashMap<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull List<@NonNull Node>>();
+	private final @NonNull Map<@NonNull ClassDatumAnalysis, @NonNull List<@NonNull Node>> introducedClassDatumAnalysis2nodes = new HashMap<>();
 
 	/**
 	 * The Realized Nodes that produce each ClassDatum.
 	 */
-	private final @NonNull Map<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull List<@NonNull Node>> producedClassDatumAnalysis2realizedNodes = new HashMap<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull List<@NonNull Node>>();
+	private final @NonNull Map<@NonNull ClassDatumAnalysis, @NonNull List<@NonNull Node>> producedClassDatumAnalysis2realizedNodes = new HashMap<>();
 
 	/**
 	 * The Realized Edges that produce each PropertyDatum (or its opposite).
 	 */
-	private final @NonNull Map<@NonNull PropertyDatum, @NonNull List<@NonNull NavigableEdge>> producedPropertyDatum2realizedEdges = new HashMap<@NonNull PropertyDatum, @NonNull List<@NonNull NavigableEdge>>();
+	private final @NonNull Map<@NonNull PropertyDatum, @NonNull List<@NonNull NavigableEdge>> producedPropertyDatum2realizedEdges = new HashMap<>();
 
 	private final @NonNull RootCompositionRegion rootContainmentRegion = new RootCompositionRegion(multiRegion);
 
@@ -156,7 +155,7 @@
 
 		for (Edge usedBindingEdge : getUsedBindingEdges()) {
 			if (region2orderingEdge2usedEdges == null) {
-				region2orderingEdge2usedEdges = new HashMap<Region, Map<Edge, Set<Edge>>>();
+				region2orderingEdge2usedEdges = new HashMap<>();
 			}
 			Node targetNode = usedBindingEdge.getTarget();
 //			Iterable<Node> passedBindingSources = targetNode.getUsedBindingSources();
@@ -166,12 +165,12 @@
 					Region commonRegion = orderingEdge.getRegion();
 					Map<Edge, Set<Edge>> orderingEdge2usedEdges = region2orderingEdge2usedEdges.get(commonRegion);
 					if (orderingEdge2usedEdges == null) {
-						orderingEdge2usedEdges = new HashMap<Edge, Set<Edge>>();
+						orderingEdge2usedEdges = new HashMap<>();
 						region2orderingEdge2usedEdges.put(commonRegion, orderingEdge2usedEdges);
 					}
 					Set<Edge> usedEdges = orderingEdge2usedEdges.get(orderingEdge);
 					if (usedEdges == null) {
-						usedEdges = new HashSet<Edge>();
+						usedEdges = new HashSet<>();
 						orderingEdge2usedEdges.put(orderingEdge, usedEdges);
 					}
 					usedEdges.add(usedBindingEdge);
@@ -182,7 +181,7 @@
 		for (Region region : getRegions()) {
 			for (Edge recursionEdge : region.getRecursionEdges()) {
 				if (region2orderingEdge2usedEdges == null) {
-					region2orderingEdge2usedEdges = new HashMap<Region, Map<Edge, Set<Edge>>>();
+					region2orderingEdge2usedEdges = new HashMap<>();
 				}
 				Node targetNode = recursionEdge.getTarget();
 //			Iterable<Node> passedBindingSources = targetNode.getUsedBindingSources();
@@ -196,12 +195,12 @@
 								Region commonRegion = orderingEdge.getRegion();
 								Map<Edge, Set<Edge>> orderingEdge2usedEdges = region2orderingEdge2usedEdges.get(commonRegion);
 								if (orderingEdge2usedEdges == null) {
-									orderingEdge2usedEdges = new HashMap<Edge, Set<Edge>>();
+									orderingEdge2usedEdges = new HashMap<>();
 									region2orderingEdge2usedEdges.put(commonRegion, orderingEdge2usedEdges);
 								}
 								Set<Edge> recursionEdges = orderingEdge2usedEdges.get(orderingEdge);
 								if (recursionEdges == null) {
-									recursionEdges = new HashSet<Edge>();
+									recursionEdges = new HashSet<>();
 									orderingEdge2usedEdges.put(orderingEdge, recursionEdges);
 								}
 								recursionEdges.add(recursionEdge);
@@ -223,7 +222,7 @@
 		ClassDatumAnalysis consumedClassDatumAnalysis = headNode.getClassDatumAnalysis();
 		List<@NonNull Node> nodes = consumedClassDatumAnalysis2headNodes.get(consumedClassDatumAnalysis);
 		if (nodes == null) {
-			nodes = new ArrayList<@NonNull Node>();
+			nodes = new ArrayList<>();
 			consumedClassDatumAnalysis2headNodes.put(consumedClassDatumAnalysis, nodes);
 		}
 		if (!nodes.contains(headNode)) {
@@ -235,7 +234,7 @@
 		ClassDatumAnalysis classDatumAnalysis = getElementalClassDatumAnalysis(introducedNode);
 		List<@NonNull Node> nodes = introducedClassDatumAnalysis2nodes.get(classDatumAnalysis);
 		if (nodes == null) {
-			nodes = new ArrayList<@NonNull Node>();
+			nodes = new ArrayList<>();
 			introducedClassDatumAnalysis2nodes.put(classDatumAnalysis, nodes);
 		}
 		nodes.add(introducedNode);
@@ -252,7 +251,7 @@
 	private void addProducedEdge(@NonNull NavigableEdge producedEdge, @NonNull PropertyDatum propertyDatum) {
 		List<@NonNull NavigableEdge> edges = producedPropertyDatum2realizedEdges.get(propertyDatum);
 		if (edges == null) {
-			edges = new ArrayList<@NonNull NavigableEdge>();
+			edges = new ArrayList<>();
 			producedPropertyDatum2realizedEdges.put(propertyDatum, edges);
 		}
 		if (!edges.contains(producedEdge)) {
@@ -268,7 +267,7 @@
 		for (@NonNull ClassDatumAnalysis superClassDatumAnalysis : classDatumAnalysis.getSuperClassDatumAnalyses()) {
 			List<@NonNull Node> nodes = producedClassDatumAnalysis2realizedNodes.get(superClassDatumAnalysis);
 			if (nodes == null) {
-				nodes = new ArrayList<@NonNull Node>();
+				nodes = new ArrayList<>();
 				producedClassDatumAnalysis2realizedNodes.put(superClassDatumAnalysis, nodes);
 			}
 			nodes.add(producedNode);
@@ -276,7 +275,7 @@
 	}
 
 	/*	private void assignDepths() {
-		Map<Region, Integer> region2depth = new HashMap<Region, Integer>();
+		Map<Region, Integer> region2depth = new HashMap<>();
 		for (Region region : getRegions()) {
 			region.computeDepths(region2depth);
 		}
@@ -443,8 +442,8 @@
 	 * Identify all the containment relationships in the input models.
 	 */
 	private void computeContainedClassDatumAnalysis2compositeProperties() {
-		Map<org.eclipse.ocl.pivot.@NonNull Package, org.eclipse.qvtd.pivot.qvtcore.analysis.DomainUsage> allPackagesSet = new HashMap<org.eclipse.ocl.pivot.@NonNull Package, org.eclipse.qvtd.pivot.qvtcore.analysis.DomainUsage>();
-		List<org.eclipse.ocl.pivot.@NonNull Package> allPackagesList = new ArrayList<org.eclipse.ocl.pivot.@NonNull Package>();
+		Map<org.eclipse.ocl.pivot.@NonNull Package, @NonNull DomainUsage> allPackagesSet = new HashMap<>();
+		List<org.eclipse.ocl.pivot.@NonNull Package> allPackagesList = new ArrayList<>();
 		for (@NonNull Model asModel : inputModels.keySet()) {
 			DomainUsage domainUsage = inputModels.get(asModel);
 			assert domainUsage != null;
@@ -492,7 +491,7 @@
 			}
 		}
 		assert allPackagesSet.size() == allPackagesList.size();
-		assert allPackagesSet.keySet().equals(new HashSet<org.eclipse.ocl.pivot.Package>(allPackagesList));
+		assert allPackagesSet.keySet().equals(new HashSet<>(allPackagesList));
 	}
 
 	private void computeContainedClassDatumAnalysis2compositeProperties3(@NonNull Property asProperty, @NonNull DomainUsage domainUsage) {
@@ -501,7 +500,7 @@
 			ClassDatumAnalysis classDatumAnalysis = getSchedulerConstants().getClassDatumAnalysis((Class) asType, ClassUtil.nonNullState(domainUsage.getTypedModel(null)));
 			Set<@NonNull Property> compositeProperties = containedClassDatumAnalysis2compositeProperties.get(classDatumAnalysis);
 			if (compositeProperties == null) {
-				compositeProperties = new HashSet<@NonNull Property>();
+				compositeProperties = new HashSet<>();
 				containedClassDatumAnalysis2compositeProperties.put(classDatumAnalysis, compositeProperties);
 			}
 			compositeProperties.add(asProperty);
@@ -521,17 +520,17 @@
 		//	Find the composite properties for each consumed class and its super classes, and accumulate
 		//	the container classes of all used properties as additional consumed classes.
 		//
-		Set<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis> allConsumedClassDatumAnalyses = new HashSet<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis>(consumedClassDatumAnalysis2headNodes.keySet());
-		List<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis> allConsumedClassDatumAnalysesList = new ArrayList<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis>(allConsumedClassDatumAnalyses);
+		Set<@NonNull ClassDatumAnalysis> allConsumedClassDatumAnalyses = new HashSet<>(consumedClassDatumAnalysis2headNodes.keySet());
+		List<@NonNull ClassDatumAnalysis> allConsumedClassDatumAnalysesList = new ArrayList<>(allConsumedClassDatumAnalyses);
 		for (int i = 0; i < allConsumedClassDatumAnalysesList.size(); i++) {
 			ClassDatumAnalysis consumedClassDatumAnalysis = allConsumedClassDatumAnalysesList.get(i);
 			for (@NonNull ClassDatumAnalysis consumedSuperClassDatumAnalysis : consumedClassDatumAnalysis.getSuperClassDatumAnalyses()) {
 				Set<@NonNull Property> consumedCompositeProperties = containedClassDatumAnalysis2compositeProperties.get(consumedSuperClassDatumAnalysis);
 				if (consumedCompositeProperties != null) {
 					for (@NonNull Property consumedCompositeProperty : consumedCompositeProperties) {
-						Set<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis> introducedClassDatumAnalyses = consumedCompositeProperty2introducedClassDatumAnalyses.get(consumedCompositeProperty);
+						Set<@NonNull ClassDatumAnalysis> introducedClassDatumAnalyses = consumedCompositeProperty2introducedClassDatumAnalyses.get(consumedCompositeProperty);
 						if (introducedClassDatumAnalyses == null) {
-							introducedClassDatumAnalyses = new HashSet<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis>();
+							introducedClassDatumAnalyses = new HashSet<>();
 							consumedCompositeProperty2introducedClassDatumAnalyses.put(consumedCompositeProperty, introducedClassDatumAnalyses);
 						}
 						introducedClassDatumAnalyses.add(consumedClassDatumAnalysis);
@@ -575,8 +574,8 @@
 		//	Find the composite properties for each consumed class and its super classes, and accumulate
 		//	the container classes of all used properties as additional consumed classes.
 		//
-		Set<ClassDatumAnalysis> allConsumedClassDatumAnalyses = new HashSet<ClassDatumAnalysis>(consumedClassDatumAnalysis2headNodes.keySet());
-		List<ClassDatumAnalysis> allConsumedClassDatumAnalysesList = new ArrayList<ClassDatumAnalysis>(allConsumedClassDatumAnalyses);
+		Set<ClassDatumAnalysis> allConsumedClassDatumAnalyses = new HashSet<>(consumedClassDatumAnalysis2headNodes.keySet());
+		List<ClassDatumAnalysis> allConsumedClassDatumAnalysesList = new ArrayList<>(allConsumedClassDatumAnalyses);
 		for (int i = 0; i < allConsumedClassDatumAnalysesList.size(); i++) {
 			ClassDatumAnalysis consumedClassDatumAnalysis = allConsumedClassDatumAnalysesList.get(i);
 			for (@SuppressWarnings("null")@NonNull ClassDatumAnalysis consumedSuperClassDatumAnalysis : consumedClassDatumAnalysis.getSuperClassDatumAnalyses()) {
@@ -585,13 +584,13 @@
 					for (Property compositeProperty : compositeProperties) {
 						Set<Property> consumedCompositeProperties = consumedClassDatumAnalysis2compositionProperties.get(consumedClassDatumAnalysis);
 						if (consumedCompositeProperties == null) {
-							consumedCompositeProperties = new HashSet<Property>();
+							consumedCompositeProperties = new HashSet<>();
 							consumedClassDatumAnalysis2compositionProperties.put(consumedClassDatumAnalysis, consumedCompositeProperties);
 						}
 						consumedCompositeProperties.add(compositeProperty);
 						Set<ClassDatumAnalysis> introducedClassDatumAnalyses = consumedCompositeProperty2introducedClassDatumAnalyses.get(compositeProperty);
 						if (introducedClassDatumAnalyses == null) {
-							introducedClassDatumAnalyses = new HashSet<ClassDatumAnalysis>();
+							introducedClassDatumAnalyses = new HashSet<>();
 							consumedCompositeProperty2introducedClassDatumAnalyses.put(compositeProperty, introducedClassDatumAnalyses);
 						}
 						introducedClassDatumAnalyses.add(consumedSuperClassDatumAnalysis);
@@ -616,7 +615,7 @@
 					for (Property compositeProperty : entry.getValue()) {
 						Set<ClassDatumAnalysis> introducedClassDatumAnalyses = consumedCompositeProperty2introducedClassDatumAnalyses.get(compositeProperty);
 						if (introducedClassDatumAnalyses == null) {
-							introducedClassDatumAnalyses = new HashSet<ClassDatumAnalysis>();
+							introducedClassDatumAnalyses = new HashSet<>();
 							consumedCompositeProperty2introducedClassDatumAnalyses.put(compositeProperty, introducedClassDatumAnalyses);
 						}
 						introducedClassDatumAnalyses.add(superClassDatumAnalysis);
@@ -658,7 +657,7 @@
 	 * Create the Passed and Used Connections between all introducers and their corresponding consuming nodes.
 	 */
 	private void createConnections() {
-		List<@NonNull Region> sortedCallableRegions = new ArrayList<@NonNull Region>();
+		List<@NonNull Region> sortedCallableRegions = new ArrayList<>();
 		Iterables.addAll(sortedCallableRegions, getCallableRegions());
 		Collections.sort(sortedCallableRegions, NameUtil.NAMEABLE_COMPARATOR);
 		for (Region region : sortedCallableRegions) {
@@ -678,7 +677,7 @@
 	 */
 	private @NonNull RootCompositionRegion createRootContainmentRegion() {
 		//		RootCompositionRegion rootContainmentRegion = new RootCompositionRegion(multiRegion);
-		/*		Set<ClassDatumAnalysis> rootClassDatumAnalyses = new HashSet<ClassDatumAnalysis>();
+		/*		Set<ClassDatumAnalysis> rootClassDatumAnalyses = new HashSet<>();
 		for (Entry<Property, Set<ClassDatumAnalysis>> entry : consumedCompositeProperty2introducedClassDatumAnalyses.entrySet()) {
 			@SuppressWarnings("null")@NonNull Property parent2childrenProperty = entry.getKey();
 			Property childrenToParentProperty = parent2childrenProperty.getOpposite();
@@ -760,7 +759,7 @@
 			else {
 				Set<Property> containments = containedClassDatumAnalysis2compositeProperties.get(consumedClassDatumAnalysis);
 				if (containments != null) {
-					Set<Property> containments2 = new HashSet<Property>();		// FIXME omits independent containers
+					Set<Property> containments2 = new HashSet<>();		// FIXME omits independent containers
 					for (Property property : consumedClassDatumAnalysis.getCompleteClass().getProperties((FeatureFilter)null)) {
 						Property oppositeProperty = property.getOpposite();
 						if ((oppositeProperty != null) && oppositeProperty.isIsComposite() && oppositeProperty.isIsRequired()) {
@@ -864,21 +863,21 @@
 	} */
 
 	/*	private void propagateCommonNavigations(@NonNull Region region, Map<Node, List<Node>> outerNode2outerNodes, @NonNull Map<Region, Map<NavigationEdge, NavigationEdge>> region2innerEdge2outerEdge) {
-//		Map<Node, Set<Node>> node2consumers = new HashMap<Node, Set<Node>>();
+//		Map<Node, Set<Node>> node2consumers = new HashMap<>();
 		for (Node outerNode : region.getNodes()) {
 			for (Edge edge : outerNode.getOutgoingPassedBindingEdges()) {
 				Node innerNode = edge.getTarget();
 				Iterable<Edge> incomingPassedBindingEdges = innerNode.getIncomingPassedBindingEdges();
 				if (Iterables.size(incomingPassedBindingEdges) == 1) {				// FIXME is passing to multi-called regions viable?
-					Map<Node, List<Node>> innerNode2outerNodes = new HashMap<Node, List<Node>>();
+					Map<Node, List<Node>> innerNode2outerNodes = new HashMap<>();
 					for (Map.Entry<Node, List<Node>> entry : outerNode2outerNodes.entrySet()) {
-						innerNode2outerNodes.put(entry.getKey(), new ArrayList<Node>(entry.getValue()));
+						innerNode2outerNodes.put(entry.getKey(), new ArrayList<>(entry.getValue()));
 					}
 					assert outerNode == edge.getSource();
 					List<Node> outerNodes = innerNode2outerNodes.get(innerNode);
 					if (outerNodes == null) {
 						List<Node> outerOuterNodes = outerNode2outerNodes.get(outerNode);
-						outerNodes = outerOuterNodes != null ? new ArrayList<Node>(outerOuterNodes) : new ArrayList<Node>();
+						outerNodes = outerOuterNodes != null ? new ArrayList<>(outerOuterNodes) : new ArrayList<>();
 						innerNode2outerNodes.put(innerNode, outerNodes);
 					}
 					if (!outerNodes.contains(outerNode)) {
@@ -900,7 +899,7 @@
 		Region innerRegion = innerSourceNode.getRegion();
 		Map<NavigationEdge, NavigationEdge> innerEdge2outerEdge = region2innerEdge2outerEdge.get(innerRegion);
 		if (innerEdge2outerEdge == null) {
-			innerEdge2outerEdge = new HashMap<NavigationEdge, NavigationEdge>();
+			innerEdge2outerEdge = new HashMap<>();
 			region2innerEdge2outerEdge.put(innerRegion, innerEdge2outerEdge);
 		}
 		List<Node> outerSourceNodes = innerNode2outerNodes.get(innerSourceNode);
@@ -909,7 +908,7 @@
 			if (innerTargetNode.isClassNode() && !innerEdge.getProperty().isIsMany()) {
 				List<Node> outerTargetNodes = innerNode2outerNodes.get(innerTargetNode);
 				if (outerTargetNodes == null) {
-					outerTargetNodes = new ArrayList<Node>();
+					outerTargetNodes = new ArrayList<>();
 					innerNode2outerNodes.put(innerTargetNode, outerTargetNodes);
 					for (Node outerSourceNode : outerSourceNodes) {
 						NavigationEdge outerEdge = outerSourceNode.getNavigationEdge(innerEdge.getProperty());
@@ -1023,7 +1022,7 @@
 				}
 				if (compositeProperty != null) {
 					if (realizedEdges == null) {
-						realizedEdges = new HashSet<@NonNull NavigableEdge>();
+						realizedEdges = new HashSet<>();
 					}
 					realizedEdges.addAll(entry.getValue());
 				}
@@ -1055,7 +1054,7 @@
 		for (ClassDatumAnalysis aClassDatumAnalysis : introducedClassDatumAnalysis2nodes.keySet()) {		// FIXME cache
 			if (completeClass.conformsTo(aClassDatumAnalysis.getCompleteClass())) {
 				if (introducingNodes == null) {
-					introducingNodes = new ArrayList<Node>();
+					introducingNodes = new ArrayList<>();
 				}
 				introducingNodes.addAll(introducedClassDatumAnalysis2nodes.get(aClassDatumAnalysis));
 			}
@@ -1095,7 +1094,7 @@
 	}
 
 	/*	public @NonNull List<ConnectionRegion> getConnectionRegions(@NonNull Region toRegion) {
-		List<ConnectionRegion> joinRegions = new ArrayList<ConnectionRegion>();
+		List<ConnectionRegion> joinRegions = new ArrayList<>();
 		for (Connection edge : toRegion.getParentPassedConnections()) {
 			Node sourceNode = edge.getSource();
 			ConnectionRegion joinRegion;
@@ -1148,7 +1147,7 @@
 			CompleteClass realizedClass = targetNode.getCompleteClass();
 			if (realizedClass.conformsTo(requiredClass) /*|| realizedClass.conformsTo(requiredClass.getBehavioralClass())*/) {
 				if (conformantRealizedEdges == null) {
-					conformantRealizedEdges = new ArrayList<@NonNull NavigableEdge>();
+					conformantRealizedEdges = new ArrayList<>();
 				}
 				conformantRealizedEdges.add(realizedEdge);
 			}
@@ -1172,10 +1171,10 @@
 		}
 		Map<Set<Node>, Connection> joins = classDatumAnalysis2nodes2connections.get(classDatumAnalysis);
 		if (joins == null) {
-			joins = new HashMap<Set<Node>, Connection>();
+			joins = new HashMap<>();
 			classDatumAnalysis2nodes2connections.put(classDatumAnalysis, joins);
 		}
-		Set<Node> sources = new HashSet<Node>(sourceNodes);
+		Set<Node> sources = new HashSet<>(sourceNodes);
 		Connection joinRegion = joins.get(sources);
 		if (joinRegion != null) {
 			return joinRegion.getConnectionNode();
@@ -1213,11 +1212,6 @@
 	}
 
 	@Override
-	public boolean isLateMergeable(@NonNull Region innerRegion, @NonNull Region2Depth region2depths) {
-		return false;
-	}
-
-	@Override
 	public void toCallGraph(@NonNull GraphStringBuilder s) {
 		s.setLabel(getName());
 		s.pushCluster();
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/analysis/OperationDependencyAnalysis.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/analysis/OperationDependencyAnalysis.java
index 7d1c79d..a3a8500 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/analysis/OperationDependencyAnalysis.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/analysis/OperationDependencyAnalysis.java
@@ -1405,7 +1405,7 @@
 	private final @NonNull Map<@NonNull List<@Nullable Object>, @NonNull BasicDependencyPaths> content2path = new HashMap<>();
 	private final @NonNull BasicDependencyPaths emptyDependencyPaths = createDependencyPaths(null, null);
 	private final @NonNull Map<@NonNull OperationId, @NonNull Map<@NonNull List<@NonNull BasicDependencyPaths>, @NonNull OperationAnalysis>> operation2paths2analysis = new HashMap<>();
-	private final @NonNull Map<org.eclipse.qvtd.pivot.qvtcore.analysis.DomainUsage, @NonNull DependencyStepFactory> usage2factory = new HashMap<>();
+	private final @NonNull Map<@NonNull DomainUsage, @NonNull DependencyStepFactory> usage2factory = new HashMap<>();
 	private final @NonNull ContainmentAnalysis containmentAnalysis;
 	private final @NonNull FinalAnalysis finalAnalysis;
 	protected final @NonNull CompleteClass oclVoidCompleteClass;
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/CyclicScheduledRegion2Mapping.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/CyclicScheduledRegion2Mapping.java
index 480ef7a..9a1d3b2 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/CyclicScheduledRegion2Mapping.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/CyclicScheduledRegion2Mapping.java
@@ -177,7 +177,7 @@
 	/**
 	 * The recursions.
 	 */
-	private final @NonNull Map<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull RecursionContext> classDatumAnalysis2recursion = new HashMap<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull RecursionContext>();
+	private final @NonNull Map<@NonNull ClassDatumAnalysis, @NonNull RecursionContext> classDatumAnalysis2recursion = new HashMap<>();
 
 	/**
 	 * True if all recursions use Set accumulators allowing the unqiueness to be determined by excliusion rather than
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/RootRegion2Mapping.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/RootRegion2Mapping.java
index 3ca8ab6..021a745 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/RootRegion2Mapping.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/RootRegion2Mapping.java
@@ -59,7 +59,7 @@
 	/**
 	 * Mapping from the type to allInstances variable.
 	 */
-	private final @NonNull Map<org.eclipse.qvtd.compiler.internal.qvtp2qvts.analysis.ClassDatumAnalysis, @NonNull DeclareStatement> classDatumAnalysis2variable = new HashMap<>();
+	private final @NonNull Map<@NonNull ClassDatumAnalysis, @NonNull DeclareStatement> classDatumAnalysis2variable = new HashMap<>();
 
 	/**
 	 * Mapping from the scheduled Nodes to their QVTi variables.