Index: src/ResolvExpr/Resolver.cc
===================================================================
--- src/ResolvExpr/Resolver.cc	(revision 5af7306aa8aedc45c7e1b675f42139b19edd2a7c)
+++ src/ResolvExpr/Resolver.cc	(revision 2efe4b8f0141e181a04fcc0495d13a8c7a0a06b9)
@@ -148,5 +148,5 @@
 			assertf( untyped, "expected a non-null expression." );
 
-			new_generation();  // set up GC young generation for this top-level expression
+			auto guard = new_generation();  // set up GC generation for this top-level expression
 
 			TypeEnvironment env;
@@ -177,5 +177,4 @@
 			findMinCost( candidates.begin(), candidates.end(), back_inserter( winners ) );
 			if ( winners.size() == 0 ) {
-				collect_young();
 				SemanticError( untyped, toString( 
 					"No reasonable alternatives for ", kindStr, (kindStr != "" ? " " : ""), 
@@ -189,5 +188,4 @@
 				printAlts( winners, stream, 1 );
 				
-				collect_young();
 				SemanticError( untyped->location, stream.str() );
 			}
@@ -196,10 +194,10 @@
 			Alternative & choice = winners.front();
 			if ( findDeletedExpr( choice.expr ) ) {
-				collect_young( choice.expr );
+				trace( choice.expr );
 				SemanticError( choice.expr, 
 					"Unique best alternative includes deleted identifier in " );
 			}
 			alt = std::move( choice );
-			collect_young( alt );
+			trace( alt );
 		}
 
