Index: src/AST/module.mk
===================================================================
--- src/AST/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/AST/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -17,21 +17,53 @@
 SRC_AST = \
 	AST/AssertAcyclic.cpp \
+	AST/AssertAcyclic.hpp \
 	AST/Attribute.cpp \
+	AST/Attribute.hpp \
+	AST/Bitfield.hpp \
+	AST/Chain.hpp \
 	AST/Convert.cpp \
+	AST/Convert.hpp \
+	AST/Copy.hpp \
+	AST/CVQualifiers.hpp \
 	AST/Decl.cpp \
+	AST/Decl.hpp \
 	AST/DeclReplacer.cpp \
+	AST/DeclReplacer.hpp \
+	AST/Eval.hpp \
 	AST/Expr.cpp \
+	AST/Expr.hpp \
 	AST/ForallSubstitutionTable.cpp \
+	AST/ForallSubstitutionTable.hpp \
+	AST/ForallSubstitutor.hpp \
+	AST/FunctionSpec.hpp \
+	AST/Fwd.hpp \
 	AST/GenericSubstitution.cpp \
+	AST/GenericSubstitution.hpp \
 	AST/Init.cpp \
+	AST/Init.hpp \
+	AST/Label.hpp \
 	AST/LinkageSpec.cpp \
+	AST/LinkageSpec.hpp \
 	AST/Node.cpp \
+	AST/Node.hpp \
+	AST/ParseNode.hpp \
 	AST/Pass.cpp \
+	AST/Pass.hpp \
+	AST/Pass.impl.hpp \
+	AST/Pass.proto.hpp \
 	AST/Print.cpp \
+	AST/Print.hpp \
 	AST/Stmt.cpp \
+	AST/Stmt.hpp \
+	AST/StorageClasses.hpp \
 	AST/SymbolTable.cpp \
+	AST/SymbolTable.hpp \
 	AST/Type.cpp \
+	AST/Type.hpp \
 	AST/TypeEnvironment.cpp \
-	AST/TypeSubstitution.cpp
+	AST/TypeEnvironment.hpp \
+	AST/TypeSubstitution.cpp \
+	AST/TypeSubstitution.hpp \
+	AST/Visitor.hpp
 
 SRC += $(SRC_AST)
Index: src/CodeGen/module.mk
===================================================================
--- src/CodeGen/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/CodeGen/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -20,8 +20,13 @@
 SRC_CODEGEN = \
 	CodeGen/CodeGenerator.cc \
+	CodeGen/CodeGenerator.h \
 	CodeGen/FixMain.cc \
+	CodeGen/FixMain.h \
 	CodeGen/GenType.cc \
-	CodeGen/OperatorTable.cc
+	CodeGen/GenType.h \
+	CodeGen/OperatorTable.cc \
+	CodeGen/OperatorTable.h \
+	CodeGen/Options.h
 
-SRC += $(SRC_CODEGEN) CodeGen/Generate.cc CodeGen/FixNames.cc
+SRC += $(SRC_CODEGEN) CodeGen/Generate.cc CodeGen/Generate.h CodeGen/FixNames.cc CodeGen/FixNames.h
 SRCDEMANGLE += $(SRC_CODEGEN)
Index: src/CodeTools/module.mk
===================================================================
--- src/CodeTools/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/CodeTools/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -15,5 +15,9 @@
 ###############################################################################
 
-SRC += CodeTools/DeclStats.cc \
+SRC += \
+	CodeTools/DeclStats.cc \
+	CodeTools/DeclStats.h \
 	CodeTools/ResolvProtoDump.cc \
-	CodeTools/TrackLoc.cc
+	CodeTools/ResolvProtoDump.h \
+	CodeTools/TrackLoc.cc \
+	CodeTools/TrackLoc.h
Index: src/Common/module.mk
===================================================================
--- src/Common/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/Common/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -17,12 +17,33 @@
 SRC_COMMON = \
       Common/Assert.cc \
+      Common/CodeLocation.h \
+      Common/CompilerError.h \
+      Common/Debug.h \
+      Common/ErrorObjects.h \
       Common/Eval.cc \
+      Common/FilterCombos.h \
+      Common/Indenter.h \
       Common/PassVisitor.cc \
+      Common/PassVisitor.h \
+      Common/PassVisitor.impl.h \
+      Common/PassVisitor.proto.h \
+      Common/PersistentMap.h \
+      Common/ScopedMap.h \
       Common/SemanticError.cc \
+      Common/SemanticError.h \
+      Common/Stats.h \
+      Common/Stats/Base.h \
       Common/Stats/Counter.cc \
