Index: src/SynTree/AggregateDecl.cc
===================================================================
--- src/SynTree/AggregateDecl.cc	(revision 32fc0d64b66490b35aeb2dab3a5d1bd42fc784b0)
+++ src/SynTree/AggregateDecl.cc	(revision 5b84a32152bee05661a929ee5e34ad13789a1f84)
@@ -59,5 +59,4 @@
 	} // if
 	os << " with body " << has_body();
-
 	if ( ! parameters.empty() ) {
 		os << endl << indent << "... with parameters" << endl;
@@ -106,4 +105,14 @@
 const char * EnumDecl::typeString() const { return aggrString( Enum ); }
 
+void EnumDecl::print( std::ostream & os, Indenter indent ) const {
+	AggregateDecl::print(os, indent);
+	os << " with base? " << (base? "True" : "False") << std::endl;
+	if ( base ) {
+		os << "Base Type of Enum:" << std::endl;
+		base->print(os, indent);
+	}
+	os <<  std::endl << "End of EnumDecl::print" << std::endl;
+}
+
 const char * TraitDecl::typeString() const { return aggrString( Trait ); }
 
Index: src/SynTree/Declaration.h
===================================================================
--- src/SynTree/Declaration.h	(revision 32fc0d64b66490b35aeb2dab3a5d1bd42fc784b0)
+++ src/SynTree/Declaration.h	(revision 5b84a32152bee05661a929ee5e34ad13789a1f84)
@@ -290,5 +290,5 @@
 	AggregateDecl * set_body( bool body ) { AggregateDecl::body = body; return this; }
 
-	virtual void print( std::ostream & os, Indenter indent = {} ) const override final;
+	virtual void print( std::ostream & os, Indenter indent = {} ) const override;
 	virtual void printShort( std::ostream & os, Indenter indent = {} ) const override;
   protected:
@@ -352,4 +352,5 @@
 	Type * base;
 	std::unordered_map< std::string, long long int > enumValues;
+	virtual void print( std::ostream & os, Indenter indent = {} ) const override final;
   private:
 	// std::unordered_map< std::string, long long int > enumValues;
