Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/CodeGen/CodeGenerator.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -14,26 +14,24 @@
 //
 
-#include <algorithm>
-#include <iostream>
-#include <cassert>
-#include <list>
-
-#include "Parser/ParseNode.h"
-
-#include "SynTree/Declaration.h"
-#include "SynTree/Expression.h"
-#include "SynTree/Initializer.h"
-#include "SynTree/Statement.h"
-#include "SynTree/Type.h"
-#include "SynTree/Attribute.h"
-
-#include "Common/utility.h"
-#include "Common/UnimplementedError.h"
+#include <cassert>                   // for assert, assertf
+#include <list>                      // for _List_iterator, list, list<>::it...
 
 #include "CodeGenerator.h"
-#include "OperatorTable.h"
-#include "GenType.h"
-
-#include "InitTweak/InitTweak.h"
+#include "Common/SemanticError.h"    // for SemanticError
+#include "Common/UniqueName.h"       // for UniqueName
+#include "Common/utility.h"          // for CodeLocation, toString
+#include "GenType.h"                 // for genType
+#include "InitTweak/InitTweak.h"     // for getPointerBase
+#include "OperatorTable.h"           // for OperatorInfo, operatorLookup
+#include "Parser/LinkageSpec.h"      // for Spec, Intrinsic
+#include "SynTree/Attribute.h"       // for Attribute
+#include "SynTree/BaseSyntaxNode.h"  // for BaseSyntaxNode
+#include "SynTree/Constant.h"        // for Constant
+#include "SynTree/Declaration.h"     // for DeclarationWithType, TypeDecl
+#include "SynTree/Expression.h"      // for Expression, UntypedExpr, Applica...
+#include "SynTree/Initializer.h"     // for Initializer, ListInit, Designation
+#include "SynTree/Label.h"           // for Label, operator<<
+#include "SynTree/Statement.h"       // for Statement, AsmStmt, BranchStmt
+#include "SynTree/Type.h"            // for Type, Type::StorageClasses, Func...
 
 using namespace std;
Index: src/CodeGen/CodeGenerator.h
===================================================================
--- src/CodeGen/CodeGenerator.h	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/CodeGen/CodeGenerator.h	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -17,13 +17,11 @@
 #define CODEGENV_H
 
-#include <list>
+#include <list>                   // for list
+#include <ostream>                // for ostream, operator<<
+#include <string>                 // for string
 