+      Common/Stats/Counter.h \
       Common/Stats/Heap.cc \
+      Common/Stats/Heap.h \
       Common/Stats/Stats.cc \
       Common/Stats/Time.cc \
-      Common/UniqueName.cc
+      Common/Stats/Time.h \
+      Common/UnimplementedError.h \
+      Common/UniqueName.cc \
+      Common/UniqueName.h \
+      Common/utility.h \
+      Common/VectorMap.h
 
 SRC += $(SRC_COMMON) Common/DebugMalloc.cc
Index: src/Concurrency/module.mk
===================================================================
--- src/Concurrency/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/Concurrency/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -15,5 +15,5 @@
 ###############################################################################
 
-SRC += Concurrency/Keywords.cc Concurrency/Waitfor.cc
+SRC += Concurrency/Keywords.cc Concurrency/Keywords.h Concurrency/Waitfor.cc Concurrency/Waitfor.h
 SRCDEMANGLE += Concurrency/Keywords.cc
 
Index: src/ControlStruct/module.mk
===================================================================
--- src/ControlStruct/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/ControlStruct/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -17,10 +17,15 @@
 SRC_CONTROLSTRUCT = \
 	ControlStruct/ForExprMutator.cc \
+	ControlStruct/ForExprMutator.h \
 	ControlStruct/LabelFixer.cc \
+	ControlStruct/LabelFixer.h \
 	ControlStruct/LabelGenerator.cc \
+	ControlStruct/LabelGenerator.h \
 	ControlStruct/MLEMutator.cc \
-	ControlStruct/Mutate.cc
+	ControlStruct/MLEMutator.h \
+	ControlStruct/Mutate.cc \
+	ControlStruct/Mutate.h
 
-SRC += $(SRC_CONTROLSTRUCT) ControlStruct/ExceptTranslate.cc
+SRC += $(SRC_CONTROLSTRUCT) ControlStruct/ExceptTranslate.cc ControlStruct/ExceptTranslate.h
 SRCDEMANGLE += $(SRC_CONTROLSTRUCT)
 
Index: src/GenPoly/module.mk
===================================================================
--- src/GenPoly/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/GenPoly/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -16,11 +16,20 @@
 
 SRC += GenPoly/Box.cc \
+       GenPoly/Box.h \
+       GenPoly/ErasableScopedMap.h \
+       GenPoly/FindFunction.cc \
+       GenPoly/FindFunction.h \
        GenPoly/GenPoly.cc \
+       GenPoly/GenPoly.h \
+       GenPoly/InstantiateGeneric.cc \
+       GenPoly/InstantiateGeneric.h \
+       GenPoly/Lvalue.cc \
+       GenPoly/Lvalue.h \
+       GenPoly/ScopedSet.h \
        GenPoly/ScrubTyVars.cc \
-       GenPoly/Lvalue.cc \
+       GenPoly/ScrubTyVars.h \
        GenPoly/Specialize.cc \
-       GenPoly/FindFunction.cc \
-       GenPoly/InstantiateGeneric.cc
+       GenPoly/Specialize.h
 
-SRCDEMANGLE += GenPoly/GenPoly.cc GenPoly/Lvalue.cc
+SRCDEMANGLE += GenPoly/GenPoly.cc GenPoly/GenPoly.h GenPoly/Lvalue.cc GenPoly/Lvalue.h
 
Index: src/InitTweak/module.mk
===================================================================
--- src/InitTweak/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/InitTweak/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -15,10 +15,18 @@
 ###############################################################################
 
-SRC += InitTweak/GenInit.cc \
+SRC += \
+	InitTweak/FixGlobalInit.cc \
+	InitTweak/FixGlobalInit.h \
 	InitTweak/FixInit.cc \
-	InitTweak/FixGlobalInit.cc \
-	InitTweak/InitTweak.cc
+	InitTweak/FixInit.h \
+	InitTweak/GenInit.cc \
+	InitTweak/GenInit.h \
+	InitTweak/InitTweak.cc \
+	InitTweak/InitTweak.h
 
-SRCDEMANGLE += InitTweak/GenInit.cc \
-	InitTweak/InitTweak.cc
+SRCDEMANGLE += \
+	InitTweak/GenInit.cc \
+	InitTweak/GenInit.h \
+	InitTweak/InitTweak.cc \
+	InitTweak/InitTweak.h
 
Index: src/Makefile.am
===================================================================
--- src/Makefile.am	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/Makefile.am	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -20,6 +20,8 @@
 
 SRC = main.cc \
+      CompilationState.cc \
+      CompilationState.h \
       MakeLibCfa.cc \
