Index: src/SymTab/Mangler.cc
===================================================================
--- src/SymTab/Mangler.cc	(revision e1f7eefc84701acc2af857cd1c484e5650e81cba)
+++ src/SymTab/Mangler.cc	(revision 2f42718dd1dafad85f808eaefd91c3a4c1871b20)
@@ -79,6 +79,6 @@
 
 			  public:
-				Mangler( bool mangleOverridable, bool typeMode, bool mangleGenericParams, 
-					int nextVarNum, const ResolvExpr::TypeEnvironment* env, 
+				Mangler( bool mangleOverridable, bool typeMode, bool mangleGenericParams,
+					int nextVarNum, const ResolvExpr::TypeEnvironment* env,
 					const VarMapType& varNums );
 
@@ -109,5 +109,5 @@
 		}
 
-		std::string mangleAssnKey( DeclarationWithType* decl, 
+		std::string mangleAssnKey( DeclarationWithType* decl,
 				const ResolvExpr::TypeEnvironment& env ) {
 			PassVisitor<Mangler> mangler( env );
@@ -118,17 +118,17 @@
 		namespace {
 			Mangler::Mangler( bool mangleOverridable, bool typeMode, bool mangleGenericParams )
-				: nextVarNum( 0 ), env(nullptr), isTopLevel( true ), 
-				mangleOverridable( mangleOverridable ), typeMode( typeMode ), 
+				: nextVarNum( 0 ), env(nullptr), isTopLevel( true ),
+				mangleOverridable( mangleOverridable ), typeMode( typeMode ),
 				mangleGenericParams( mangleGenericParams ) {}
-			
+
 			Mangler::Mangler( const ResolvExpr::TypeEnvironment& env )
 				: nextVarNum( 0 ), env( &env ), isTopLevel( true ), mangleOverridable( false ),
 				typeMode( false ), mangleGenericParams( true ) {}
-			
-			Mangler::Mangler( bool mangleOverridable, bool typeMode, bool mangleGenericParams, 
-				int nextVarNum, const ResolvExpr::TypeEnvironment* env, 
+
+			Mangler::Mangler( bool mangleOverridable, bool typeMode, bool mangleGenericParams,
+				int nextVarNum, const ResolvExpr::TypeEnvironment* env,
 				const VarMapType& varNums )
-				: varNums( varNums ), nextVarNum( nextVarNum ), env( env ), isTopLevel( false ), 
-				mangleOverridable( mangleOverridable ), typeMode( typeMode ), 
+				: varNums( varNums ), nextVarNum( nextVarNum ), env( env ), isTopLevel( false ),
+				mangleOverridable( mangleOverridable ), typeMode( typeMode ),
 				mangleGenericParams( mangleGenericParams ) {}
 
@@ -207,6 +207,6 @@
 
 			namespace {
-				inline std::list< Type* > getTypes( const std::list< DeclarationWithType* > decls ) {
-					std::list< Type* > ret;
+				inline std::vector< Type* > getTypes( const std::vector< DeclarationWithType* > decls ) {
+					std::vector< Type* > ret;
 					std::transform( decls.begin(), decls.end(), std::back_inserter( ret ),
 									std::mem_fun( &DeclarationWithType::get_type ) );
@@ -223,9 +223,9 @@
 				GuardValue( inFunctionType );
 				inFunctionType = true;
-				std::list< Type* > returnTypes = getTypes( functionType->returnVals );
+				std::vector< Type* > returnTypes = getTypes( functionType->returnVals );
 				if (returnTypes.empty()) mangleName << Encoding::void_t;
 				else acceptAll( returnTypes, *visitor );
 				mangleName << "_";
-				std::list< Type* > paramTypes = getTypes( functionType->parameters );
+				std::vector< Type* > paramTypes = getTypes( functionType->parameters );
 				acceptAll( paramTypes, *visitor );
 				mangleName << "_";
@@ -238,10 +238,10 @@
 
 				if ( mangleGenericParams ) {
-					std::list< Expression* >& params = refType->parameters;
+					std::list< Expression* > & params = refType->parameters;
 					if ( ! params.empty() ) {
 						mangleName << "_";
-						for ( std::list< Expression* >::const_iterator param = params.begin(); param != params.end(); ++param ) {
-							TypeExpr *paramType = dynamic_cast< TypeExpr* >( *param );
-							assertf(paramType, "Aggregate parameters should be type expressions: %s", toCString(*param));
+						for ( auto param : params ) {
+							TypeExpr *paramType = dynamic_cast< TypeExpr* >( param );
+							assertf(paramType, "Aggregate parameters should be type expressions: %s", toCString(param));
 							maybeAccept( paramType->type, *visitor );
 						}
@@ -364,5 +364,5 @@
 							if ( varClass && varClass->type ) {
 								PassVisitor<Mangler> sub_mangler(
-									mangleOverridable, typeMode, mangleGenericParams, nextVarNum, 
+									mangleOverridable, typeMode, mangleGenericParams, nextVarNum,
 									env, varNums );
 								varClass->type->accept( sub_mangler );
@@ -375,9 +375,9 @@
 						}
 						varNums[ (*i)->name ] = std::make_pair( varName, (int)(*i)->get_kind() );
-						for ( std::list< DeclarationWithType* >::iterator assert = (*i)->assertions.begin(); assert != (*i)->assertions.end(); ++assert ) {
-							PassVisitor<Mangler> sub_mangler( 
-								mangleOverridable, typeMode, mangleGenericParams, nextVarNum, env, 
+						for ( auto assert : (*i)->assertions ) {
+							PassVisitor<Mangler> sub_mangler(
+								mangleOverridable, typeMode, mangleGenericParams, nextVarNum, env,
 								varNums );
-							(*assert)->accept( sub_mangler );
+							assert->accept( sub_mangler );
 							assertionNames.push_back( sub_mangler.pass.get_mangleName() );
 							acount++;
