Index: doc/user/user.tex
===================================================================
--- doc/user/user.tex	(revision 61dafb8703b092ab7b68d74e4033a8045b52acc1)
+++ doc/user/user.tex	(revision 5ea5b28f99a21543ee16545ccb212eddbb550eff)
@@ -11,6 +11,6 @@
 %% Created On       : Wed Apr  6 14:53:29 2016
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Wed Nov  7 17:00:49 2018
-%% Update Count     : 3399
+%% Last Modified On : Tue Dec 11 23:19:26 2018
+%% Update Count     : 3400
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -178,5 +178,5 @@
 int main( void ) {
 	int x = 0, y = 1, z = 2;
-	®sout | x | y | z | endl;®§\indexc{sout}§
+	®sout | x | y | z;®§\indexc{sout}§
 }
 \end{cfa}
@@ -513,5 +513,5 @@
 Floating exponentiation\index{exponentiation!floating} is performed using \Index{logarithm}s\index{exponentiation!logarithm}, so the base cannot be negative.
 \begin{cfa}
-sout | 2 ®\® 8u | 4 ®\® 3u | -4 ®\® 3u | 4 ®\® -3 | -4 ®\® -3 | 4.0 ®\® 2.1 | (1.0f+2.0fi) ®\® (3.0f+2.0fi) | endl;
+sout | 2 ®\® 8u | 4 ®\® 3u | -4 ®\® 3u | 4 ®\® -3 | -4 ®\® -3 | 4.0 ®\® 2.1 | (1.0f+2.0fi) ®\® (3.0f+2.0fi);
 256 64 -64 0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
 \end{cfa}
@@ -591,27 +591,27 @@
 &
 \begin{cfa}
-sout | endl;
-sout | endl;
-sout | endl;
-sout | "zero" | endl;
-sout | endl;
-sout | endl;
-sout | endl;
-sout | endl;
-sout | endl;
-sout | endl;
-sout | endl;
-sout | endl;
-sout | endl;
-sout | endl;
-sout | endl;
-sout | endl;
-sout | endl | endl;
-
-sout | endl;
-sout | endl;
-sout | endl | endl;
-
-sout | endl;
+sout | nl;
+sout | nl;
+sout | nl;
+sout | "zero" | nl;
+sout | nl;
+sout | nl;
+sout | nl;
+sout | nl;
+sout | nl;
+sout | nl;
+sout | nl;
+sout | nl;
+sout | nl;
+sout | nl;
+sout | nl;
+sout | nl;
+sout | nl | nl;
+
+sout | nl;
+sout | nl;
+sout | nl | nl;
+
+sout | nl;
 \end{cfa}
 &
