Index: src/ResolvExpr/CurrentObject.cc
===================================================================
--- src/ResolvExpr/CurrentObject.cc	(revision 435e75f2bc06bfce0c51b40be5e533c74e895d03)
+++ src/ResolvExpr/CurrentObject.cc	(revision f7cb0bc76af10982d6f4f34f060acc53a8dc27f9)
@@ -19,4 +19,6 @@
 #include "CurrentObject.h"
 
+#include "Common/Indenter.h"
+
 #include "SynTree/Declaration.h"
 #include "SynTree/Initializer.h"
@@ -45,19 +47,4 @@
 			assertf( false, "unhandled type on getConstValue %s", toString( constExpr->get_result() ).c_str() ); // xxx - might be semantic error
 		}
-	}
-
-	struct Indenter {
-		static const int amt = 2;
-		unsigned int indent = 0;
-
-		Indenter & operator+=(int nlevels) { indent += amt*nlevels; return *this; }
-		Indenter & operator-=(int nlevels) { indent -= amt*nlevels; return *this; }
-		Indenter operator+(int nlevels) { Indenter indenter = *this; return indenter += nlevels; }
-		Indenter operator-(int nlevels) { Indenter indenter = *this; return indenter -= nlevels; }
-		Indenter & operator++() { return *this += 1; }
-		Indenter & operator--() { return *this -= 1; }
-	};
-	std::ostream & operator<<( std::ostream & out, Indenter & indent ) {
-		return out << std::string(indent.indent, ' ');
 	}
 
Index: src/ResolvExpr/CurrentObject.h
===================================================================
--- src/ResolvExpr/CurrentObject.h	(revision 435e75f2bc06bfce0c51b40be5e533c74e895d03)
+++ src/ResolvExpr/CurrentObject.h	(revision f7cb0bc76af10982d6f4f34f060acc53a8dc27f9)
@@ -25,4 +25,5 @@
 	class MemberIterator;
 
+	// TODO: memory management of MemberIterators
 	class CurrentObject {
 	public:
