Index: src/AST/Print.cpp
===================================================================
--- src/AST/Print.cpp	(revision 489bacffe28f9f8d2482939a6fe7c0be7d41ff5d)
+++ src/AST/Print.cpp	(revision c957e7f46a4ebf150c4cb6778b8d0053595805bb)
@@ -22,4 +22,5 @@
 #include "TypeSubstitution.hpp"
 
+#include "Common/utility.h"      // for group_iterate
 
 namespace ast {
@@ -475,16 +476,62 @@
 
 	virtual const ast::Designation *      visit( const ast::Designation          * node ) {
+		if ( node->designators.empty() ) return node;
+		os << "... designated by: " << std::endl;
+		++indent;
+		for ( const ast::Expr * d : node->designators ) {
+			os << indent;
+			d->accept( *this );
+			os << std::endl;
+		}
+		--indent;
 		return node;
 	}
 
 	virtual const ast::Init *             visit( const ast::SingleInit           * node ) {
+		os << "Simple Initializer: ";
+		node->value->accept( *this );
 		return node;
 	}
 
 	virtual const ast::Init *             visit( const ast::ListInit             * node ) {
+		os << "Compound initializer: " << std::endl;
+		++indent;
+		for ( auto p : group_iterate( node->designations, node->initializers ) ) {
+			const ast::Designation * d = std::get<0>(p);
+			const ast::Init * init = std::get<1>(p);
+			os << indent;
+			init->accept( *this );
+			os << std::endl;
+			if ( ! d->designators.empty() ) {
+				os << indent;
+				d->accept( *this );
+			}
+		}
+		--indent;
 		return node;
 	}
 
 	virtual const ast::Init *             visit( const ast::ConstructorInit      * node ) {
+		os << "Constructor initializer: " << std::endl;
+		if ( node->ctor ) {
+			os << indent << "... initially constructed with ";
+			++indent;
+			node->ctor->accept( *this );
+			--indent;
+		}
+
+		if ( node->dtor ) {
+			os << indent << "... destructed with ";
+			++indent;
+			node->dtor->accept( *this );
+			--indent;
+		}
+
+		if ( node->init ) {
+			os << indent << "... with fallback C-style initializer: ";
+			++indent;
+			node->init->accept( *this );
+			--indent;
+		}
 		return node;
 	}
