Index: src/SynTree/Type.cc
===================================================================
--- src/SynTree/Type.cc	(revision 47498bd8cd902a113be9b4b17ce98ecbdcaea509)
+++ src/SynTree/Type.cc	(revision c194661e377fb587400b93fef5a817d3d77ac641)
@@ -106,18 +106,22 @@
 
 
-QualifiedType::QualifiedType( const Type::Qualifiers & tq, const std::list< Type * > & types ) : Type( tq, {} ), types( types ) {
+QualifiedType::QualifiedType( const Type::Qualifiers & tq, Type * parent, Type * child ) : Type( tq, {} ), parent( parent ), child( child ) {
 }
 
-QualifiedType::QualifiedType( const QualifiedType & other ) : Type( other ) {
-	cloneAll( other.types, types );
+QualifiedType::QualifiedType( const QualifiedType & other ) : Type( other ), parent( maybeClone( other.parent ) ), child( maybeClone( other.child ) ) {
 }
 
 QualifiedType::~QualifiedType() {
-	deleteAll( types );
+	delete parent;
+	delete child;
 }
 
 void QualifiedType::print( std::ostream & os, Indenter indent ) const {
 	os << "Qualified Type: " << endl;
-	printAll( types, os, indent+1 );
+	os << indent+1;
+	parent->print( os, indent+1 );
+	os << endl << indent+1;
+	child->print( os, indent+1 );
+	os << endl;
 	Type::print( os, indent+1 );
 }
Index: src/SynTree/Type.h
===================================================================
--- src/SynTree/Type.h	(revision 47498bd8cd902a113be9b4b17ce98ecbdcaea509)
+++ src/SynTree/Type.h	(revision c194661e377fb587400b93fef5a817d3d77ac641)
@@ -317,7 +317,8 @@
 class QualifiedType : public Type {
 public:
-	std::list<Type *> types;
-
-	QualifiedType( const Type::Qualifiers & tq, const std::list< Type * > & types );
+	Type * parent;
+	Type * child;
+
+	QualifiedType( const Type::Qualifiers & tq, Type * parent, Type * child );
 	QualifiedType( const QualifiedType & tq );
 	virtual ~QualifiedType();