@@ -2459,5 +2459,5 @@
 	int bar( int p ) {
 		®i® += 1;				§\C{// dependent on local variable}§
-		sout | ®i® | endl;
+		sout | ®i®;
 	}
 	return bar;					§\C{// undefined because of local dependence}§
@@ -2465,5 +2465,5 @@
 int main() {
 	* [int]( int ) fp = foo();	§\C{// int (* fp)( int )}§
-	sout | fp( 3 ) | endl;
+	sout | fp( 3 );
 }
 \end{cfa}
@@ -3231,5 +3231,5 @@
 \begin{cfa}
 int x = 1, y = 2, z = 3;
-sout | x ®|® y ®|® z | endl;
+sout | x ®|® y ®|® z;
 \end{cfa}
 &
@@ -3252,5 +3252,5 @@
 \begin{cfa}
 [int, [ int, int ] ] t1 = [ 1, [ 2, 3 ] ], t2 = [ 4, [ 5, 6 ] ];
-sout | t1 | t2 | endl;					§\C{// print tuples}§
+sout | t1 | t2;						§\C{// print tuples}§
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt]
@@ -3264,5 +3264,5 @@
 &
 \begin{cfa}
-sout | x * 3 | y + 1 | z << 2 | x == y | (x | y) | (x || y) | (x > z ? 1 : 2) | endl;
+sout | x * 3 | y + 1 | z << 2 | x == y | (x | y) | (x || y) | (x > z ? 1 : 2);
 \end{cfa}
 \\
@@ -3290,5 +3290,5 @@
 A separator does not appear at the start or end of a line.
 \begin{cfa}[belowskip=0pt]
-sout | 1 | 2 | 3 | endl;
+sout | 1 | 2 | 3;
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -3299,5 +3299,5 @@
 A separator does not appear before or after a character literal or variable.
 \begin{cfa}
-sout | '1' | '2' | '3' | endl;
+sout | '1' | '2' | '3';
 123
 \end{cfa}
@@ -3306,5 +3306,5 @@
 A separator does not appear before or after a null (empty) C string.
 \begin{cfa}
-sout | 1 | "" | 2 | "" | 3 | endl;
+sout | 1 | "" | 2 | "" | 3;
 123
 \end{cfa}
@@ -3316,5 +3316,5 @@
 \begin{cfa}[mathescape=off]
 sout | "x (" | 1 | "x [" | 2 | "x {" | 3 | "x =" | 4 | "x $" | 5 | "x £" | 6 | "x ¥"
-		| 7 | "x ¡" | 8 | "x ¿" | 9 | "x «" | 10 | endl;
+		| 7 | "x ¡" | 8 | "x ¿" | 9 | "x «" | 10;
 \end{cfa}
 %$
@@ -3330,5 +3330,5 @@
 \begin{cfa}[belowskip=0pt]
 sout | 1 | ", x" | 2 | ". x" | 3 | "; x" | 4 | "! x" | 5 | "? x" | 6 | "% x"
-		| 7 | "¢ x" | 8 | "» x" | 9 | ") x" | 10 | "] x" | 11 | "} x" | endl;
+		| 7 | "¢ x" | 8 | "» x" | 9 | ") x" | 10 | "] x" | 11 | "} x";
 \end{cfa}
 \begin{cfa}[basicstyle=\tt,showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -3340,5 +3340,5 @@
 A seperator does not appear before or after a C string begining/ending with the \Index*{ASCII} quote or whitespace characters: \lstinline[basicstyle=\tt,showspaces=true]@`'": \t\v\f\r\n@
 \begin{cfa}[belowskip=0pt]
-sout | "x`" | 1 | "`x'" | 2 | "'x\"" | 3 | "\"x:" | 4 | ":x " | 5 | " x\t" | 6 | "\tx" | endl;
+sout | "x`" | 1 | "`x'" | 2 | "'x\"" | 3 | "\"x:" | 4 | ":x " | 5 | " x\t" | 6 | "\tx";
 \end{cfa}
 \begin{cfa}[basicstyle=\tt,showspaces=true,showtabs=true,aboveskip=0pt,belowskip=0pt]
@@ -3349,5 +3349,5 @@
 If a space is desired before or after one of the special string start/end characters, simply insert a space.
 \begin{cfa}[belowskip=0pt]
-sout | "x (§\color{red}\texttt{\textvisiblespace}§" | 1 | "§\color{red}\texttt{\textvisiblespace}§) x" | 2 | "§\color{red}\texttt{\textvisiblespace}§, x" | 3 | "§\color{red}\texttt{\textvisiblespace}§:x:§\color{red}\texttt{\textvisiblespace}§" | 4 | endl;
+sout | "x (§\color{red}\texttt{\textvisiblespace}§" | 1 | "§\color{red}\texttt{\textvisiblespace}§) x" | 2 | "§\color{red}\texttt{\textvisiblespace}§, x" | 3 | "§\color{red}\texttt{\textvisiblespace}§:x:§\color{red}\texttt{\textvisiblespace}§" | 4;
 \end{cfa}
 \begin{cfa}[basicstyle=\tt,showspaces=true,showtabs=true,aboveskip=0pt,belowskip=0pt]
@@ -3366,5 +3366,5 @@
 \begin{cfa}[mathescape=off,belowskip=0pt]
 sepSet( sout, ", $" );						§\C{// set separator from " " to ", \$"}§
-sout | 1 | 2 | 3 | " \"" | ®sep® | "\"" | endl;
+sout | 1 | 2 | 3 | " \"" | ®sep® | "\"";
 \end{cfa}
 %$
@@ -3375,5 +3375,5 @@
 \begin{cfa}[belowskip=0pt]
 sepSet( sout, " " );						§\C{// reset separator to " "}§
-sout | 1 | 2 | 3 | " \"" | ®sepGet( sout )® | "\"" | endl;
+sout | 1 | 2 | 3 | " \"" | ®sepGet( sout )® | "\"";
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt]
@@ -3385,5 +3385,5 @@
 strcpy( store, sepGet( sout ) );			  §\C{// copy current separator}§
 sepSet( sout, "_" );						§\C{// change separator to underscore}§
-sout | 1 | 2 | 3 | endl;
+sout | 1 | 2 | 3;
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -3392,5 +3392,5 @@
 \begin{cfa}[belowskip=0pt]
 sepSet( sout, store );						§\C{// change separator back to original}§
-sout | 1 | 2 | 3 | endl;
+sout | 1 | 2 | 3;
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt]
@@ -3403,5 +3403,5 @@
 \begin{cfa}[belowskip=0pt]
 sepSetTuple( sout, " " );					§\C{// set tuple separator from ", " to " "}§
-sout | t1 | t2 | " \"" | ®sepTuple® | "\"" | endl;
+sout | t1 | t2 | " \"" | ®sepTuple® | "\"";
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt]
@@ -3410,5 +3410,5 @@
 \begin{cfa}[belowskip=0pt]
 sepSetTuple( sout, ", " );					§\C{// reset tuple separator to ", "}§
-sout | t1 | t2 | " \"" | ®sepGetTuple( sout )® | "\"" | endl;
+sout | t1 | t2 | " \"" | ®sepGetTuple( sout )® | "\"";
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt]
@@ -3420,5 +3420,5 @@
 Manipulators \Indexc{sepDisable}\index{manipulator!sepDisable@©sepDisable©} and \Indexc{sepEnable}\index{manipulator!sepEnable@©sepEnable©} \emph{globally} toggle printing the separator, \ie the seperator is adjusted with respect to all subsequent printed items.
 \begin{cfa}[belowskip=0pt]
-sout | sepDisable | 1 | 2 | 3 | endl;		§\C{// globally turn off implicit separator}§
+sout | sepDisable | 1 | 2 | 3;			§\C{// globally turn off implicit separator}§
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -3426,5 +3426,5 @@
 \end{cfa}
 \begin{cfa}[belowskip=0pt]
-sout | sepEnable | 1 | 2 | 3 | endl;		§\C{// globally turn on implicit separator}§
+sout | sepEnable | 1 | 2 | 3;		§\C{// globally turn on implicit separator}§
 \end{cfa}
 \begin{cfa}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -3435,5 +3435,5 @@
 Manipulators \Indexc{sepOn}\index{manipulator!sepOn@©sepOn©} and \Indexc{sepOff}\index{manipulator!sepOff@©sepOff©} \emph{locally} toggle printing the separator, \ie the seperator is adjusted only with respect to the next printed item.
 \begin{cfa}[belowskip=0pt]
-sout | 1 | sepOff | 2 | 3 | endl;			§\C{// locally turn off implicit separator}§
+sout | 1 | sepOff | 2 | 3;			§\C{// locally turn off implicit separator}§
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -3441,5 +3441,5 @@
 \end{cfa}
 \begin{cfa}[belowskip=0pt]
-sout | sepDisable | 1 | sepOn | 2 | 3 | endl; §\C{// locally turn on implicit separator}§
+sout | sepDisable | 1 | sepOn | 2 | 3; §\C{// locally turn on implicit separator}§
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -3448,5 +3448,5 @@
 The tuple separator also responses to being turned on and off.
 \begin{cfa}[belowskip=0pt]
-sout | t1 | sepOff | t2 | endl;				§\C{// locally turn on/off implicit separator}§
+sout | t1 | sepOff | t2;				§\C{// locally turn on/off implicit separator}§
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -3456,5 +3456,5 @@
 use ©sep© to accomplish this functionality.
 \begin{cfa}[belowskip=0pt]
-sout | sepOn | 1 | 2 | 3 | sepOn | endl ;	§\C{// sepOn does nothing at start/end of line}§
+sout | sepOn | 1 | 2 | 3 | sepOn;	§\C{// sepOn does nothing at start/end of line}§
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -3462,5 +3462,5 @@
 \end{cfa}
 \begin{cfa}[belowskip=0pt]
-sout | sep | 1 | 2 | 3 | sep | endl ;		§\C{// use sep to print separator at start/end of line}§
+sout | sep | 1 | 2 | 3 | sep ;		§\C{// use sep to print separator at start/end of line}§
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -3475,45 +3475,45 @@
 int main( void ) {
 	int x = 1, y = 2, z = 3;
-	sout | x | y | z | endl;
+	sout | x | y | z;
 	[int, [ int, int ] ] t1 = [ 1, [ 2, 3 ] ], t2 = [ 4, [ 5, 6 ] ];
-	sout | t1 | t2 | endl;						// print tuples
-	sout | x * 3 | y + 1 | z << 2 | x == y | (x | y) | (x || y) | (x > z ? 1 : 2) | endl;
-	sout | 1 | 2 | 3 | endl;
-	sout | '1' | '2' | '3' | endl;
-	sout | 1 | "" | 2 | "" | 3 | endl;
+	sout | t1 | t2;						// print tuples
+	sout | x * 3 | y + 1 | z << 2 | x == y | (x | y) | (x || y) | (x > z ? 1 : 2);
+	sout | 1 | 2 | 3;
+	sout | '1' | '2' | '3';
+	sout | 1 | "" | 2 | "" | 3;
 	sout | "x (" | 1 | "x [" | 2 | "x {" | 3 | "x =" | 4 | "x $" | 5 | "x £" | 6 | "x ¥"
-		| 7 | "x ¡" | 8 | "x ¿" | 9 | "x «" | 10 | endl;
+		| 7 | "x ¡" | 8 | "x ¿" | 9 | "x «" | 10;
 	sout | 1 | ", x" | 2 | ". x" | 3 | "; x" | 4 | "! x" | 5 | "? x" | 6 | "% x"
-		| 7 | "¢ x" | 8 | "» x" | 9 | ") x" | 10 | "] x" | 11 | "} x" | endl;
-	sout | "x`" | 1 | "`x'" | 2 | "'x\"" | 3 | "\"x:" | 4 | ":x " | 5 | " x\t" | 6 | "\tx" | endl;
-	sout | "x ( " | 1 | " ) x" | 2 | " , x" | 3 | " :x: " | 4 | endl;
+		| 7 | "¢ x" | 8 | "» x" | 9 | ") x" | 10 | "] x" | 11 | "} x";
+	sout | "x`" | 1 | "`x'" | 2 | "'x\"" | 3 | "\"x:" | 4 | ":x " | 5 | " x\t" | 6 | "\tx";
+	sout | "x ( " | 1 | " ) x" | 2 | " , x" | 3 | " :x: " | 4;
 
 	sepSet( sout, ", $" );						// set separator from " " to ", $"
-	sout | 1 | 2 | 3 | " \"" | sep | "\"" | endl;
+	sout | 1 | 2 | 3 | " \"" | sep | "\"";
 	sepSet( sout, " " );						// reset separator to " "
-	sout | 1 | 2 | 3 | " \"" | sepGet( sout ) | "\"" | endl;
+	sout | 1 | 2 | 3 | " \"" | sepGet( sout ) | "\"";
 
 	char store[sepSize];
 	strcpy( store, sepGet( sout ) );
 	sepSet( sout, "_" );
-	sout | 1 | 2 | 3 | endl;
+	sout | 1 | 2 | 3;
 	sepSet( sout, store );
-	sout | 1 | 2 | 3 | endl;
+	sout | 1 | 2 | 3;
 
 	sepSetTuple( sout, " " );					// set tuple separator from ", " to " "
-	sout | t1 | t2 | " \"" | sepTuple | "\"" | endl;
+	sout | t1 | t2 | " \"" | sepTuple | "\"";
 	sepSetTuple( sout, ", " );					// reset tuple separator to ", "
-	sout | t1 | t2 | " \"" | sepGetTuple( sout ) | "\"" | endl;
-
-	sout | sepDisable | 1 | 2 | 3 | endl;		// globally turn off implicit separator
-	sout | sepEnable | 1 | 2 | 3 | endl;		// globally turn on implicit separator
-
-	sout | 1 | sepOff | 2 | 3 | endl;			// locally turn on implicit separator
-	sout | sepDisable | 1 | sepOn | 2 | 3 | endl; // globally turn off implicit separator
+	sout | t1 | t2 | " \"" | sepGetTuple( sout ) | "\"";
+
+	sout | sepDisable | 1 | 2 | 3;		// globally turn off implicit separator
+	sout | sepEnable | 1 | 2 | 3;		// globally turn on implicit separator
+
+	sout | 1 | sepOff | 2 | 3;			// locally turn on implicit separator
+	sout | sepDisable | 1 | sepOn | 2 | 3; // globally turn off implicit separator
 	sout | sepEnable;
-	sout | t1 | sepOff | t2 | endl;				// locally turn on/off implicit separator
-
-	sout | sepOn | 1 | 2 | 3 | sepOn | endl ;	// sepOn does nothing at start/end of line
-	sout | sep | 1 | 2 | 3 | sep | endl ;		// use sep to print separator at start/end of line
+	sout | t1 | sepOff | t2;				// locally turn on/off implicit separator
+
+	sout | sepOn | 1 | 2 | 3 | sepOn ;	// sepOn does nothing at start/end of line
+	sout | sep | 1 | 2 | 3 | sep ;		// use sep to print separator at start/end of line
 }
 
@@ -4180,5 +4180,5 @@
 	Fibonacci f1, f2;
 	for ( int i = 1; i <= 10; i += 1 ) {
-		sout | next( &f1 ) | ' ' | next( &f2 ) | endl;
+		sout | next( &f1 ) | ' ' | next( &f2 );
 	} // for
 }
@@ -4246,5 +4246,5 @@
 		MyThread f[4];
 	}
-	sout | global.value | endl;
+	sout | global.value;
 }
 \end{cfa}
@@ -4324,5 +4324,5 @@
 void main( First * this ) {
 	for ( int i = 0; i < 10; i += 1 ) {
-		sout | "First : Suspend No." | i + 1 | endl;
+		sout | "First : Suspend No." | i + 1;
 		yield();
 	}
@@ -4333,5 +4333,5 @@
 	wait( this->lock );
 	for ( int i = 0; i < 10; i += 1 ) {
-		sout | "Second : Suspend No." | i + 1 | endl;
+		sout | "Second : Suspend No." | i + 1;
 		yield();
 	}
@@ -4340,5 +4340,5 @@
 int main( void ) {
 	signal_once lock;
-	sout | "User main begin" | endl;
+	sout | "User main begin";
 	{
 		processor p;
@@ -4348,5 +4348,5 @@
 		}
 	}
-	sout | "User main end" | endl;
+	sout | "User main end";
 }
 \end{cfa}
@@ -5045,5 +5045,5 @@
 void ?{}( Line * l ) {
 	l->lnth = 0.0;
-	sout | "default" | endl;
+	sout | "default";
 }
 
@@ -5052,5 +5052,5 @@
 void ?{}( Line * l, float lnth ) {
 	l->lnth = lnth;
-	sout | "lnth" | l->lnth | endl;
+	sout | "lnth" | l->lnth;
 
 }
@@ -5058,5 +5058,5 @@
 // destructor
 void ^?() {
-	sout | "destroyed" | endl;
+	sout | "destroyed";
 	l.lnth = 0.0;
 }
@@ -5804,5 +5804,5 @@
 In particular, output of ©char© variable now print a character rather than the decimal ASCII value of the character.
 \begin{cfa}
-sout | 'x' | " " | (int)'x' | endl;
+sout | 'x' | " " | (int)'x';
 x 120
 \end{cfa}
@@ -7034,11 +7034,11 @@
 #include <gmp>§\indexc{gmp}§
 int main( void ) {
-	sout | "Factorial Numbers" | endl;
+	sout | "Factorial Numbers";
 	Int fact = 1;
 
-	sout | 0 | fact | endl;
+	sout | 0 | fact;
 	for ( unsigned int i = 1; i <= 40; i += 1 ) {
 		fact *= i;
-		sout | i | fact | endl;
+		sout | i | fact;
 	}
 }
