Index: src/SynTree/ReferenceToType.cc
===================================================================
--- src/SynTree/ReferenceToType.cc	(revision c194661e377fb587400b93fef5a817d3d77ac641)
+++ src/SynTree/ReferenceToType.cc	(revision afcb0a3f35bcecbe54f6ba1e1d0b866ce121fbb6)
@@ -76,5 +76,5 @@
 bool StructInstType::isComplete() const { return baseStruct ? baseStruct->has_body() : false; }
 
-AggregateDecl * StructInstType::getAggr() { return baseStruct; }
+AggregateDecl * StructInstType::getAggr() const { return baseStruct; }
 
 TypeSubstitution StructInstType::genericSubstitution() const {
@@ -119,5 +119,5 @@
 bool UnionInstType::isComplete() const { return baseUnion ? baseUnion->has_body() : false; }
 
-AggregateDecl * UnionInstType::getAggr() { return baseUnion; }
+AggregateDecl * UnionInstType::getAggr() const { return baseUnion; }
 
 TypeSubstitution UnionInstType::genericSubstitution() const {
@@ -152,4 +152,6 @@
 bool EnumInstType::isComplete() const { return baseEnum ? baseEnum->has_body() : false; }
 
+AggregateDecl * EnumInstType::getAggr() const { return baseEnum; }
+
 void EnumInstType::print( std::ostream &os, Indenter indent ) const {
 	using std::endl;
Index: src/SynTree/Type.cc
===================================================================
--- src/SynTree/Type.cc	(revision c194661e377fb587400b93fef5a817d3d77ac641)
+++ src/SynTree/Type.cc	(revision afcb0a3f35bcecbe54f6ba1e1d0b866ce121fbb6)
@@ -129,5 +129,5 @@
 GlobalScopeType::GlobalScopeType() : Type( Type::Qualifiers(), {} ) {}
 
-void GlobalScopeType::print( std::ostream & os, Indenter indent ) const {
+void GlobalScopeType::print( std::ostream & os, Indenter ) const {
 	os << "Global Scope Type" << endl;
 }
Index: src/SynTree/Type.h
===================================================================
--- src/SynTree/Type.h	(revision c194661e377fb587400b93fef5a817d3d77ac641)
+++ src/SynTree/Type.h	(revision afcb0a3f35bcecbe54f6ba1e1d0b866ce121fbb6)
@@ -178,5 +178,5 @@
 	virtual bool isComplete() const { return true; }
 
-	virtual AggregateDecl * getAggr() { assertf( false, "Non-aggregate type: %s", toCString( this ) ); }
+	virtual AggregateDecl * getAggr() const { assertf( false, "Non-aggregate type: %s", toCString( this ) ); }
 
 	virtual TypeSubstitution genericSubstitution() const;
@@ -431,5 +431,5 @@
 	virtual bool isComplete() const override;
 
-	virtual AggregateDecl * getAggr() override;
+	virtual AggregateDecl * getAggr() const override;
 
 	virtual TypeSubstitution genericSubstitution() const override;
@@ -468,5 +468,5 @@
 	virtual bool isComplete() const override;
 
-	virtual AggregateDecl * getAggr() override;
+	virtual AggregateDecl * getAggr() const override;
 
 	virtual TypeSubstitution genericSubstitution() const override;
@@ -500,4 +500,6 @@
 
 	virtual bool isComplete() const override;
+
+	virtual AggregateDecl * getAggr() const;
 
 	virtual EnumInstType *clone() const override { return new EnumInstType( *this ); }