-      CompilationState.cc
+	MakeLibCfa.h
 
 SRCDEMANGLE = CompilationState.cc
@@ -66,4 +68,5 @@
 ___driver_cfa_cpp_SOURCES = $(SRC)
 ___driver_cfa_cpp_LDADD = -ldl $(LIBPROFILER) $(LIBTCMALLOC)
+EXTRA_DIST = include/cassert include/optional
 
 AM_CXXFLAGS = @HOST_FLAGS@ -Wno-deprecated -Wall -Wextra -DDEBUG_ALL -I./Parser -I$(srcdir)/Parser -I$(srcdir)/include -DYY_NO_INPUT -O3 -g -std=c++14 $(TCMALLOCFLAG)
Index: src/Parser/module.mk
===================================================================
--- src/Parser/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/Parser/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -23,11 +23,16 @@
        Parser/ExpressionNode.cc \
        Parser/InitializerNode.cc \
+       Parser/lex.ll \
        Parser/ParseNode.cc \
+       Parser/ParseNode.h \
+       Parser/parser.yy \
+       Parser/ParserTypes.h \
+       Parser/parserutility.cc \
+       Parser/parserutility.h \
        Parser/StatementNode.cc \
        Parser/TypeData.cc \
+       Parser/TypeData.h \
        Parser/TypedefTable.cc \
-       Parser/lex.ll \
-       Parser/parser.yy \
-       Parser/parserutility.cc
+       Parser/TypedefTable.h
 
 MOSTLYCLEANFILES += Parser/lex.cc Parser/parser.cc Parser/parser.hh Parser/parser.output
Index: src/ResolvExpr/module.mk
===================================================================
--- src/ResolvExpr/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/ResolvExpr/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -19,13 +19,23 @@
       ResolvExpr/Alternative.cc \
       ResolvExpr/AlternativeFinder.cc \
+      ResolvExpr/AlternativeFinder.h \
+      ResolvExpr/Alternative.h \
       ResolvExpr/Candidate.cpp \
       ResolvExpr/CandidateFinder.cpp \
+      ResolvExpr/CandidateFinder.hpp \
+      ResolvExpr/Candidate.hpp \
       ResolvExpr/CastCost.cc \
       ResolvExpr/CommonType.cc \
       ResolvExpr/ConversionCost.cc \
+      ResolvExpr/ConversionCost.h \
+      ResolvExpr/Cost.h \
       ResolvExpr/CurrentObject.cc \
+      ResolvExpr/CurrentObject.h \
       ResolvExpr/ExplodedActual.cc \
+      ResolvExpr/ExplodedActual.h \
       ResolvExpr/ExplodedArg.cpp \
+      ResolvExpr/ExplodedArg.hpp \
       ResolvExpr/FindOpenVars.cc \
+      ResolvExpr/FindOpenVars.h \
       ResolvExpr/Occurs.cc \
       ResolvExpr/PolyCost.cc \
@@ -33,12 +43,23 @@
       ResolvExpr/PtrsCastable.cc \
       ResolvExpr/RenameVars.cc \
+      ResolvExpr/RenameVars.h \
       ResolvExpr/ResolveAssertions.cc \
+      ResolvExpr/ResolveAssertions.h \
       ResolvExpr/Resolver.cc \
+      ResolvExpr/Resolver.h \
       ResolvExpr/ResolveTypeof.cc \
+      ResolvExpr/ResolveTypeof.h \
+      ResolvExpr/ResolvMode.h \
       ResolvExpr/SatisfyAssertions.cpp \
+      ResolvExpr/SatisfyAssertions.hpp \
       ResolvExpr/SpecCost.cc \
       ResolvExpr/TypeEnvironment.cc \
-      ResolvExpr/Unify.cc
+      ResolvExpr/TypeEnvironment.h \
+      ResolvExpr/typeops.h \
+      ResolvExpr/Unify.cc \
+      ResolvExpr/Unify.h \
+      ResolvExpr/WidenMode.h
 
-SRC += $(SRC_RESOLVEXPR) ResolvExpr/AlternativePrinter.cc
+
+SRC += $(SRC_RESOLVEXPR) ResolvExpr/AlternativePrinter.cc ResolvExpr/AlternativePrinter.h
 SRCDEMANGLE += $(SRC_RESOLVEXPR)
Index: src/SymTab/module.mk
===================================================================
--- src/SymTab/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/SymTab/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -17,9 +17,14 @@
 SRC_SYMTAB = \
       SymTab/Autogen.cc \
+      SymTab/Autogen.h \
       SymTab/FixFunction.cc \
+      SymTab/FixFunction.h \
       SymTab/Indexer.cc \