-#include "SynTree/Declaration.h"
-#include "SynTree/SynTree.h"
-#include "SynTree/Visitor.h"
-
-#include "SymTab/Indexer.h"
-
-#include "Common/utility.h"
+#include "SynTree/Declaration.h"  // for DeclarationWithType (ptr only), Fun...
+#include "SynTree/Visitor.h"      // for Visitor
+#include "SynTree/SynTree.h"      // for Visitor Nodes
 
 namespace CodeGen {
Index: src/CodeGen/FixMain.cc
===================================================================
--- src/CodeGen/FixMain.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/CodeGen/FixMain.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -5,30 +5,33 @@
 // file "LICENCE" distributed with Cforall.
 //
-// FixMain.cc -- 
+// FixMain.cc --
 //
 // Author           : Thierry Delisle
 // Created On       : Thr Jan 12 14:11:09 2017
-// Last Modified By : 
-// Last Modified On : 
+// Last Modified By :
+// Last Modified On :
 // Update Count     : 0
 //
 
 
-#include "FixMain.h"	
+#include "FixMain.h"
 
-#include <fstream>
-#include <iostream>
+#include <cassert>                 // for assert, assertf
+#include <fstream>                 // for operator<<, basic_ostream::operator<<
+#include <list>                    // for list
+#include <string>                  // for operator<<
 
-#include "Common/SemanticError.h"
-#include "SynTree/Declaration.h"
+#include "Common/SemanticError.h"  // for SemanticError
+#include "SynTree/Declaration.h"   // for FunctionDecl, operator<<
+#include "SynTree/Type.h"          // for FunctionType
 
 namespace CodeGen {
 	bool FixMain::replace_main = false;
 	std::unique_ptr<FunctionDecl> FixMain::main_signature = nullptr;
-	
-	void FixMain::registerMain(FunctionDecl* functionDecl) 
+
+	void FixMain::registerMain(FunctionDecl* functionDecl)
 	{
-		if(main_signature) { 
-			throw SemanticError("Multiple definition of main routine\n", functionDecl); 
+		if(main_signature) {
+			throw SemanticError("Multiple definition of main routine\n", functionDecl);
 		}
 		main_signature.reset( functionDecl->clone() );
Index: src/CodeGen/FixNames.cc
===================================================================
--- src/CodeGen/FixNames.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/CodeGen/FixNames.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -14,13 +14,20 @@
 //
 
-#include <memory>
+#include "FixNames.h"
 
-#include "FixNames.h"
-#include "SynTree/Declaration.h"
-#include "SynTree/Expression.h"
-#include "SynTree/Visitor.h"
-#include "SymTab/Mangler.h"
-#include "OperatorTable.h"
-#include "FixMain.h"
+#include <memory>                  // for unique_ptr
+#include <string>                  // for string, operator!=, operator==
+
+#include "Common/SemanticError.h"  // for SemanticError
+#include "FixMain.h"               // for FixMain
+#include "Parser/LinkageSpec.h"    // for Cforall, isMangled
+#include "SymTab/Mangler.h"        // for Mangler
+#include "SynTree/Constant.h"      // for Constant
+#include "SynTree/Declaration.h"   // for FunctionDecl, ObjectDecl, Declarat...
+#include "SynTree/Expression.h"    // for ConstantExpr
+#include "SynTree/Label.h"         // for Label, noLabels
+#include "SynTree/Statement.h"     // for ReturnStmt, CompoundStmt
+#include "SynTree/Type.h"          // for Type, BasicType, Type::Qualifiers
+#include "SynTree/Visitor.h"       // for Visitor, acceptAll
 
 namespace CodeGen {
@@ -42,5 +49,5 @@
 																   main_type = new FunctionType( Type::Qualifiers(), true ), nullptr )
 				};
-		main_type->get_returnVals().push_back( 
+		main_type->get_returnVals().push_back(
 			new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
 		);
@@ -52,18 +59,18 @@
 	std::string mangle_main_args() {
 		FunctionType* main_type;
-		std::unique_ptr<FunctionDecl> mainDecl { new FunctionDecl( "main", Type::StorageClasses(), LinkageSpec::Cforall, 
+		std::unique_ptr<FunctionDecl> mainDecl { new FunctionDecl( "main", Type::StorageClasses(), LinkageSpec::Cforall,
 																   main_type = new FunctionType( Type::Qualifiers(), false ), nullptr )
 				};
-		main_type->get_returnVals().push_back( 
+		main_type->get_returnVals().push_back(
 			new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
 		);
 
-		mainDecl->get_functionType()->get_parameters().push_back( 
+		mainDecl->get_functionType()->get_parameters().push_back(
 			new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
 		);
 
-		mainDecl->get_functionType()->get_parameters().push_back( 
-			new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, 
-			new PointerType( Type::Qualifiers(), new PointerType( Type::Qualifiers(), new BasicType( Type::Qualifiers(), BasicType::Char ) ) ), 
+		mainDecl->get_functionType()->get_parameters().push_back(
+			new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0,
+			new PointerType( Type::Qualifiers(), new PointerType( Type::Qualifiers(), new BasicType( Type::Qualifiers(), BasicType::Char ) ) ),
 			nullptr )
 		);
@@ -75,6 +82,6 @@
 
 	bool is_main(const std::string& name) {
-		static std::string mains[] = { 
-			mangle_main(), 
+		static std::string mains[] = {
+			mangle_main(),
 			mangle_main_args()
 		};
@@ -112,5 +119,5 @@
 			int nargs = functionDecl->get_functionType()->get_parameters().size();
 			if( !(nargs == 0 || nargs == 2 || nargs == 3) ) {
-				throw SemanticError("Main expected to have 0, 2 or 3 arguments\n", functionDecl); 
+				throw SemanticError("Main expected to have 0, 2 or 3 arguments\n", functionDecl);
 			}
 			functionDecl->get_statements()->get_kids().push_back( new ReturnStmt( noLabels, new ConstantExpr( Constant::from_int( 0 ) ) ) );
Index: src/CodeGen/FixNames.h
===================================================================
--- src/CodeGen/FixNames.h	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/CodeGen/FixNames.h	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -17,5 +17,7 @@
 #define FIXNAMES_H
 
-#include "SynTree/SynTree.h"
+#include <list>  // for list
+
+class Declaration;
 
 namespace CodeGen {
Index: src/CodeGen/GenType.cc
===================================================================
--- src/CodeGen/GenType.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/CodeGen/GenType.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -14,14 +14,14 @@
 //
 
-#include <sstream>
-#include <cassert>
-
+#include <cassert>                // for assert, assertf
+#include <list>                   // for _List_iterator, _List_const_iterator
+#include <sstream>                // for operator<<, ostringstream, basic_os...
+
+#include "CodeGenerator.h"        // for CodeGenerator
 #include "GenType.h"
-#include "CodeGenerator.h"
-
-#include "SynTree/Declaration.h"
-#include "SynTree/Expression.h"
-#include "SynTree/Type.h"
-#include "SynTree/Visitor.h"
+#include "SynTree/Declaration.h"  // for DeclarationWithType
+#include "SynTree/Expression.h"   // for Expression
+#include "SynTree/Type.h"         // for PointerType, Type, FunctionType
+#include "SynTree/Visitor.h"      // for Visitor
 
 namespace CodeGen {
Index: src/CodeGen/GenType.h
===================================================================
--- src/CodeGen/GenType.h	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/CodeGen/GenType.h	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -17,6 +17,7 @@
 #define _GENTYPE_H
 
-#include <string>
-#include "SynTree/SynTree.h"
+#include <string>  // for string
+
+class Type;
 
 namespace CodeGen {
Index: src/CodeGen/Generate.cc
===================================================================
--- src/CodeGen/Generate.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/CodeGen/Generate.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -14,17 +14,15 @@
 //
 
-#include <algorithm>
-#include <iostream>
-#include <cassert>
-#include <list>
+#include <iostream>                  // for ostream, endl, operator<<
+#include <list>                      // for list
+#include <string>                    // for operator<<
 
+#include "CodeGenerator.h"           // for CodeGenerator, doSemicolon, oper...
+#include "GenType.h"                 // for genPrettyType
 #include "Generate.h"
-#include "SynTree/Declaration.h"
-#include "CodeGenerator.h"
-#include "GenType.h"
-#include "SynTree/SynTree.h"
-#include "SynTree/Type.h"
-#include "SynTree/BaseSyntaxNode.h"
-// #include "Tuples/Tuples.h"
+#include "Parser/LinkageSpec.h"      // for isBuiltin, isGeneratable
+#include "SynTree/BaseSyntaxNode.h"  // for BaseSyntaxNode
+#include "SynTree/Declaration.h"     // for Declaration
+#include "SynTree/Type.h"            // for Type
 
 using namespace std;
Index: src/CodeGen/Generate.h
===================================================================
--- src/CodeGen/Generate.h	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/CodeGen/Generate.h	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -17,8 +17,9 @@
 #define GENERATE_H
 
-#include <list>
-#include <iostream>
+#include <iostream>  // for ostream
+#include <list>      // for list
 
-#include "SynTree/SynTree.h"
+class BaseSyntaxNode;
+class Declaration;
 
 namespace CodeGen {
Index: src/CodeGen/OperatorTable.cc
===================================================================
--- src/CodeGen/OperatorTable.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/CodeGen/OperatorTable.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -14,5 +14,7 @@
 //
 
-#include <map>
+#include <map>      // for map, _Rb_tree_const_iterator, map<>::const_iterator
+#include <utility>  // for pair
+
 #include "OperatorTable.h"
 
Index: src/CodeTools/DeclStats.cc
===================================================================
--- src/CodeTools/DeclStats.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/CodeTools/DeclStats.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -16,19 +16,23 @@
 #include "DeclStats.h"
 
-#include <iostream>
-#include <map>
-#include <sstream>
-#include <string>
-#include <unordered_map>
-#include <unordered_set>
-
-#include "Common/VectorMap.h"
-#include "GenPoly/GenPoly.h"
-#include "Parser/LinkageSpec.h"
-#include "SynTree/Declaration.h"
-#include "SynTree/Visitor.h"
+#include <iostream>                // for operator<<, basic_ostream, cout
+#include <map>                     // for map
+#include <string>                  // for string, operator+, operator<<, cha...
+#include <unordered_map>           // for unordered_map
+#include <unordered_set>           // for unordered_set
+#include <utility>                 // for pair, make_pair
+
+#include "Common/SemanticError.h"  // for SemanticError
+#include "Common/VectorMap.h"      // for VectorMap
+#include "GenPoly/GenPoly.h"       // for hasPolyBase
+#include "Parser/LinkageSpec.h"    // for ::NoOfSpecs, Spec
+#include "SynTree/Declaration.h"   // for FunctionDecl, TypeDecl, Declaration
+#include "SynTree/Expression.h"    // for UntypedExpr, Expression
+#include "SynTree/Statement.h"     // for CompoundStmt
+#include "SynTree/Type.h"          // for Type, FunctionType, PointerType
+#include "SynTree/Visitor.h"       // for maybeAccept, Visitor, acceptAll
 
 namespace CodeTools {
-	
+
 	class DeclStats : public Visitor {
 		template<typename T>
@@ -75,9 +79,9 @@
 				sum(n_types, o.n_types);
 				sum(p_new, o.p_new);
-				
+
 				return *this;
 			}
 		};
-		
+
 		struct Stats {
 			unsigned n_decls;     ///< Total number of declarations
@@ -98,5 +102,5 @@
 			/// Stats for the return list
 			ArgPackStats returns;
-			
+
 			/// Count of declarations with each number of assertions
 			std::map<unsigned, unsigned> n_assns;
@@ -105,5 +109,5 @@
 			/// Stats for the assertions' return types
 			ArgPackStats assn_returns;
-			
+
 			Stats() : n_decls(0), n_type_params(), by_name(), basic_type_names(), compound_type_names(), basic_type_decls(), compound_type_decls(), params(), returns(), n_assns(), assn_params(), assn_returns() {}
 
@@ -122,5 +126,5 @@
 				sum( assn_params, o.assn_params );
 				sum( assn_returns, o.assn_returns );
-				
+
 				return *this;
 			}
@@ -144,5 +148,5 @@
 
 				n += dt->size();
-				
+
 				std::stringstream ss;
 				dt->print( ss );
@@ -176,5 +180,5 @@
 			++pstats.n_types.at( types.size() );
 		}
-		
+
 		void analyzeFunc( FunctionType* fnTy, Stats& stats, ArgPackStats& params, ArgPackStats& returns ) {
 			std::unordered_set<std::string> seen;
@@ -186,5 +190,5 @@
 			auto& args = expr->get_args();
 			unsigned fanout = args.size();
-			
+
 			++exprs_by_fanout_at_depth[ std::make_pair(depth, fanout) ];
 			for ( Expression* arg : args ) {
@@ -205,5 +209,5 @@
 				return;
 			}
-			
+
 			Stats& stats = for_linkage[ decl->get_linkage() ];
 
@@ -323,13 +327,13 @@
 		}
 
-		void printPairMap( const std::string& name, 
+		void printPairMap( const std::string& name,
 		                   const std::map<std::pair<unsigned, unsigned>, unsigned>& map ) {
 			for ( const auto& entry : map ) {
 				const auto& key = entry.first;
-				std::cout << "\"" << name << "\"," << key.first << "," << key.second << "," 
+				std::cout << "\"" << name << "\"," << key.first << "," << key.second << ","
 				          << entry.second << std::endl;
 			}
 		}
-		
+
 	public:
 		void print() {
@@ -366,5 +370,5 @@
 		stats.print();
 	}
-	
+
 } // namespace CodeTools
 
Index: src/CodeTools/DeclStats.h
===================================================================
--- src/CodeTools/DeclStats.h	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/CodeTools/DeclStats.h	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -17,5 +17,7 @@
 #define DECLSTATS_H
 
-#include "SynTree/SynTree.h"
+#include <list>  // for list
+
+class Declaration;
 
 namespace CodeTools {
Index: src/CodeTools/TrackLoc.cc
===================================================================
--- src/CodeTools/TrackLoc.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/CodeTools/TrackLoc.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -16,19 +16,20 @@
 #include "TrackLoc.h"
 
-#include <cstdlib>
+#include <cstdlib>                    // for size_t, exit, EXIT_FAILURE
+#include <iostream>                   // for operator<<, ostream, basic_ostream
+#include <iterator>                   // for back_inserter, inserter
+#include <stack>                      // for stack
+#include <string>                     // for operator<<, string
+#include <typeindex>                  // for type_index
 
-#include <iostream>
-#include <sstream>
-#include <stack>
-#include <string>
-#include <typeindex>
+#include "Common/PassVisitor.h"       // for PassVisitor
+#include "Common/PassVisitor.impl.h"  // for acceptAll
+#include "Common/SemanticError.h"     // for SemanticError
+#include "Common/utility.h"           // for CodeLocation
+#include "SynTree/BaseSyntaxNode.h"   // for BaseSyntaxNode
+#include "SynTree/Mutator.h"          // for mutateAll
+#include "SynTree/Visitor.h"          // for acceptAll
 
-#include "Common/utility.h"
-#include "Common/PassVisitor.h"
-#include "Common/VectorMap.h"
-#include "GenPoly/GenPoly.h"
-#include "Parser/LinkageSpec.h"
-#include "SynTree/Declaration.h"
-#include "SynTree/Initializer.h"
+class Declaration;
 
 namespace CodeTools {
Index: src/CodeTools/TrackLoc.h
===================================================================
--- src/CodeTools/TrackLoc.h	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/CodeTools/TrackLoc.h	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -17,5 +17,8 @@
 #define TRACKLOC_H
 
-#include "SynTree/SynTree.h"
+#include <cstddef>   // for size_t
+#include <list>      // for list
+
+class Declaration;
 
 namespace CodeTools {
Index: src/Common/Assert.cc
===================================================================
--- src/Common/Assert.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/Common/Assert.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -14,8 +14,7 @@
 //
 
-#include <assert.h>
-#include <cstdarg>										// varargs
-#include <cstdio>										// fprintf
-#include <cstdlib>										// abort
+#include <cstdarg>  // for va_end, va_list, va_start
+#include <cstdio>   // for fprintf, stderr, vfprintf
+#include <cstdlib>  // for abort
 
 extern const char * __progname;							// global name of running executable (argv[0])
Index: src/Common/SemanticError.cc
===================================================================
--- src/Common/SemanticError.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/Common/SemanticError.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -14,13 +14,12 @@
 //
 
-#include <iostream>
-#include <list>
-#include <string>
-#include <algorithm>
-#include <iterator>
+#include <cstdio>            // for fileno, stderr
+#include <unistd.h>          // for isatty
+#include <iostream>          // for basic_ostream, operator<<, ostream
+#include <list>              // for list, _List_iterator
+#include <string>            // for string, operator<<, operator+, to_string
 
+#include "Common/utility.h"  // for to_string, CodeLocation (ptr only)
 #include "SemanticError.h"
-
-#include <unistd.h>
 
 inline const std::string& error_str() {
Index: src/Common/SemanticError.h
===================================================================
--- src/Common/SemanticError.h	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/Common/SemanticError.h	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -17,11 +17,10 @@
 #define SEMANTICERROR_H
 
-#include <exception>
-#include <string>
-#include <sstream>
-#include <list>
-#include <iostream>
+#include <exception>  // for exception
+#include <iostream>   // for ostream
+#include <list>       // for list
+#include <string>     // for string
 
-#include "utility.h"
+#include "utility.h"  // for CodeLocation, toString
 
 struct error {
Index: src/Concurrency/Keywords.cc
===================================================================
--- src/Concurrency/Keywords.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/Concurrency/Keywords.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -17,12 +17,22 @@
 #include "Concurrency/Keywords.h"
 
-#include "InitTweak/InitTweak.h"
-#include "SymTab/AddVisit.h"
-#include "SynTree/Declaration.h"
-#include "SynTree/Expression.h"
-#include "SynTree/Initializer.h"
-#include "SynTree/Statement.h"
-#include "SynTree/Type.h"
-#include "SynTree/Visitor.h"
+#include <cassert>                 // for assert
+#include <string>                  // for string, operator==
+
+#include "Common/SemanticError.h"  // for SemanticError
+#include "Common/utility.h"        // for deleteAll, map_range
+#include "InitTweak/InitTweak.h"   // for isConstructor
+#include "Parser/LinkageSpec.h"    // for Cforall
+#include "SymTab/AddVisit.h"       // for acceptAndAdd
+#include "SynTree/Constant.h"      // for Constant
+#include "SynTree/Declaration.h"   // for StructDecl, FunctionDecl, ObjectDecl
+#include "SynTree/Expression.h"    // for VariableExpr, ConstantExpr, Untype...
+#include "SynTree/Initializer.h"   // for SingleInit, ListInit, Initializer ...
+#include "SynTree/Label.h"         // for Label
+#include "SynTree/Statement.h"     // for CompoundStmt, DeclStmt, ExprStmt
+#include "SynTree/Type.h"          // for StructInstType, Type, PointerType
+#include "SynTree/Visitor.h"       // for Visitor, acceptAll
+
+class Attribute;
 
 namespace Concurrency {
@@ -322,5 +332,5 @@
 		if( needs_main ) {
 			FunctionType * main_type = new FunctionType( noQualifiers, false );
-			
+
 			main_type->get_parameters().push_back( this_decl->clone() );
 
@@ -361,5 +371,5 @@
 	void ConcurrentSueKeyword::addRoutines( ObjectDecl * field, FunctionDecl * func ) {
 		CompoundStmt * statement = new CompoundStmt( noLabels );
-		statement->push_back( 
+		statement->push_back(
 			new ReturnStmt(
 				noLabels,
@@ -386,5 +396,5 @@
 	//=============================================================================================
 	void MutexKeyword::visit(FunctionDecl* decl) {
-		Visitor::visit(decl);		
+		Visitor::visit(decl);
 
 		std::list<DeclarationWithType*> mutexArgs = findMutexArgs( decl );
@@ -510,5 +520,5 @@
 	void ThreadStarter::visit(FunctionDecl * decl) {
 		Visitor::visit(decl);
-		
+
 		if( ! InitTweak::isConstructor(decl->get_name()) ) return;
 
@@ -528,5 +538,5 @@
 		if( ! stmt ) return;
 
-		stmt->push_back( 
+		stmt->push_back(
 			new ExprStmt(
 				noLabels,
Index: src/Concurrency/Keywords.h
===================================================================
--- src/Concurrency/Keywords.h	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/Concurrency/Keywords.h	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -18,7 +18,7 @@
 #define KEYWORDS_H
 
-#include <list>
+#include <list>  // for list
 
-#include "SynTree/Declaration.h"
+class Declaration;
 
 namespace Concurrency {
Index: src/ControlStruct/ExceptTranslate.cc
===================================================================
--- src/ControlStruct/ExceptTranslate.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/ControlStruct/ExceptTranslate.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -10,6 +10,6 @@
 // Created On       : Wed Jun 14 16:49:00 2017
 // Last Modified By : Andrew Beach
-// Last Modified On : Fri Jun 30 13:30:00 2017
-// Update Count     : 1
+// Last Modified On : Tus Jul 11 16:33:00 2017
+// Update Count     : 2
 //
 
@@ -157,5 +157,5 @@
 	Statement * create_terminate_throw( ThrowStmt *throwStmt ) {
 		// { int NAME = EXPR; __throw_terminate( &NAME ); }
-		return create_given_throw( "__cfaehm__throw_termination", throwStmt );
+		return create_given_throw( "__cfaehm__throw_terminate", throwStmt );
 	}
 	Statement * create_terminate_rethrow( ThrowStmt *throwStmt ) {
@@ -164,5 +164,5 @@
 		Statement * result = new ExprStmt(
 			throwStmt->get_labels(),
-			new UntypedExpr( new NameExpr( "__cfaehm__rethrow_termination" ) )
+			new UntypedExpr( new NameExpr( "__cfaehm__rethrow_terminate" ) )
 			);
 		delete throwStmt;
@@ -171,5 +171,5 @@
 	Statement * create_resume_throw( ThrowStmt *throwStmt ) {
 		// __throw_resume( EXPR );
-		return create_given_throw( "__cfaehm__throw_resumption", throwStmt );
+		return create_given_throw( "__cfaehm__throw_resume", throwStmt );
 	}
 	Statement * create_resume_rethrow( ThrowStmt *throwStmt ) {
Index: src/MakeLibCfa.cc
===================================================================
--- src/MakeLibCfa.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/MakeLibCfa.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -15,12 +15,19 @@
 
 #include "MakeLibCfa.h"
-#include "SynTree/Visitor.h"
-#include "SynTree/Declaration.h"
-#include "SynTree/Type.h"
-#include "SynTree/Expression.h"
-#include "SynTree/Statement.h"
-#include "SynTree/Initializer.h"
-#include "CodeGen/OperatorTable.h"
-#include "Common/UniqueName.h"
+
+#include <cassert>                 // for assert
+#include <string>                   // for operator==, string
+
+#include "CodeGen/OperatorTable.h"  // for OperatorInfo, operatorLookup, Ope...
+#include "Common/SemanticError.h"   // for SemanticError
+#include "Common/UniqueName.h"      // for UniqueName
+#include "Parser/LinkageSpec.h"     // for Spec, Intrinsic, C
+#include "SynTree/Declaration.h"    // for FunctionDecl, ObjectDecl, Declara...
+#include "SynTree/Expression.h"     // for NameExpr, UntypedExpr, VariableExpr
+#include "SynTree/Initializer.h"    // for SingleInit
+#include "SynTree/Label.h"          // for Label
+#include "SynTree/Statement.h"      // for CompoundStmt, ReturnStmt
+#include "SynTree/Type.h"           // for FunctionType
+#include "SynTree/Visitor.h"        // for acceptAll, Visitor
 
 namespace LibCfa {
Index: src/MakeLibCfa.h
===================================================================
--- src/MakeLibCfa.h	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/MakeLibCfa.h	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -17,6 +17,7 @@
 #define LIBCFA_MAKELIBCFA_H
 
-#include <list>
-#include <SynTree/SynTree.h>
+#include <list>  // for list
+
+class Declaration;
 
 namespace LibCfa {
Index: src/Parser/StatementNode.cc
===================================================================
--- src/Parser/StatementNode.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/Parser/StatementNode.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -10,6 +10,6 @@
 // Created On       : Sat May 16 14:59:41 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jun 28 21:08:37 2017
-// Update Count     : 330
+// Last Modified On : Tue Jul 11 21:23:15 2017
+// Update Count     : 331
 //
 
@@ -93,5 +93,5 @@
 	std::list< Statement * > branches;
 	buildMoveList< Statement, StatementNode >( stmt, branches );
-	assert( branches.size() >= 0 );						// size == 0 for switch (...) {}, i.e., no declaration or statements
+	// branches.size() == 0 for switch (...) {}, i.e., no declaration or statements
 	return new SwitchStmt( noLabels, maybeMoveBuild< Expression >(ctl), branches );
 }
Index: src/Parser/lex.ll
===================================================================
--- src/Parser/lex.ll	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/Parser/lex.ll	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -10,6 +10,6 @@
  * Created On       : Sat Sep 22 08:58:10 2001
  * Last Modified By : Peter A. Buhr
- * Last Modified On : Wed Jun 28 21:03:45 2017
- * Update Count     : 529
+ * Last Modified On : Tue Jul 11 21:30:51 2017
+ * Update Count     : 534
  */
 
@@ -59,4 +59,6 @@
 }
 
+// Stop warning due to incorrectly generated flex code.
+#pragma GCC diagnostic ignored "-Wsign-compare"
 %}
 
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/Parser/parser.yy	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Andrew Beach
-// Last Modified On : Fri Jun 30 15:38:00 2017
-// Update Count     : 2415
+// Last Modified On : Tus Jul 11 13:39:00 2017
+// Update Count     : 2416
 //
 
@@ -2176,5 +2176,5 @@
 		{
 			linkageStack.push( linkage );				// handle nested extern "C"/"Cforall"
-			linkage = LinkageSpec::linkageCheck( $2 );
+			linkage = LinkageSpec::linkageUpdate( linkage, $2 );
 		}
 	  '{' external_definition_list_opt '}'
Index: src/benchmark/Makefile.am
===================================================================
--- src/benchmark/Makefile.am	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/benchmark/Makefile.am	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -20,7 +20,7 @@
 CC = @CFA_BINDIR@/@CFA_NAME@
 
-noinst_PROGRAMS = bench ctxswitch-coroutine ctxswitch-thread
+noinst_PROGRAMS = bench$(EXEEXT) ctxswitch-coroutine$(EXEEXT) ctxswitch-thread$(EXEEXT) sched-int$(EXEEXT) monitor$(EXEEXT) csv-data$(EXEEXT)
 
-bench :
+bench$(EXEEXT) :
 	@for ccflags in "-debug" "-nodebug"; do \
 		echo ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -lrt bench.c;\
@@ -30,5 +30,5 @@
 	rm -f ./a.out ;
 
-ctxswitch-coroutine:
+ctxswitch-coroutine$(EXEEXT):
 	${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 CorCtxSwitch.c
 	@for number in 1 2 3 4 5 6 7 8 9 10; do \
@@ -37,5 +37,5 @@
 	@rm -f ./a.out
 
-ctxswitch-thread:
+ctxswitch-thread$(EXEEXT):
 	${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 ThrdCtxSwitch.c
 	@for number in 1 2 3 4 5 6 7 8 9 10; do \
@@ -44,5 +44,5 @@
 	@rm -f ./a.out
 
-sched-int:
+sched-int$(EXEEXT):
 	${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 SchedInt.c
 	@for number in 1 2 3 4 5 6 7 8 9 10; do \
@@ -51,5 +51,5 @@
 	@rm -f ./a.out
 
-monitor:
+monitor$(EXEEXT):
 	${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 Monitor.c
 	@for number in 1 2 3 4 5 6 7 8 9 10; do \
@@ -58,5 +58,5 @@
 	@rm -f ./a.out
 
-csv-data:
+csv-data$(EXEEXT):
 	@${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -quiet -DN=10000000 csv-data.c
 	@./a.out
Index: src/benchmark/Makefile.in
===================================================================
--- src/benchmark/Makefile.in	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/benchmark/Makefile.in	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -92,6 +92,4 @@
 build_triplet = @build@
 host_triplet = @host@
-noinst_PROGRAMS = bench$(EXEEXT) ctxswitch-coroutine$(EXEEXT) \
-	ctxswitch-thread$(EXEEXT)
 subdir = src/benchmark
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -108,4 +106,7 @@
 bench_OBJECTS = bench.$(OBJEXT)
 bench_LDADD = $(LDADD)
+csv_data_SOURCES = csv-data.c
+csv_data_OBJECTS = csv-data.$(OBJEXT)
+csv_data_LDADD = $(LDADD)
 ctxswitch_coroutine_SOURCES = ctxswitch-coroutine.c
 ctxswitch_coroutine_OBJECTS = ctxswitch-coroutine.$(OBJEXT)
@@ -114,4 +115,10 @@
 ctxswitch_thread_OBJECTS = ctxswitch-thread.$(OBJEXT)
 ctxswitch_thread_LDADD = $(LDADD)
+monitor_SOURCES = monitor.c
+monitor_OBJECTS = monitor.$(OBJEXT)
+monitor_LDADD = $(LDADD)
+sched_int_SOURCES = sched-int.c
+sched_int_OBJECTS = sched-int.$(OBJEXT)
+sched_int_LDADD = $(LDADD)
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -142,6 +149,8 @@
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
-SOURCES = bench.c ctxswitch-coroutine.c ctxswitch-thread.c
-DIST_SOURCES = bench.c ctxswitch-coroutine.c ctxswitch-thread.c
+SOURCES = bench.c csv-data.c ctxswitch-coroutine.c ctxswitch-thread.c \
+	monitor.c sched-int.c
+DIST_SOURCES = bench.c csv-data.c ctxswitch-coroutine.c \
+	ctxswitch-thread.c monitor.c sched-int.c
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -293,4 +302,5 @@
 top_srcdir = @top_srcdir@
 AM_CFLAGS = -g -Wall -Wno-unused-function -O2
+noinst_PROGRAMS = bench$(EXEEXT) ctxswitch-coroutine$(EXEEXT) ctxswitch-thread$(EXEEXT) sched-int$(EXEEXT) monitor$(EXEEXT) csv-data$(EXEEXT)
 all: all-am
 
@@ -337,6 +347,9 @@
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bench.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/csv-data.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctxswitch-coroutine.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ctxswitch-thread.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/monitor.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched-int.Po@am__quote@
 
 .c.o:
@@ -559,5 +572,5 @@
 
 
-bench :
+bench$(EXEEXT) :
 	@for ccflags in "-debug" "-nodebug"; do \
 		echo ${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -lrt bench.c;\
@@ -567,5 +580,5 @@
 	rm -f ./a.out ;
 
-ctxswitch-coroutine:
+ctxswitch-coroutine$(EXEEXT):
 	${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 CorCtxSwitch.c
 	@for number in 1 2 3 4 5 6 7 8 9 10; do \
@@ -574,5 +587,5 @@
 	@rm -f ./a.out
 
-ctxswitch-thread:
+ctxswitch-thread$(EXEEXT):
 	${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 ThrdCtxSwitch.c
 	@for number in 1 2 3 4 5 6 7 8 9 10; do \
@@ -581,5 +594,5 @@
 	@rm -f ./a.out
 
-sched-int:
+sched-int$(EXEEXT):
 	${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 SchedInt.c
 	@for number in 1 2 3 4 5 6 7 8 9 10; do \
@@ -588,5 +601,5 @@
 	@rm -f ./a.out
 
-monitor:
+monitor$(EXEEXT):
 	${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=10000000 Monitor.c
 	@for number in 1 2 3 4 5 6 7 8 9 10; do \
@@ -595,5 +608,5 @@
 	@rm -f ./a.out
 
-csv-data:
+csv-data$(EXEEXT):
 	@${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -quiet -DN=10000000 csv-data.c
 	@./a.out
Index: src/include/assert.h
===================================================================
--- src/include/assert.h	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/include/assert.h	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -15,4 +15,6 @@
 
 #pragma once
+// Pragmas for header cleanup tool
+// IWYU pragma: private, include <cassert>
 
 #include_next <assert.h>
Index: src/libcfa/exception.c
===================================================================
--- src/libcfa/exception.c	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/libcfa/exception.c	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -10,6 +10,6 @@
 // Created On       : Mon Jun 26 15:13:00 2017
 // Last Modified By : Andrew Beach
-// Last Modified On : Mon Nov 26 15:11:00 2017
-// Update Count     : 0
+// Last Modified On : Tus Jul 11 16:36:00 2017
+// Update Count     : 1
 //
 
@@ -44,5 +44,5 @@
 // RESUMPTION ================================================================
 
-void __cfaehm__throw_resumption(exception * except) {
+void __cfaehm__throw_resume(exception * except) {
 
 	// DEBUG
@@ -65,5 +65,5 @@
 
 	// Fall back to termination:
-	__cfaehm__throw_termination(except);
+	__cfaehm__throw_terminate(except);
 	// TODO: Default handler for resumption.
 }
@@ -111,5 +111,5 @@
 }
 
-void __cfaehm__throw_termination( exception * val ) {
+void __cfaehm__throw_terminate( exception * val ) {
 	// Store the current exception
 	shared_stack.current_exception = *val;
@@ -147,9 +147,9 @@
 
 // Nesting this the other way would probably be faster.
-void __cfaehm__rethrow_termination(void) {
+void __cfaehm__rethrow_terminate(void) {
 	// DEBUG
 	printf("Rethrowing termination exception\n");
 
-	__cfaehm__throw_termination(&shared_stack.current_exception);
+	__cfaehm__throw_terminate(&shared_stack.current_exception);
 }
 
Index: src/libcfa/exception.h
===================================================================
--- src/libcfa/exception.h	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/libcfa/exception.h	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -10,6 +10,6 @@
 // Created On       : Mon Jun 26 15:11:00 2017
 // Last Modified By : Andrew Beach
-// Last Modified On : Mon Nov 26 15:11:00 2017
-// Update Count     : 0
+// Last Modified On : Tus Jul 11 16:31:00 2017
+// Update Count     : 2
 //
 
@@ -22,11 +22,11 @@
 
 #ifdef __CFORALL__
-extern "BuiltinC" {
+extern "C" {
 #endif
 
 // Used in throw statement translation.
-void __cfaehm__throw_termination(exception * except) __attribute__((noreturn));
-void __cfaehm__rethrow_termination() __attribute__((noreturn));
-void __cfaehm__throw_resumption(exception * except);
+void __cfaehm__throw_terminate(exception * except) __attribute__((noreturn));
+void __cfaehm__rethrow_terminate() __attribute__((noreturn));
+void __cfaehm__throw_resume(exception * except);
 
 // Function catches termination exceptions.
Index: src/main.cc
===================================================================
--- src/main.cc	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
+++ src/main.cc	(revision f73f5f4a43b47e13dccd89c1a9c48780a30c1986)
@@ -15,38 +15,47 @@
 //
 
-#include <iostream>
-#include <fstream>
-#include <signal.h>										// signal
-#include <getopt.h>										// getopt
-#include <execinfo.h>									// backtrace, backtrace_symbols
-#include <cxxabi.h>										// __cxa_demangle
-#include <cstring>										// index
-
-using namespace std;
-
-#include "Parser/ParserTypes.h"
-#include "Parser/TypedefTable.h"
-#include "GenPoly/Lvalue.h"
-#include "GenPoly/Specialize.h"
-#include "GenPoly/Box.h"
-#include "GenPoly/CopyParams.h"
-#include "GenPoly/InstantiateGeneric.h"
-#include "Concurrency/Keywords.h"
-#include "CodeGen/Generate.h"
-#include "CodeGen/FixNames.h"
-#include "CodeGen/FixMain.h"
-#include "CodeTools/DeclStats.h"
-#include "CodeTools/TrackLoc.h"
-#include "ControlStruct/Mutate.h"
-#include "ControlStruct/ExceptTranslate.h"
-#include "SymTab/Validate.h"
-#include "ResolvExpr/AlternativePrinter.h"
-#include "ResolvExpr/Resolver.h"
-#include "MakeLibCfa.h"
-#include "InitTweak/GenInit.h"
-#include "InitTweak/FixInit.h"
-#include "Common/UnimplementedError.h"
-#include "../config.h"
-#include "Tuples/Tuples.h"
+#include <cassert>                          // for assertf
+#include <cxxabi.h>                         // for __cxa_demangle
+#include <execinfo.h>                       // for backtrace, backtrace_symbols
+#include <getopt.h>                         // for no_argument, optind, geto...
+#include <signal.h>                         // for signal, SIGABRT, SIGSEGV
+#include <cstdio>                           // for fopen, FILE, fclose, stdin
+#include <cstdlib>                          // for exit, free, abort, EXIT_F...
+#include <cstring>                          // for index
+#include <fstream>                          // for ofstream
+#include <iostream>                         // for operator<<, basic_ostream
+#include <iterator>                         // for back_inserter
+#include <list>                             // for list
+#include <string>                           // for operator<<, allocator
+
+#include "../config.h"                      // for CFA_LIBDIR
+#include "CodeGen/FixMain.h"                // for FixMain
+#include "CodeGen/FixNames.h"               // for fixNames
+#include "CodeGen/Generate.h"               // for generate
+#include "CodeTools/DeclStats.h"            // for printDeclStats
+#include "CodeTools/TrackLoc.h"             // for fillLocations
+#include "Common/CompilerError.h"           // for CompilerError
+#include "Common/SemanticError.h"           // for SemanticError
+#include "Common/UnimplementedError.h"      // for UnimplementedError
+#include "Common/utility.h"                 // for deleteAll, filter, printAll
+#include "ControlStruct/ExceptTranslate.h"  // for translateEHM
+#include "ControlStruct/Mutate.h"           // for mutate
+#include "GenPoly/Box.h"                    // for box
+#include "GenPoly/CopyParams.h"             // for copyParams
+#include "GenPoly/InstantiateGeneric.h"     // for instantiateGeneric
+#include "GenPoly/Lvalue.h"                 // for convertLvalue
+#include "GenPoly/Specialize.h"             // for convertSpecializations
+#include "InitTweak/FixInit.h"              // for fix
+#include "InitTweak/GenInit.h"              // for genInit
+#include "MakeLibCfa.h"                     // for makeLibCfa
+#include "Parser/LinkageSpec.h"             // for Spec, Cforall, Intrinsic
+#include "Parser/ParseNode.h"               // for DeclarationNode, buildList
+#include "Parser/TypedefTable.h"            // for TypedefTable
+#include "ResolvExpr/AlternativePrinter.h"  // for AlternativePrinter
+#include "ResolvExpr/Resolver.h"            // for resolve
+#include "SymTab/Validate.h"                // for validate
+#include "SynTree/Declaration.h"            // for Declaration
+#include "SynTree/Visitor.h"                // for acceptAll
+#include "Tuples/Tuples.h"                  // for expandMemberTuples, expan...
 
 using namespace std;
