Index: src/GenPoly/ScrubTyVars.cc
===================================================================
--- src/GenPoly/ScrubTyVars.cc	(revision b18b0b59617aeb385ca202a34147f5e7c3b88d83)
+++ src/GenPoly/ScrubTyVars.cc	(revision ebe9b3a3d574e360214e7e825ea7414a364d9b0e)
@@ -27,5 +27,5 @@
 	Type * ScrubTyVars::mutate( TypeInstType *typeInst ) {
 		TyVarMap::const_iterator tyVar = tyVars.find( typeInst->get_name() );
-		if ( doAll || tyVar != tyVars.end() ) {
+		if ( tyVar != tyVars.end() ) {
 			switch ( tyVar->second ) {
 			  case TypeDecl::Any:
@@ -45,5 +45,5 @@
 
 	Type * ScrubTyVars::mutateAggregateType( Type *ty ) {
-		if ( doAll ? isPolyType( ty ) : isPolyType( ty, tyVars ) ) {
+		if ( isPolyType( ty, tyVars ) ) {
 			PointerType *ret = new PointerType( Type::Qualifiers(), new VoidType( ty->get_qualifiers() ) );
 			delete ty;
@@ -83,5 +83,5 @@
 	Type * ScrubTyVars::mutate( PointerType *pointer ) {
 		if ( TypeInstType *typeInst = dynamic_cast< TypeInstType * >( pointer->get_base() ) ) {
-			if ( doAll || tyVars.find( typeInst->get_name() ) != tyVars.end() ) {
+			if ( tyVars.find( typeInst->get_name() ) != tyVars.end() ) {
 				Type *ret = mutate( typeInst );
 				ret->get_qualifiers() += pointer->get_qualifiers();
Index: src/GenPoly/ScrubTyVars.h
===================================================================
--- src/GenPoly/ScrubTyVars.h	(revision b18b0b59617aeb385ca202a34147f5e7c3b88d83)
+++ src/GenPoly/ScrubTyVars.h	(revision ebe9b3a3d574e360214e7e825ea7414a364d9b0e)
@@ -27,12 +27,10 @@
 	class ScrubTyVars : public Mutator {
 	  public:
-		ScrubTyVars( bool doAll, const TyVarMap &tyVars ): doAll( doAll ), tyVars( tyVars ) {}
+		ScrubTyVars( const TyVarMap &tyVars ): tyVars( tyVars ) {}
 
-		/// Like scrub( SynTreeClass* ), but only applies to type variables in `tyVars`
+		/// For all polymorphic types with type variables in `tyVars`, replaces generic types, dtypes, and ftypes with the appropriate void type,
+		/// and sizeof/alignof expressions with the proper variable
 		template< typename SynTreeClass >
 		static SynTreeClass *scrub( SynTreeClass *target, const TyVarMap &tyVars );
-		/// Replaces dtypes and ftypes with the appropriate void type, and sizeof expressions of polymorphic types with the proper variable
-		template< typename SynTreeClass >
-		static SynTreeClass *scrub( SynTreeClass *target );
 
 		virtual Type* mutate( TypeInstType *typeInst );
@@ -47,5 +45,4 @@
 		Type* mutateAggregateType( Type *ty );
 		
-		bool doAll;
 		const TyVarMap &tyVars;
 	};
@@ -54,15 +51,8 @@
 	template< typename SynTreeClass >
 	SynTreeClass * ScrubTyVars::scrub( SynTreeClass *target, const TyVarMap &tyVars ) {
-		ScrubTyVars scrubber( false, tyVars );
+		ScrubTyVars scrubber( tyVars );
 		return static_cast< SynTreeClass * >( target->acceptMutator( scrubber ) );
 	}
 
-	/* static class method */
-	template< typename SynTreeClass >
-	SynTreeClass * ScrubTyVars::scrub( SynTreeClass *target ) {
-		TyVarMap tyVars;
-		ScrubTyVars scrubber( true, tyVars );
-		return static_cast< SynTreeClass* >( target->acceptMutator( scrubber ) );
-	}
 } // namespace GenPoly
 
