Index: doc/user/.gitignore
===================================================================
--- doc/user/.gitignore	(revision 7baed7d624d6fc245ee9ff6f08edb3226adfc288)
+++ doc/user/.gitignore	(revision 7baed7d624d6fc245ee9ff6f08edb3226adfc288)
@@ -0,0 +1,14 @@
+# generated by latex
+*.aux
+*.bbl
+*.blg
+*.brf
+*.dvi
+*.idx
+*.ilg
+*.ind
+*.log
+*.out
+*.pdf
+*.ps
+*.toc
Index: doc/user/user.tex
===================================================================
--- doc/user/user.tex	(revision 0638c4478ec4ff0f8f60a487e62a73c0cf2fad06)
+++ doc/user/user.tex	(revision 7baed7d624d6fc245ee9ff6f08edb3226adfc288)
@@ -11,6 +11,6 @@
 %% Created On       : Wed Apr  6 14:53:29 2016
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Tue May  3 08:05:33 2016
-%% Update Count     : 246
+%% Last Modified On : Fri Jun  3 09:49:31 2016
+%% Update Count     : 281
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -30,13 +30,12 @@
 \usepackage{textcomp}
 \usepackage[latin1]{inputenc}
-\usepackage{upquote}
-\usepackage{fullpage,times}
+\usepackage{fullpage,times,comment}
 \usepackage{epic,eepic}
+\usepackage{upquote}									% switch curled `' to straight `'
 \usepackage{xspace}
-\usepackage{varioref}
-\usepackage{listings}
-\usepackage{footmisc}
-\usepackage{comment}
-\usepackage{latexsym}                                   % \Box
+\usepackage{varioref}									% extended references
+\usepackage{listings}									% format program code
+\usepackage{footmisc}									% support label/reference in footnote
+\usepackage{latexsym}                                   % \Box glyph
 \usepackage{mathptmx}                                   % better math font with "times"
 \usepackage[pagewise]{lineno}
@@ -113,5 +112,5 @@
 The syntax of the \CFA language builds from C, and should look immediately familiar to C programmers.
 % Any language feature that is not described here can be assumed to be using the standard C11 syntax.
-\CFA adds many modern programming-language features, which directly leads to increased safety and productivity, while maintaining interoperability with existing C programs and achieving C performance.
+\CFA adds many modern programming-language features that directly leads to increased \emph{safety} and \emph{productivity}, while maintaining interoperability with existing C programs and achieving C performance.
 Like C, \CFA is a statically typed, procedural language with a low-overhead runtime, meaning there is no global garbage-collection.
 The primary new features include parametric-polymorphism routines and types, exceptions, concurrency, and modules.
@@ -244,5 +243,5 @@
 The 1999 C standard plus GNU extensions.
 \item\hspace*{-4pt}\Indexc{-fgnu89-¶inline¶}\index{compilation option!-fgnu89-inline@{©-fgnu89-¶inline¶©}}
-Use the traditional GNU semantics for inline routines in C99 mode.
+Use the traditional GNU semantics for inline routines in C99 mode, which allows inline routines in header files.
 \end{description}
 The following new \CFA option is available:
@@ -1174,6 +1173,11 @@
 Unfortunately, this restriction forces programmers to use ©goto© to achieve the equivalent for more than one level of nesting.
 To prevent having to make this switch, the ©break© and ©continue© are extended with a target label to support static multi-level exit~\cite{Buhr85,Java}.
-For the labelled ©break©, it is possible to specify which control structure is the target for exit, as in:
-\begin{quote2}
+\VRef[Figure]{f:LabelledBreak} shows the labelled ©break©, and the target control structure of the exit.
+The inner most loop has three exit points, which cause termination of one or more of the three nested loops, respectively.
+\VRef[Figure]{f:LabelledContinue} shows the labelled ©continue©, and which control structure is the target of the next loop iteration.
+The inner most loop has three restart points, which cause the next loop iteration to begin, respectively.
+
+\begin{figure}
+\centering
 \begin{tabular}{@{}l@{\hspace{30pt}}l@{}}
 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}}	& \multicolumn{1}{c}{\textbf{C}}	\\
@@ -1196,5 +1200,5 @@
 			... goto L1; ...
 			... goto L2; ...
-			... goto L3; // or break
+			... goto L3; // or break  
 		} L3: ;
 	} L2: ;
@@ -1202,8 +1206,9 @@
 \end{lstlisting}
 \end{tabular}
-\end{quote2}
-The inner most loop has three exit points, which cause termination of one or more of the three nested loops, respectively.
-For the labelled ©continue©, it is possible to specify which control structure is the target for the next loop iteration, as in:
-\begin{quote2}
+\caption{Labelled Break}
+\label{f:LabelledBreak}
+
+\vspace*{0.25in}
+
 \begin{tabular}{@{}l@{\hspace{30pt}}l@{}}
 \multicolumn{1}{c@{\hspace{30pt}}}{\textbf{\CFA}}	& \multicolumn{1}{c}{\textbf{C}}	\\
@@ -1214,5 +1219,5 @@
 			... continue ®L1®; ...
 			... continue ®L2®; ...
-			... continue ®L3®; ...
+			... continue ®L3®; // or continue
 
 		}
@@ -1229,5 +1234,5 @@
 			... goto L1; ...
 			... goto L2; ...
-			... goto L3; ...
+			... goto L3; // or continue
 		  L3: ;
 		}
@@ -1238,6 +1243,8 @@
 \end{lstlisting}
 \end{tabular}
-\end{quote2}
-The inner most loop has three restart points, which cause the next loop iteration to begin, respectively.
+\caption{Labelled Continue}
+\label{f:LabelledContinue}
+\end{figure}
+
 For both ©break© and ©continue©, the target label must be directly associated with a ©for©, ©while© or ©do© statement;
 for ©break©, the target label can also be associated with a ©switch© statement.
@@ -3329,43 +3336,43 @@
 \begin{lstlisting}
 struct Line {
-	float length;
+	float lnth;
 }
 // default constructor
 void ?{}( Line * l ) {
+	l->lnth = 0.0;
 	sout | "default" | endl;
-	l.length = 0.0;
 }
 
 
 // constructor with length
-void ?{}( Line * l, float length ) {
-	sout | "length" | length | endl;
-
-	l.length = length;
+void ?{}( Line * l, float lnth ) {
+	l->lnth = lnth;
+	sout | "lnth" | l->lnth | endl;
+
 }
 
 // destructor
-void ^?(Line &l) {
+void ^?() {
 	sout | "destroyed" | endl;
-	l.length = 0.0;
+	l.lnth = 0.0;
 }
 
 // usage
 Line line1;
-Line line2{ 3.4 };
+Line line2 = { 3.4 };
 \end{lstlisting}
 &
 \begin{lstlisting}[language=C++]
 class Line {
-	float length;
+	float lnth;
 
 	// default constructor
 	Line() {
 		cout << "default" << endl;
-		length = 0.0;
+		lnth = 0.0;
 	}
 
 
-	// constructor with length
+	// constructor with lnth
 	Line( float l ) {
 		cout << "length " << length
