Index: doc/bibliography/pl.bib
===================================================================
--- doc/bibliography/pl.bib	(revision 53bb8f1f8cae8a384c5024ab0caed57d27778a0d)
+++ doc/bibliography/pl.bib	(revision a2545593137e288316609427d04f855ae152cc3b)
@@ -1146,5 +1146,5 @@
     author	= {Tarditi, David and Elliott, Archibald Samuel and Ruef, Andrew and Hicks, Michael},
     title	= {Checked C: Making C Safe by Extension},
-    booktitle	= {2018 IEEE Cybersecurity Development (SecDev)}
+    booktitle	= {2018 IEEE Cybersecurity Development (SecDev)},
     year = {2018},
     month = {September},
Index: doc/theses/aaron_moss_PhD/phd/resolution-heuristics.tex
===================================================================
--- doc/theses/aaron_moss_PhD/phd/resolution-heuristics.tex	(revision 53bb8f1f8cae8a384c5024ab0caed57d27778a0d)
+++ doc/theses/aaron_moss_PhD/phd/resolution-heuristics.tex	(revision a2545593137e288316609427d04f855ae152cc3b)
@@ -381,5 +381,20 @@
 The main challenge to implement this approach in \CFACC{} is applying the implicit conversions generated by the resolution process in the code-generation for the thunk functions that \CFACC{} uses to pass type assertions to their requesting functions with the proper signatures.
 
-Though performance of the existing algorithms is promising, some further optimizations do present themselves. 
+One \CFA{} feature that could be added to improve the ergonomics of overload selection is an \emph{ascription cast}; as discussed in Section~\ref{expr-cost-sec}, the semantics of the C cast operator are to choose the cheapest argument interpretation which is convertable to the target type, using the conversion cost as a tie-breaker. 
+An ascription cast would reverse these priorities, choosing the argument interpretation with the cheapest conversion to the target type, only using interpretation cost to break ties\footnote{A possible stricter semantics would be to select the cheapest interpretation with a zero-cost conversion to the target type, reporting a compiler error otherwise.}. 
+This would allow ascription casts to the desired return type to be used for overload selection:
+
+\begin{cfa}
+int f$\(_1\)$(int);
+int f$\(_2\)$(double);
+int g$\(_1\)$(int);
+double g$\(_2\)$(long);
+
+f((double)42);  $\C[4.5in]{// select f\(_2\) by parameter cast}$
+(as double)g(42); $\C[4.5in]{// select g\(_2\) by return ascription cast}$
+(double)g(42); $\C[4.5in]{// select g\(_1\) NOT g\(_2\) because of parameter conversion cost}$
+\end{cfa}
+
+Though performance of the existing resolution algorithms is promising, some further optimizations do present themselves. 
 The refined cost model discussed in Section~\ref{conv-cost-sec} is more expressive, but requires more than twice as many fields; it may be fruitful to investigate more tightly-packed in-memory representations of the cost-tuple, as well as comparison operations that require fewer instructions than a full lexicographic comparison. 
 Integer or vector operations on a more-packed representation may prove effective, though dealing with the negative-valued $specialization$ field may require some effort.
