Index: src/GenPoly/Box.cc
===================================================================
--- src/GenPoly/Box.cc	(revision e4719f0e80cb4049b4bb349f27241a040a5f85c6)
+++ src/GenPoly/Box.cc	(revision 2ae171d8401152d8289643ca2935d2f09ce16b41)
@@ -756,5 +756,5 @@
 				Type * newType = arg->get_result()->clone();
 				if ( env ) env->apply( newType );
-				std::auto_ptr<Type> manager( newType );
+				std::unique_ptr<Type> manager( newType );
 				if ( isPolyType( newType ) ) {
 					// if the argument's type is polymorphic, we don't need to box again!
@@ -774,5 +774,5 @@
 					newObj->get_type()->get_qualifiers() = Type::Qualifiers(); // TODO: is this right???
 					stmtsToAdd.push_back( new DeclStmt( noLabels, newObj ) );
-					UntypedExpr *assign = new UntypedExpr( new NameExpr( "?=?" ) );
+					UntypedExpr *assign = new UntypedExpr( new NameExpr( "?=?" ) ); // TODO: why doesn't this just use initialization syntax?
 					assign->get_args().push_back( new VariableExpr( newObj ) );
 					assign->get_args().push_back( arg );
Index: src/SymTab/Indexer.cc
===================================================================
--- src/SymTab/Indexer.cc	(revision e4719f0e80cb4049b4bb349f27241a040a5f85c6)
+++ src/SymTab/Indexer.cc	(revision 2ae171d8401152d8289643ca2935d2f09ce16b41)
@@ -345,5 +345,5 @@
 		leaveScope();
 
-		debugPrint( "Adding context " << aggregateDecl->get_name() << std::endl );
+		debugPrint( "Adding trait " << aggregateDecl->get_name() << std::endl );
 		addTrait( aggregateDecl );
 	}
Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision e4719f0e80cb4049b4bb349f27241a040a5f85c6)
+++ src/SymTab/Validate.cc	(revision 2ae171d8401152d8289643ca2935d2f09ce16b41)
@@ -467,4 +467,6 @@
 			return;
 		}
+
+		// handle other traits
 		TraitDecl *traitDecl = indexer->lookupTrait( traitInst->get_name() );
 		if ( ! traitDecl ) {
