diff --git a/src/main/java/de/tla2b/analysis/PredicateVsExpression.java b/src/main/java/de/tla2b/analysis/PredicateVsExpression.java
index a66c5774fe30f5f346496eb2ef2840fbc2882630..2d51b7c18ec33f0f456dc116203fbc636bc9bcea 100644
--- a/src/main/java/de/tla2b/analysis/PredicateVsExpression.java
+++ b/src/main/java/de/tla2b/analysis/PredicateVsExpression.java
@@ -54,8 +54,7 @@ public class PredicateVsExpression extends BuiltInOPs implements ASTConstants,
 		return DefinitionType.EXPRESSION;
 	}
 
-	private DefinitionType visitOppApplNode(OpApplNode s) {
-		OpApplNode opApplNode = (OpApplNode) s;
+	private DefinitionType visitOppApplNode(OpApplNode opApplNode) {
 		int kind = opApplNode.getOperator().getKind();
 
 		if (kind == BuiltInKind) {
@@ -93,7 +92,7 @@ public class PredicateVsExpression extends BuiltInOPs implements ASTConstants,
 			}
 			}
 		} else if (kind == UserDefinedOpKind) {
-			return visitUserdefinedOp(s);
+			return visitUserdefinedOp(opApplNode);
 		}
 		return DefinitionType.EXPRESSION;
 	}
diff --git a/src/main/java/de/tla2b/config/ConfigfileEvaluator.java b/src/main/java/de/tla2b/config/ConfigfileEvaluator.java
index e1675dc755ace0b4e41c3b6aab1c447637aeda7a..e72441c8016361fa97d27f96ac6037be93a612b4 100644
--- a/src/main/java/de/tla2b/config/ConfigfileEvaluator.java
+++ b/src/main/java/de/tla2b/config/ConfigfileEvaluator.java
@@ -309,7 +309,7 @@ public class ConfigfileEvaluator {
 		Hashtable<String, Vect> configCons = configAst.getModConstants();
 		Enumeration<String> moduleNames = configCons.keys();
 		while (moduleNames.hasMoreElements()) {
-			String moduleName = (String) moduleNames.nextElement();
+			String moduleName = moduleNames.nextElement();
 			ModuleNode mNode = searchModule(moduleName);
 			Vect assignments = configCons.get(moduleName);
 			for (int i = 0; i < assignments.size(); i++) {
@@ -437,7 +437,7 @@ public class ConfigfileEvaluator {
 		HashSet<ModuleNode> extendedModules = moduleNode.getExtendedModuleSet();
 		for (Iterator<ModuleNode> iterator = extendedModules.iterator(); iterator
 				.hasNext();) {
-			ModuleNode m = (ModuleNode) iterator.next();
+			ModuleNode m = iterator.next();
 			if (m.getName().toString().equals(moduleName)) {
 				return m;
 			}
@@ -503,8 +503,7 @@ public class ConfigfileEvaluator {
 				for (int i = 0; i < set.size(); i++) {
 					if (set.elems.elementAt(i).getClass().getName()
 							.equals("tlc2.value.ModelValue")) {
-						String mv = ((ModelValue) set.elems.elementAt(i))
-								.toString();
+						String mv = set.elems.elementAt(i).toString();
 						if (!enumeratedSet.contains(mv)) {
 							enumeratedSet.add(mv);
 							e.modelvalues.add(mv);
diff --git a/src/main/java/de/tla2b/config/ModuleOverrider.java b/src/main/java/de/tla2b/config/ModuleOverrider.java
index 198e7b735535ccf941869c24e72658eb886aac2d..5e60dbbb9024cb13932536c06734f15001ad77b6 100644
--- a/src/main/java/de/tla2b/config/ModuleOverrider.java
+++ b/src/main/java/de/tla2b/config/ModuleOverrider.java
@@ -101,7 +101,7 @@ public class ModuleOverrider extends BuiltInOPs implements ASTConstants {
 
 		switch (n.getKind()) {
 		case OpApplKind:
-			return (OpApplNode) visitOpApplNode((OpApplNode) n);
+			return visitOpApplNode((OpApplNode) n);
 
 		case StringKind:
 		case AtNodeKind: // @
diff --git a/src/main/java/de/tla2b/types/StructOrFunctionType.java b/src/main/java/de/tla2b/types/StructOrFunctionType.java
index da143bc0687da4ee57536f18441291ace1f1fa07..992894174753b4131cf217a16bb095def97aeff6 100644
--- a/src/main/java/de/tla2b/types/StructOrFunctionType.java
+++ b/src/main/java/de/tla2b/types/StructOrFunctionType.java
@@ -66,7 +66,7 @@ public class StructOrFunctionType extends AbstractHasFollowers {
 			StructType s = (StructType) o;
 			Iterator<String> thisKeys = types.keySet().iterator();
 			while (thisKeys.hasNext()) {
-				String fieldName = (String) thisKeys.next();
+				String fieldName = thisKeys.next();
 				if (s.getFields().contains(fieldName)) {
 					if (!this.types.get(fieldName)
 							.compare(s.getType(fieldName))) {
@@ -82,7 +82,7 @@ public class StructOrFunctionType extends AbstractHasFollowers {
 
 			Iterator<String> thisKeys = types.keySet().iterator();
 			while (thisKeys.hasNext()) {
-				String fieldName = (String) thisKeys.next();
+				String fieldName = thisKeys.next();
 				if (s.types.containsKey(fieldName)) {
 					if (!this.types.get(fieldName).compare(
 							s.types.get(fieldName))) {
@@ -99,7 +99,7 @@ public class StructOrFunctionType extends AbstractHasFollowers {
 	public boolean contains(TLAType o) {
 		Iterator<String> thisKeys = types.keySet().iterator();
 		while (thisKeys.hasNext()) {
-			String fieldName = (String) thisKeys.next();
+			String fieldName = thisKeys.next();
 			TLAType type = this.types.get(fieldName);
 			if (type.equals(o) || type.contains(o))
 				return true;
diff --git a/src/main/java/de/tla2b/types/StructType.java b/src/main/java/de/tla2b/types/StructType.java
index 7584c03df48ab8ae0657299186f81b0917444d60..b97a85700868c2e414391927c98f6943c9fc8e8b 100644
--- a/src/main/java/de/tla2b/types/StructType.java
+++ b/src/main/java/de/tla2b/types/StructType.java
@@ -73,7 +73,7 @@ public class StructType extends AbstractHasFollowers {
 	public boolean isUntyped() {
 		Iterator<TLAType> ts = types.values().iterator();
 		while (ts.hasNext()) {
-			TLAType bType = (TLAType) ts.next();
+			TLAType bType = ts.next();
 			if (bType.isUntyped())
 				return true;
 		}
@@ -95,7 +95,7 @@ public class StructType extends AbstractHasFollowers {
 
 			Iterator<String> thisKeys = types.keySet().iterator();
 			while (thisKeys.hasNext()) {
-				String fieldName = (String) thisKeys.next();
+				String fieldName = thisKeys.next();
 				if (s.types.containsKey(fieldName)) {
 					if (!this.types.get(fieldName).compare(
 							s.types.get(fieldName))) {
@@ -144,7 +144,7 @@ public class StructType extends AbstractHasFollowers {
 
 			Iterator<String> keys = otherStruct.types.keySet().iterator();
 			while (keys.hasNext()) {
-				String fieldName = (String) keys.next();
+				String fieldName = keys.next();
 				TLAType sType = otherStruct.types.get(fieldName);
 				if (this.types.containsKey(fieldName)) {
 					TLAType res = this.types.get(fieldName).unify(sType);
@@ -184,7 +184,7 @@ public class StructType extends AbstractHasFollowers {
 		ArrayList<String> fields = new ArrayList<String>();
 		Iterator<String> keys = this.types.keySet().iterator();
 		while (keys.hasNext()) {
-			String fieldName = (String) keys.next();
+			String fieldName = keys.next();
 			fields.add(fieldName);
 		}
 		return fields;
@@ -194,7 +194,7 @@ public class StructType extends AbstractHasFollowers {
 	public boolean contains(TLAType o) {
 		Iterator<TLAType> ts = types.values().iterator();
 		while (ts.hasNext()) {
-			TLAType bType = (TLAType) ts.next();
+			TLAType bType = ts.next();
 			if (bType.equals(o) || bType.contains(o))
 				return true;
 		}
@@ -210,7 +210,7 @@ public class StructType extends AbstractHasFollowers {
 			sb.append("...");
 		}
 		while (keys.hasNext()) {
-			String fieldName = (String) keys.next();
+			String fieldName = keys.next();
 			sb.append(fieldName).append(":").append(types.get(fieldName));
 			if (keys.hasNext())
 				sb.append(",");
diff --git a/src/main/java/de/tla2bAst/BAstCreator.java b/src/main/java/de/tla2bAst/BAstCreator.java
index 8dc72c7229c083cca05e23857ed581e608de0d2b..bfbc8ecce8303dc0371cf125488bcf3fd9edeff2 100644
--- a/src/main/java/de/tla2bAst/BAstCreator.java
+++ b/src/main/java/de/tla2bAst/BAstCreator.java
@@ -677,7 +677,7 @@ public class BAstCreator extends BuiltInOPs
 			}
 			// PExpression base = visitExprNodeExpression(at.getAtBase());
 			PExpression base = (PExpression) at.getExceptComponentRef().getToolObject(EXCEPT_BASE);
-			return evalAtNode(list, type, (PExpression) base.clone());
+			return evalAtNode(list, type, base.clone());
 		}
 		case LetInKind: {
 			LetInNode letInNode = (LetInNode) exprNode;
@@ -1738,7 +1738,7 @@ public class BAstCreator extends BuiltInOPs
 					}
 
 					pair.setToolObject(EXCEPT_BASE, res.clone());
-					res = evalExceptValue((PExpression) res.clone(), seqList, structType, val);
+					res = evalExceptValue(res.clone(), seqList, structType, val);
 				}
 				return res;
 
@@ -1759,7 +1759,7 @@ public class BAstCreator extends BuiltInOPs
 					}
 
 					pair.setToolObject(EXCEPT_BASE, res.clone());
-					res = evalExceptValue((PExpression) res.clone(), seqList, func, val);
+					res = evalExceptValue(res.clone(), seqList, func, val);
 				}
 				return res;
 			}
@@ -1843,7 +1843,7 @@ public class BAstCreator extends BuiltInOPs
 
 				PExpression value = null;
 				ARecordFieldExpression select = new ARecordFieldExpression();
-				select.setRecord((PExpression) prefix.clone());
+				select.setRecord(prefix.clone());
 				select.setIdentifier(createIdentifierNode(fieldName));
 				if (fieldName.equals(field)) {
 					value = evalExceptValue(select, seqList, structType.getType(fieldName), val);
@@ -1876,7 +1876,7 @@ public class BAstCreator extends BuiltInOPs
 			setList.add(couple);
 			ASetExtensionExpression setExtension = new ASetExtensionExpression(setList);
 			AOverwriteExpression overwrite = new AOverwriteExpression();
-			overwrite.setLeft((PExpression) prefix.clone());
+			overwrite.setLeft(prefix.clone());
 			overwrite.setRight(setExtension);
 			return overwrite;
 		}