Index: doc/theses/aaron_moss/phd/Makefile
===================================================================
--- doc/theses/aaron_moss/phd/Makefile	(revision 2a9d12dc79ed339ec9a54e2e436ad3f508d71823)
+++ doc/theses/aaron_moss/phd/Makefile	(revision 62e782ec0b91a7b157f6d5249bcba344a182de69)
@@ -6,5 +6,15 @@
 AUX = ${BASE}.aux ${BASE}.bbl ${BASE}.blg ${BASE}.log ${BASE}.out ${BASE}.toc
 
-.PHONY : all rebuild-refs clean
+SOURCES = ${addsuffix .tex, \
+thesis \
+frontpgs \
+introduction \
+background \
+type-environment \
+resolution-heuristics \
+conclusion \
+}
+
+.PHONY : all rebuild-refs clean wc
 
 all : ${DOCUMENT}
@@ -13,9 +23,12 @@
 	@rm -frv ${DOCUMENT} ${AUX}
 
-${DOCUMENT} :
+wc :
+	wc ${SOURCES}
+
+${DOCUMENT} : ${SOURCES}
 	${LATEX} ${BASE}
 	${LATEX} ${BASE}
 
-rebuild-refs : 
+rebuild-refs : ${SOURCES} aaron-thesis.bib
 	${LATEX} ${BASE}
 	${BIBTEX} ${BASE}
Index: doc/theses/aaron_moss/phd/aaron-thesis.bib
===================================================================
--- doc/theses/aaron_moss/phd/aaron-thesis.bib	(revision 2a9d12dc79ed339ec9a54e2e436ad3f508d71823)
+++ doc/theses/aaron_moss/phd/aaron-thesis.bib	(revision 62e782ec0b91a7b157f6d5249bcba344a182de69)
@@ -36,4 +36,13 @@
 }
 
