Index: src/ControlStruct/ExceptTranslate.cc
===================================================================
--- src/ControlStruct/ExceptTranslate.cc	(revision 33c4b8189e2a8a06bdfa296cbfb34933f985f048)
+++ src/ControlStruct/ExceptTranslate.cc	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -15,11 +15,25 @@
 
 #include "ExceptTranslate.h"
-#include "Common/PassVisitor.h"
-#include "SynTree/Statement.h"
-#include "SynTree/Declaration.h"
-#include "SynTree/Expression.h"
-#include "SynTree/Type.h"
-#include "SynTree/Attribute.h"
-#include "SynTree/VarExprReplacer.h"
+
+#include <stddef.h>                   // for NULL
+#include <cassert>                    // for assert, assertf
+#include <iterator>                   // for back_inserter, inserter
+#include <string>                     // for string, operator==
+
+#include "Common/PassVisitor.h"       // for PassVisitor, WithGuards
+#include "Common/SemanticError.h"     // for SemanticError
+#include "Common/utility.h"           // for CodeLocation
+#include "Parser/LinkageSpec.h"       // for Cforall
+#include "SynTree/Attribute.h"        // for Attribute
+#include "SynTree/Constant.h"         // for Constant
+#include "SynTree/Declaration.h"      // for ObjectDecl, FunctionDecl, Struc...
+#include "SynTree/Expression.h"       // for UntypedExpr, ConstantExpr, Name...
+#include "SynTree/Initializer.h"      // for SingleInit, ListInit
+#include "SynTree/Label.h"            // for Label, noLabels
+#include "SynTree/Mutator.h"          // for mutateAll
+#include "SynTree/Statement.h"        // for CompoundStmt, CatchStmt, ThrowStmt
+#include "SynTree/Type.h"             // for FunctionType, Type, noQualifiers
+#include "SynTree/VarExprReplacer.h"  // for VarExprReplacer, VarExprReplace...
+#include "SynTree/Visitor.h"          // for acceptAll
 
 namespace ControlStruct {
Index: src/ControlStruct/ExceptTranslate.h
===================================================================
--- src/ControlStruct/ExceptTranslate.h	(revision 33c4b8189e2a8a06bdfa296cbfb34933f985f048)
+++ src/ControlStruct/ExceptTranslate.h	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -16,6 +16,7 @@
 #pragma once
 
-#include <list>
-#include "SynTree/SynTree.h"
+#include <list>  // for list
+
+class Declaration;
 
 namespace ControlStruct {
Index: src/ControlStruct/ForExprMutator.cc
===================================================================
--- src/ControlStruct/ForExprMutator.cc	(revision 33c4b8189e2a8a06bdfa296cbfb34933f985f048)
+++ src/ControlStruct/ForExprMutator.cc	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -14,7 +14,9 @@
 //
 
-#include "SynTree/Mutator.h"
-#include "SynTree/Statement.h"
+#include <list>                 // for list, _List_iterator, list<>::iterator
+
 #include "ForExprMutator.h"
+#include "SynTree/Label.h"      // for Label
+#include "SynTree/Statement.h"  // for Statement (ptr only), ForStmt, Compou...
 
 namespace ControlStruct {
Index: src/ControlStruct/ForExprMutator.h
===================================================================
--- src/ControlStruct/ForExprMutator.h	(revision 33c4b8189e2a8a06bdfa296cbfb34933f985f048)
+++ src/ControlStruct/ForExprMutator.h	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -16,6 +16,6 @@
 #pragma once
 
-#include "SynTree/Mutator.h"
-#include "Common/utility.h"
+class ForStmt;
+class Statement;
 
 namespace ControlStruct {
Index: src/ControlStruct/LabelFixer.cc
===================================================================
--- src/ControlStruct/LabelFixer.cc	(revision 33c4b8189e2a8a06bdfa296cbfb34933f985f048)
+++ src/ControlStruct/LabelFixer.cc	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -14,15 +14,15 @@
 //
 
-#include <list>
-#include <cassert>
+#include <cassert>                         // for assert
+#include <list>                            // for list, _List_iterator, list...
+#include <string>                          // for operator+, string, operator==
+#include <utility>                         // for pair
 
+#include "ControlStruct/LabelGenerator.h"  // for LabelGenerator
 #include "LabelFixer.h"
-#include "MLEMutator.h"
-#include "SynTree/Expression.h"
-#include "SynTree/Statement.h"
-#include "SynTree/Declaration.h"
-#include "Common/utility.h"
-
-#include <iostream>
+#include "MLEMutator.h"                    // for MLEMutator
+#include "SynTree/Declaration.h"           // for FunctionDecl
+#include "SynTree/Expression.h"            // for NameExpr, Expression, Unty...
+#include "SynTree/Statement.h"             // for Statement, BranchStmt, Com...
 
 namespace ControlStruct {
Index: src/ControlStruct/LabelFixer.h
===================================================================
--- src/ControlStruct/LabelFixer.h	(revision 33c4b8189e2a8a06bdfa296cbfb34933f985f048)
+++ src/ControlStruct/LabelFixer.h	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -16,13 +16,16 @@
 #pragma once
 
-#include "Common/utility.h"
-#include "SynTree/SynTree.h"
-#include "SynTree/Visitor.h"
-#include "SynTree/Label.h"
-#include "LabelGenerator.h"
-#include <map>
+#include <list>                    // for list
+#include <map>                     // for map
+
+#include "Common/SemanticError.h"  // for SemanticError
+#include "SynTree/Label.h"         // for Label
+#include "SynTree/Visitor.h"       // for Visitor
+#include "SynTree/SynTree.h"       // for Visitor Nodes
 
 namespace ControlStruct {
 	/// normalizes label definitions and generates multi-level exit labels
+class LabelGenerator;
+
 	class LabelFixer final : public Visitor {
 		typedef Visitor Parent;
Index: src/ControlStruct/LabelGenerator.cc
===================================================================
--- src/ControlStruct/LabelGenerator.cc	(revision 33c4b8189e2a8a06bdfa296cbfb34933f985f048)
+++ src/ControlStruct/LabelGenerator.cc	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -14,11 +14,11 @@
 //
 
-#include <iostream>
-#include <sstream>
+#include <iostream>             // for operator<<, basic_ostream, ostringstream
+#include <list>                 // for list
 
 #include "LabelGenerator.h"
-#include "SynTree/Label.h"
-#include "SynTree/Attribute.h"
-#include "SynTree/Statement.h"
+#include "SynTree/Attribute.h"  // for Attribute
+#include "SynTree/Label.h"      // for Label, operator<<
+#include "SynTree/Statement.h"  // for Statement
 
 namespace ControlStruct {
Index: src/ControlStruct/LabelGenerator.h
===================================================================
--- src/ControlStruct/LabelGenerator.h	(revision 33c4b8189e2a8a06bdfa296cbfb34933f985f048)
+++ src/ControlStruct/LabelGenerator.h	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -16,6 +16,9 @@
 #pragma once
 
-#include "SynTree/SynTree.h"
-#include <string>
+#include <string>           // for string
+
+#include "SynTree/Label.h"  // for Label
+
+class Statement;
 
 namespace ControlStruct {
Index: src/ControlStruct/MLEMutator.cc
===================================================================
--- src/ControlStruct/MLEMutator.cc	(revision 33c4b8189e2a8a06bdfa296cbfb34933f985f048)
+++ src/ControlStruct/MLEMutator.cc	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -20,11 +20,15 @@
 // where these labels are generated.
 
-#include <cassert>
-#include <algorithm>
-
+#include <ext/alloc_traits.h>              // for __alloc_traits<>::value_type
+#include <algorithm>                       // for find, find_if
+#include <cassert>                         // for assert, assertf
+#include <memory>                          // for allocator_traits<>::value_...
+
+#include "Common/utility.h"                // for toString, operator+
+#include "ControlStruct/LabelGenerator.h"  // for LabelGenerator
 #include "MLEMutator.h"
-#include "SynTree/Statement.h"
-#include "SynTree/Expression.h"
-#include "SynTree/Attribute.h"
+#include "SynTree/Attribute.h"             // for Attribute
+#include "SynTree/Expression.h"            // for Expression
+#include "SynTree/Statement.h"             // for BranchStmt, CompoundStmt
 
 namespace ControlStruct {
Index: src/ControlStruct/MLEMutator.h
===================================================================
--- src/ControlStruct/MLEMutator.h	(revision 33c4b8189e2a8a06bdfa296cbfb34933f985f048)
+++ src/ControlStruct/MLEMutator.h	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -16,17 +16,19 @@
 #pragma once
 
-#include <map>
-#include <list>
+#include <list>                    // for list
+#include <map>                     // for map
+#include <string>                  // for string
 
-#include "Common/utility.h"
-#include "SynTree/SynTree.h"
-#include "SynTree/Mutator.h"
-#include "SynTree/Label.h"
-
-#include "LabelGenerator.h"
+#include "Common/SemanticError.h"  // for SemanticError
+#include "SynTree/Label.h"         // for Label
+#include "SynTree/Mutator.h"       // for Mutator
+#include "SynTree/SynTree.h"       // for Visitor Nodes
 
 namespace ControlStruct {
+class LabelGenerator;
+
 	class MLEMutator : public Mutator {
 		class Entry;
+
 		typedef Mutator Parent;
 	  public:
Index: src/ControlStruct/Mutate.cc
===================================================================
--- src/ControlStruct/Mutate.cc	(revision 33c4b8189e2a8a06bdfa296cbfb34933f985f048)
+++ src/ControlStruct/Mutate.cc	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -14,19 +14,18 @@
 //
 
-#include <algorithm>
-#include <iostream>
-#include <cassert>
-#include <list>
+#include <iterator>                // for back_inserter, inserter
+#include <list>                    // for list
 
+#include "Common/SemanticError.h"  // for SemanticError
+#include "ForExprMutator.h"        // for ForExprMutator
+#include "LabelFixer.h"            // for LabelFixer
 #include "Mutate.h"
-#include "LabelFixer.h"
-#include "MLEMutator.h"
-#include "ForExprMutator.h"
+#include "PassVisitor.h"           // for mutateAll
+#include "SynTree/Declaration.h"   // for Declaration
+#include "SynTree/Mutator.h"       // for mutateAll
 //#include "ExceptMutator.h"
 
-#include "Common/utility.h"
-#include "Common/PassVisitor.h"
-
-#include "SynTree/Visitor.h"
+#include "Common/PassVisitor.h"    // for PassVisitor
+#include "SynTree/Visitor.h"       // for acceptAll
 
 using namespace std;
Index: src/ControlStruct/Mutate.h
===================================================================
--- src/ControlStruct/Mutate.h	(revision 33c4b8189e2a8a06bdfa296cbfb34933f985f048)
+++ src/ControlStruct/Mutate.h	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -16,8 +16,7 @@
 #pragma once
 
-#include <list>
-#include <iostream>
+#include <list>  // for list
 
-#include "SynTree/Declaration.h"
+class Declaration;
 
 namespace ControlStruct {