+      SymTab/Indexer.h \
       SymTab/Mangler.cc \
       SymTab/ManglerCommon.cc \
-      SymTab/Validate.cc
+      SymTab/Mangler.h \
+      SymTab/Validate.cc \
+      SymTab/Validate.h
 
 SRC += $(SRC_SYMTAB)
Index: src/SynTree/module.mk
===================================================================
--- src/SynTree/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/SynTree/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -20,19 +20,29 @@
       SynTree/ApplicationExpr.cc \
       SynTree/ArrayType.cc \
+      SynTree/Attribute.cc \
+      SynTree/Attribute.h \
       SynTree/AttrType.cc \
-      SynTree/Attribute.cc \
+      SynTree/BaseSyntaxNode.h \
       SynTree/BasicType.cc \
       SynTree/CommaExpr.cc \
       SynTree/CompoundStmt.cc \
       SynTree/Constant.cc \
+      SynTree/Constant.h \
+      SynTree/Declaration.cc \
+      SynTree/Declaration.h \
+      SynTree/DeclarationWithType.cc \
       SynTree/DeclReplacer.cc \
+      SynTree/DeclReplacer.h \
       SynTree/DeclStmt.cc \
-      SynTree/Declaration.cc \
-      SynTree/DeclarationWithType.cc \
       SynTree/Expression.cc \
+      SynTree/Expression.h \
       SynTree/FunctionDecl.cc \
       SynTree/FunctionType.cc \
       SynTree/Initializer.cc \
+      SynTree/Initializer.h \
+      SynTree/Label.h \
       SynTree/LinkageSpec.cc \
+      SynTree/LinkageSpec.h \
+      SynTree/Mutator.h \
       SynTree/NamedTypeDecl.cc \
       SynTree/ObjectDecl.cc \
@@ -41,4 +51,6 @@
       SynTree/ReferenceType.cc \
       SynTree/Statement.cc \
+      SynTree/Statement.h \
+      SynTree/SynTree.h \
       SynTree/TupleExpr.cc \
       SynTree/TupleType.cc \
@@ -46,7 +58,10 @@
       SynTree/TypeDecl.cc \
       SynTree/TypeExpr.cc \
+      SynTree/Type.h \
+      SynTree/TypeofType.cc \
       SynTree/TypeSubstitution.cc \
-      SynTree/TypeofType.cc \
+      SynTree/TypeSubstitution.h \
       SynTree/VarArgsType.cc \
+      SynTree/Visitor.h \
       SynTree/VoidType.cc \
       SynTree/ZeroOneType.cc
Index: src/Tuples/module.mk
===================================================================
--- src/Tuples/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/Tuples/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -15,6 +15,13 @@
 ###############################################################################
 
-SRC += Tuples/TupleAssignment.cc Tuples/TupleExpansion.cc Tuples/Explode.cc \
-	Tuples/Tuples.cc
-SRCDEMANGLE += Tuples/TupleAssignment.cc Tuples/TupleExpansion.cc Tuples/Explode.cc \
-	Tuples/Tuples.cc
+SRC_TUPLES = \
+	Tuples/Explode.cc \
+	Tuples/Explode.h \
+	Tuples/TupleAssignment.cc \
+	Tuples/TupleExpansion.cc \
+	Tuples/Tuples.cc \
+	Tuples/Tuples.h
+
+
+SRC += $(SRC_TUPLES)
+SRCDEMANGLE += $(SRC_TUPLES)
Index: src/Validate/module.mk
===================================================================
--- src/Validate/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/Validate/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -15,4 +15,4 @@
 ###############################################################################
 
-SRC += Validate/HandleAttributes.cc Validate/FindSpecialDecls.cc
-SRCDEMANGLE += Validate/HandleAttributes.cc Validate/FindSpecialDecls.cc
+SRC += Validate/HandleAttributes.cc Validate/HandleAttributes.h Validate/FindSpecialDecls.cc Validate/FindSpecialDecls.h
+SRCDEMANGLE += Validate/HandleAttributes.cc Validate/HandleAttributes.h Validate/FindSpecialDecls.cc Validate/FindSpecialDecls.h
Index: src/Virtual/module.mk
===================================================================
--- src/Virtual/module.mk	(revision c2bc6d5b5902ae7b09fe4248702eae9f7265d2a2)
+++ src/Virtual/module.mk	(revision 5339a87ca7689b734a2eb1d355830ea9713784a1)
@@ -15,3 +15,3 @@
 ###############################################################################
 
-SRC += Virtual/ExpandCasts.cc
+SRC += Virtual/ExpandCasts.cc Virtual/ExpandCasts.h