+@mastersthesis{Delisle18,
+    author	= {Thierry Delisle },
+    title	= {Concurrency in \textsf{C}$\mathbf{\forall}$},
+    school	= {School of Computer Science, University of Waterloo},
+    year	= 2018,
+    address	= {Waterloo, Ontario, Canada, N2L 3G1},
+    note	= {\href{https://uwspace.uwaterloo.ca/handle/10012/12888}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/\-12888}},
+}
+
 @phdthesis{Ditchfield92,
     keywords	= {C, parametric polymorphism, overloading},
Index: doc/theses/aaron_moss/phd/generic-types.tex
===================================================================
--- doc/theses/aaron_moss/phd/generic-types.tex	(revision 2a9d12dc79ed339ec9a54e2e436ad3f508d71823)
+++ doc/theses/aaron_moss/phd/generic-types.tex	(revision 62e782ec0b91a7b157f6d5249bcba344a182de69)
@@ -1,3 +1,4 @@
 \chapter{Generic Types}
+\label{generic-chap}
 
 Talk about generic types. Pull from Moss~\etal\cite{Moss18}.
Index: doc/theses/aaron_moss/phd/introduction.tex
===================================================================
--- doc/theses/aaron_moss/phd/introduction.tex	(revision 2a9d12dc79ed339ec9a54e2e436ad3f508d71823)
+++ doc/theses/aaron_moss/phd/introduction.tex	(revision 62e782ec0b91a7b157f6d5249bcba344a182de69)
@@ -1,3 +1,14 @@
 \chapter{Introduction}
 
-This is the introduction.
+\CFA{}\footnote{Pronounced ``C-for-all'', and written \CFA{} or \CFL{}.} is an evolutionary modernization of the C programming language. 
+\CFA{} both fixes existing design problems and adds multiple new features to C, including name overloading, user-defined operators, parametric-polymorphic routines, and type constructors and destructors, among others. 
+The new features make \CFA{} more powerful and expressive than C, but impose a compile-time cost, particularly in the expression resolver, which must evaluate the typing rules of a significantly more complex type-system.
+
+This thesis is focused on making \CFA{} a more powerful and expressive language, both by adding new features to the \CFA{} type system and ensuring that both added and existing features can be efficiently implemented in \CFACC{}, the \CFA{} reference compiler. 
+Particular contributions of this work include design and implementation of 
+parametric-polymorphic (``generic'') types in a manner compatible with the existing polymorphism design of \CFA{} (Chapter~\ref{generic-chap}), a type environment data structure based on a novel variant of the union-find algorithm (Chapter~\ref{env-chap}), and a new expression resolution algorithm designed to quickly locate the optimal declarations for a \CFA{} declaration (Chapter~\ref{resolution-chap}). 
+This expression resolution algorithm was designed with the aid of a purpose-built prototype system which encapsulates the essential aspects of the \CFA{} type system without incurring the technical debt of the existing system or the friction-inducing necessity of maintaining a working compiler; the goal of this prototype system was to discover effective heuristics to avoid performing unnecessary work in the process of locating the optimal \CFA{} expression resolution.
+
+Though the direction and validation of this work was fairly narrowly focused on the \CFA{} programming language, the tools used and results obtained should be of interest to a wider compiler and programming language design community. 
+In particular, with the addition of \emph{concepts} in \CCtwenty{}, conforming \CC{} compilers must support a model of type assertions very similar to that in \CFA{}, and the algorithmic techniques used in the expression resolution algorithm presented here may prove useful. 
+Type environments are also widely modelled in compiler implementations, particularly of functional languages, though also increasingly commonly in other languages (such as Rust) which also perform type inference; the type environment presented here may be useful to those language implementers.
Index: doc/theses/aaron_moss/phd/macros.tex
===================================================================
--- doc/theses/aaron_moss/phd/macros.tex	(revision 2a9d12dc79ed339ec9a54e2e436ad3f508d71823)
+++ doc/theses/aaron_moss/phd/macros.tex	(revision 62e782ec0b91a7b157f6d5249bcba344a182de69)
@@ -3,5 +3,13 @@
 
 \newcommand{\CFAIcon}{\textsf{C}\raisebox{\depth}{\rotatebox{180}{\textsf{A}}}} % Cforall symbolic name
-\newcommand{\CFA}{\protect\CFAIcon}		% safe for section/caption
+\newcommand{\CFA}{\protect\CFAIcon}	% safe for section/caption
+\newcommand{\CFL}{\textrm{Cforall}} % Cforall symbolic name
+\newcommand{\CFACC}{\texttt{cfa-cc}} % Cforall compiler
+\newcommand{\Celeven}{\textrm{C11}} % C11 symbolic name
+\newcommand{\CC}{\textrm{C}\kern-.1em\hbox{+\kern-.25em+}} % C++ symbolic name
+\newcommand{\CCeleven}{\textrm{C}\kern-.1em\hbox{+\kern-.25em+}11} % C++11 symbolic name
+\newcommand{\CCfourteen}{\textrm{C}\kern-.1em\hbox{+\kern-.25em+}14} % C++14 symbolic name
+\newcommand{\CCseventeen}{\textrm{C}\kern-.1em\hbox{+\kern-.25em+}17} % C++17 symbolic name
+\newcommand{\CCtwenty}{\textrm{C}\kern-.1em\hbox{+\kern-.25em+}20} % C++20 symbolic name
 
 \newcommand{\ie}{\textit{i.e.}}
Index: doc/theses/aaron_moss/phd/resolution-heuristics.tex
===================================================================
--- doc/theses/aaron_moss/phd/resolution-heuristics.tex	(revision 2a9d12dc79ed339ec9a54e2e436ad3f508d71823)
+++ doc/theses/aaron_moss/phd/resolution-heuristics.tex	(revision 62e782ec0b91a7b157f6d5249bcba344a182de69)
@@ -1,3 +1,4 @@
 \chapter{Resolution Heuristics}
+\label{resolution-chap}
 
 Talk about the resolution heuristics. This is the bulk of the thesis.
Index: doc/theses/aaron_moss/phd/type-environment.tex
===================================================================
--- doc/theses/aaron_moss/phd/type-environment.tex	(revision 2a9d12dc79ed339ec9a54e2e436ad3f508d71823)
+++ doc/theses/aaron_moss/phd/type-environment.tex	(revision 62e782ec0b91a7b157f6d5249bcba344a182de69)
@@ -1,3 +1,4 @@
 \chapter{Type Environment}
+\label{env-chap}
 
 Talk about the type environment data structure. Pull from your presentation.
