Index: doc/refrat/Makefile
===================================================================
--- doc/refrat/Makefile	(revision 865249ac8bf2791c2f33b3ce713b9259dc0e8a33)
+++ doc/refrat/Makefile	(revision a188b16bd317beb59cebff47ae73b5cbddaa7127)
@@ -7,5 +7,5 @@
 ## Define the text source files.
 
-SOURCE = ${addsuffix .tex, \
+SOURCES = ${addsuffix .tex, \
 refrat \
 }
@@ -43,5 +43,5 @@
 	dvips $< -o $@
 
-${basename ${DOCUMENT}}.dvi : Makefile ${GRAPHS} ${PROGRAMS} ${PICTURES} ${FIGURES} ${SOURCE} ${basename ${DOCUMENT}}.tex ${basename ${DOCUMENT}}.bib
+${basename ${DOCUMENT}}.dvi : Makefile ${GRAPHS} ${PROGRAMS} ${PICTURES} ${FIGURES} ${SOURCES} ${basename ${DOCUMENT}}.tex ${basename ${DOCUMENT}}.bib
 	# Conditionally create an empty *.ind (index) file for inclusion until makeindex is run.
 	if [ ! -r ${basename $@}.ind ] ; then touch ${basename $@}.ind ; fi
Index: doc/refrat/refrat.tex
===================================================================
--- doc/refrat/refrat.tex	(revision 865249ac8bf2791c2f33b3ce713b9259dc0e8a33)
+++ doc/refrat/refrat.tex	(revision a188b16bd317beb59cebff47ae73b5cbddaa7127)
@@ -31,6 +31,31 @@
 % Specialized macros used in the document.
 
-%\input code.sty
-\input xref.tex
+\newcommand{\italic}[1]{\emph{\hyperpage{#1}}}
+\newcommand{\definition}[1]{\textbf{\hyperpage{#1}}}
+\newcommand{\see}[1]{\emph{see} #1}
+
+\makeatletter
+% Define some commands that produce formatted index entries suitable for cross-references.
+% ``\spec'' produces entries for specifications of entities.  ``\impl'' produces entries for their
+% implementations, and ``\use'' for their uses.
+
+%  \newcommand{\bold}[1]{{\bf #1}}
+%  \def\spec{\@bsphack\begingroup
+%             \def\protect##1{\string##1\space}\@sanitize
+%             \@wrxref{|bold}}
+\def\impl{\@bsphack\begingroup
+          \def\protect##1{\string##1\space}\@sanitize
+          \@wrxref{|definition}}
+\newcommand{\indexcode}[1]{{\lstinline$#1$}}
+\def\use{\@bsphack\begingroup
+         \def\protect##1{\string##1\space}\@sanitize
+         \@wrxref{|hyperpage}}
+\def\@wrxref#1#2{\let\thepage\relax
+    \xdef\@gtempa{\write\@indexfile{\string
+    \indexentry{#2@{\lstinline$#2$}#1}{\thepage}}}\endgroup\@gtempa
+    \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
+\makeatother
+%\newcommand{\use}[1]{\index{#1@{\lstinline$#1$}}}
+%\newcommand{\impl}[1]{\index{\protect#1@{\lstinline$\protect#1$}|definition}}
 
 \newcommand{\define}[1]{\emph{#1\/}\index{#1}}
@@ -54,8 +79,8 @@
 \def\syntax{\paragraph{Syntax}\trivlist\parindent=.5in\item[\hskip.5in]}
 \let\endsyntax=\endtrivlist
-\newcommand{\lhs}[1]{\par{\it #1:}\index{#1@{\it #1}|italic}}
+\newcommand{\lhs}[1]{\par{\emph{#1:}}\index{#1@{\emph{#1}}|italic}}
 \newcommand{\rhs}{\hfil\break\hbox{\hskip1in}}
-\newcommand{\oldlhs}[1]{{\it #1: \ldots}\index{#1@{\it #1}|italic}}
-\newcommand{\nonterm}[1]{{\it #1\/}\index{#1@{\it #1}|italic}}
+\newcommand{\oldlhs}[1]{\emph{#1: \ldots}\index{#1@{\emph{#1}}|italic}}
+\newcommand{\nonterm}[1]{\emph{#1\/}\index{#1@{\emph{#1}}|italic}}
 \newcommand{\opt}{$_{opt}$\ }
 
@@ -710,5 +735,5 @@
 
 \examples
-The expression \lstinline$(void *)0}$\use{0} specializes the (polymorphic) null pointer to a null
+The expression \lstinline$(void *)0$\use{0} specializes the (polymorphic) null pointer to a null
 pointer to \lstinline$void$. \lstinline$(const void *)0$ does the same, and also uses a safe
 conversion from \lstinline$void *$ to \lstinline$const void *$. In each case, the null pointer
@@ -2444,5 +2469,5 @@
 
 The operands of the expression ``\lstinline$a || b$'' are treated as ``\lstinline$(int)((a)!=0)$''
-and ``\lstinline$(int)((b})!=0)$'', which shall both be unambiguous. The expression has only one
+and ``\lstinline$(int)((b))!=0)$'', which shall both be unambiguous. The expression has only one
 interpretation, which is of type \lstinline$int$.
 
@@ -4175,5 +4200,6 @@
 \rhs \ldots
 \rhs \lstinline$throw$ \nonterm{assignment-expression}\opt
-\rhs \lstinline$throwResume$ \nonterm{assignment-expression}\opt
+\rhs \lstinline$throwResume$ \nonterm{assignment-expression}\opt \nonterm{at-expression}\opt
+\lhs{at-expression} \lstinline$_At$ \nonterm{assignment-expression}
 \end{syntax}
 
@@ -4271,5 +4297,5 @@
 \subsubsection{The \lstinline$enable$/\lstinline$disable$ statements}
 
-The \lstinline$enable$/\lstinline$disable$ statements toggle when \Index{asynchronous exception}s can or cannot be delivered.
+The \lstinline$enable$/\lstinline$disable$ statements toggle delivery of \Index{asynchronous exception}s.
 
 
