Index: src/AST/Expr.cpp
===================================================================
--- src/AST/Expr.cpp	(revision 893e10686109623f2ba6a53bfd3f6918d203f977)
+++ src/AST/Expr.cpp	(revision 722c4831f024bae10fd8c1d0302463c5927292a4)
@@ -159,17 +159,13 @@
 	assert( aggregate->result );
 
-<<<<<<< HEAD
-	// #warning Needs GenericSubsitution.cpp building to work correctly
-	// result.set_and_mutate( mem->get_type() )->qualifiers |= aggregate->result->qualifiers | CV::Lvalue;  // FIXME temporary patch
-
-	// take ownership of member type
-	result = mem->get_type();
-	// substitute aggregate generic parameters into member type
-	genericSubsitution( aggregate->result ).apply( result );
-	// ensure lvalue and appropriate restrictions from aggregate type
-	result.get_and_mutate()->qualifiers |= aggregate->result->qualifiers | CV::Lvalue;
-=======
-//	assert(!"unimplemented; need TypeSubstitution, genericSubstitution");
->>>>>>> ef5ef56042ce2b547da955746d9986e26cf628ca
+	#warning Needs GenericSubsitution.cpp building to work correctly
+	result.set_and_mutate( mem->get_type() )->qualifiers |= aggregate->result->qualifiers | CV::Lvalue;  // FIXME temporary patch
+
+	// // take ownership of member type
+	// result = mem->get_type();
+	// // substitute aggregate generic parameters into member type
+	// genericSubsitution( aggregate->result ).apply( result );
+	// // ensure lvalue and appropriate restrictions from aggregate type
+	// result.get_and_mutate()->qualifiers |= aggregate->result->qualifiers | CV::Lvalue;
 }
 
Index: src/AST/GenericSubstitution.cpp
===================================================================
--- src/AST/GenericSubstitution.cpp	(revision 893e10686109623f2ba6a53bfd3f6918d203f977)
+++ src/AST/GenericSubstitution.cpp	(revision 722c4831f024bae10fd8c1d0302463c5927292a4)
@@ -31,21 +31,18 @@
 		TypeSubstitution sub;
 
-		const Type * previsit( const Type * ty ) {
+		void previsit( const Type * ty ) {
 			assertf( false, "Attempted generic substitution for non-aggregate type: %s", 
 				toString( ty ).c_str() );
-			return ty;
 		}
 
-		const ReferenceType * previsit( const ReferenceType * ty ) {
+		void previsit( const ReferenceType * ty ) {
 			// do nothing; allows substitution from base type
-			return ty;
 		}
 
-		const ReferenceToType * previsit( const ReferenceToType * ty ) {
+		void previsit( const ReferenceToType * ty ) {
 			visit_children = false;
 			// build substitution from base parameters
 			const AggregateDecl * aggr = ty->aggr();
 			sub = TypeSubstitution{ aggr->params.begin(), aggr->params.end(), ty->params.begin() };
-			return ty;
 		}
 	};
Index: src/AST/module.mk
===================================================================
--- src/AST/module.mk	(revision 893e10686109623f2ba6a53bfd3f6918d203f977)
+++ src/AST/module.mk	(revision 722c4831f024bae10fd8c1d0302463c5927292a4)
@@ -21,5 +21,4 @@
 	AST/DeclReplacer.cpp \
 	AST/Expr.cpp \
-	AST/GenericSubstitution.cpp \
 	AST/Init.cpp \
 	AST/LinkageSpec.cpp \
