Index: src/ResolvExpr/CurrentObject.cc
===================================================================
--- src/ResolvExpr/CurrentObject.cc	(revision cbce2727f642c2a177c82c045248ba1923699527)
+++ src/ResolvExpr/CurrentObject.cc	(revision 0720e0491a93fec9fc95f4daaaa1652d4955d613)
@@ -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 cbce2727f642c2a177c82c045248ba1923699527)
+++ src/ResolvExpr/CurrentObject.h	(revision 0720e0491a93fec9fc95f4daaaa1652d4955d613)
@@ -24,4 +24,5 @@
 	class MemberIterator;
 
+	// TODO: memory management of MemberIterators
 	class CurrentObject {
 	public:
