Index: src/Tuples/Explode.cc
===================================================================
--- src/Tuples/Explode.cc	(revision 938dd75cd0a06438ce8f54625e62e2550e7537f0)
+++ src/Tuples/Explode.cc	(revision 68f9c43ecf1873cbb5f06aee682704b56612ed16)
@@ -70,6 +70,5 @@
 				// should now be a tuple of references rather than a reference to a tuple.
 				// Still, this code is a bit awkward, and could use some improvement.
-				UniqueExpr * newUniqueExpr = new UniqueExpr( applyCast( uniqueExpr->get_expr() ), uniqueExpr->get_id() );
-				delete uniqueExpr;
+				UniqueExpr * newUniqueExpr = new UniqueExpr{ applyCast( uniqueExpr->get_expr() ), uniqueExpr->get_id() };
 				if ( castAdded ) {
 					// if a cast was added by applyCast, then unique expr now has one more layer of reference
@@ -88,9 +87,5 @@
 				// field is consistent with the type of the tuple expr, since the field
 				// may have changed from type T to T&.
-				Expression * expr = tupleExpr->get_tuple();
-				tupleExpr->set_tuple( nullptr );
-				TupleIndexExpr * ret = new TupleIndexExpr( expr, tupleExpr->get_index() );
-				delete tupleExpr;
-				return ret;
+				return new TupleIndexExpr{ tupleExpr->get_tuple(), tupleExpr->get_index() };
 			}
 		};
Index: src/Tuples/Explode.h
===================================================================
--- src/Tuples/Explode.h	(revision 938dd75cd0a06438ce8f54625e62e2550e7537f0)
+++ src/Tuples/Explode.h	(revision 68f9c43ecf1873cbb5f06aee682704b56612ed16)
@@ -27,5 +27,5 @@
 namespace SymTab {
 class Indexer;
-}  // namespace SymTab
+}  // namespace SymTabf
 
 namespace Tuples {
@@ -67,5 +67,5 @@
 				for ( ResolvExpr::Alternative & alt : alts ) {
 					// distribute reference cast over all components
-					append( std::forward<Output>(out), distributeReference( alt.release_expr() ),
+					append( std::forward<Output>(out), distributeReference( alt.expr ),
 						alt.env, alt.cost, alt.cvtCost );
 				}
@@ -96,7 +96,5 @@
 					TupleIndexExpr * idx = new TupleIndexExpr( arg->clone(), i );
 					explodeUnique( idx, alt, indexer, std::forward<Output>(out), isTupleAssign );
-					delete idx;
 				}
-				delete arg;
 			}
 		} else {
Index: src/Tuples/TupleExpansion.cc
===================================================================
--- src/Tuples/TupleExpansion.cc	(revision 938dd75cd0a06438ce8f54625e62e2550e7537f0)
+++ src/Tuples/TupleExpansion.cc	(revision 68f9c43ecf1873cbb5f06aee682704b56612ed16)
@@ -45,10 +45,4 @@
 
 			std::map< int, Expression * > decls; // not vector, because order added may not be increasing order
-
-			~UniqueExprExpander() {
-				for ( std::pair<const int, Expression *> & p : decls ) {
-					delete p.second;
-				}
-			}
 		};
 
@@ -111,7 +105,4 @@
 				UntypedMemberExpr * newMemberExpr = new UntypedMemberExpr( memberExpr->member, inner );
 				inner->location = newMemberExpr->location = loc;
-				memberExpr->member = nullptr;
-				memberExpr->aggregate = nullptr;
-				delete memberExpr;
 				return newMemberExpr->acceptMutator( expander );
 			} else {
@@ -135,5 +126,4 @@
 				expr->location = memberExpr->location;
 			}
-			delete aggr;
 			tupleExpr->location = memberExpr->location;
 			return tupleExpr;
@@ -181,5 +171,4 @@
 			decls[id] = condExpr;
 		}
-		delete unqExpr;
 		return decls[id]->clone();
 	}
@@ -191,5 +180,4 @@
 		ret->set_env( assnExpr->get_env() );
 		assnExpr->set_env( nullptr );
-		delete assnExpr;
 		return ret;
 	}
@@ -222,5 +210,4 @@
 			newType->get_parameters().push_back( new TypeExpr( t->clone() ) );
 		}
-		delete tupleType;
 		return newType;
 	}
@@ -233,5 +220,4 @@
 		TypeSubstitution * env = tupleExpr->get_env();
 		tupleExpr->set_env( nullptr );
-		delete tupleExpr;
 
 		StructInstType * type = strict_dynamic_cast< StructInstType * >( tuple->get_result() );
@@ -275,9 +261,6 @@
 		TypeSubstitution * env = tupleExpr->get_env();
 
-		// remove data from shell and delete it
-		tupleExpr->set_result( nullptr );
-		tupleExpr->get_exprs().clear();
+		// remove data from shell
 		tupleExpr->set_env( nullptr );
-		delete tupleExpr;
 
 		return replaceTupleExpr( result, exprs, env );
