Index: src/SynTree/Initializer.cc
===================================================================
--- src/SynTree/Initializer.cc	(revision bee06942613823dfa3adc6451bf356922ada830e)
+++ src/SynTree/Initializer.cc	(revision 8d25360e4dfa05035c94eaafd0980fce401b0be7)
@@ -70,5 +70,5 @@
 
 
-ListInit::ListInit( const std::list<Initializer*> &inits, const std::list<Designation *> &des, bool maybeConstructed )
+ListInit::ListInit( const std::vector< Initializer * > &inits, const std::list<Designation *> &des, bool maybeConstructed )
 	: Initializer( maybeConstructed ), initializers( inits ), designations( des ) {
 		// handle the common case where a ListInit is created without designations by making a list of empty designations with the same length as the initializer
Index: src/SynTree/Initializer.h
===================================================================
--- src/SynTree/Initializer.h	(revision bee06942613823dfa3adc6451bf356922ada830e)
+++ src/SynTree/Initializer.h	(revision 8d25360e4dfa05035c94eaafd0980fce401b0be7)
@@ -18,4 +18,5 @@
 #include <iosfwd>            // for ostream
 #include <list>              // for list, list<>::const_iterator, list<>::it...
+#include <vector>
 
 #include "BaseSyntaxNode.h"  // for BaseSyntaxNode
@@ -85,8 +86,8 @@
 class ListInit : public Initializer {
   public:
-	std::list<Initializer *> initializers;  // order *is* important
+	std::vector< Initializer * > initializers;  // order *is* important
 	std::list<Designation *> designations;  // order/length is consistent with initializers
 
-	ListInit( const std::list<Initializer*> &initializers,
+	ListInit( const std::vector< Initializer * > &initializers,
 			  const std::list<Designation *> &designators = {}, bool maybeConstructed = false );
 	ListInit( const ListInit & other );
@@ -94,8 +95,8 @@
 
 	std::list<Designation *> & get_designations() { return designations; }
-	std::list<Initializer *> & get_initializers() { return initializers; }
+	std::vector< Initializer * > & get_initializers() { return initializers; }
 
-	typedef std::list<Initializer*>::iterator iterator;
-	typedef std::list<Initializer*>::const_iterator const_iterator;
+	typedef std::vector< Initializer * >::iterator iterator;
+	typedef std::vector< Initializer * >::const_iterator const_iterator;
 	iterator begin() { return initializers.begin(); }
 	iterator end() { return initializers.end(); }
