Index: doc/user/user.tex
===================================================================
--- doc/user/user.tex	(revision 64dc36ed2ecb7e642eb4675791fbbcad90b42e5a)
+++ doc/user/user.tex	(revision 08065aa4f1f6324eb9d85876f0a05ba79a3aa20f)
@@ -11,6 +11,6 @@
 %% Created On       : Wed Apr  6 14:53:29 2016
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Sat Jun 15 16:29:45 2019
-%% Update Count     : 3847
+%% Last Modified On : Tue Jun 25 08:51:33 2019
+%% Update Count     : 3871
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -3346,34 +3346,36 @@
 
 
-\section{I/O Stream Library}
-\label{s:IOStreamLibrary}
+\section{Stream I/O Library}
+\label{s:StreamIOLibrary}
 \index{input/output stream library}
 \index{stream library}
 
-The goal of \CFA input/output (I/O) is to simplify the common cases\index{I/O!common case}, while fully supporting polymorphism and user defined types in a consistent way.
-\CFA I/O combines ideas from C ©printf©, \CC, and Python.
-I/O can be unformatted or formatted.
-Unformatted means \CFA selects the output or input format for values that match with the type of a variable.
-Formatted means additional information is specified to augment how an output or input of value is interpreted.
-\CFA formatting is a cross between C ©printf© and \CC ©cout© manipulators.
+The goal of \CFA stream input/output (I/O) is to simplify the common cases\index{I/O!common case}, while fully supporting polymorphism and user defined types in a consistent way.
+Stream I/O can be implicitly or explicitly formatted.
+Implicit formatting means \CFA selects the output or input format for values that match with the type of a variable.
+Explicit formatting means additional information is specified to augment how an output or input of value is interpreted.
+\CFA formatting is a cross between C ©printf© and \CC ©cout© manipulators, and Python implicit spacing and newline.
+Specifically:
 \begin{itemize}
 \item
-©printf© format codes are dense, making them difficult to read and remember.
+©printf©/Python format codes are dense, making them difficult to read and remember.
 \CFA/\CC format manipulators are named, making them easier to read and remember.
 \item
-©printf© separates format codes from associated variables, making it difficult to match codes with variables.
+©printf©/Python separates format codes from associated variables, making it difficult to match codes with variables.
 \CFA/\CC co-locate codes with associated variables, where \CFA has the tighter binding.
 \item
-Format manipulators in \CC have global rather than local effect, except ©setw©.
+Format manipulators in \CFA have local effect, whereas \CC have global effect, except ©setw©.
 Hence, it is common programming practice to toggle manipulators on and then back to the default to prevent downstream side-effects.
 Without this programming style, errors occur when moving prints, as manipulator effects incorrectly flow into the new location.
 (To guarantee no side-effects, manipulator values must be saved and restored across function calls.)
+\item
+\CFA has more sophisticated implicit spacing between values than Python, plus implicit newline at the end of a print.
 \end{itemize}
 The \CFA header file for the I/O library is \Indexc{fstream.hfa}.
 
-For unformatted output, the common case is printing a sequence of variables separated by whitespace.
+For implicit formatted output, the common case is printing a series of variables separated by whitespace.
 \begin{cquote}
-\begin{tabular}{@{}l@{\hspace{3em}}l@{}}
-\multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}}	& \multicolumn{1}{c}{\textbf{\CC}}	\\
+\begin{tabular}{@{}l@{\hspace{2em}}l@{\hspace{2em}}l@{}}
+\multicolumn{1}{c@{\hspace{2em}}}{\textbf{\CFA}}	& \multicolumn{1}{c@{\hspace{2em}}}{\textbf{\CC}}	& \multicolumn{1}{c}{\textbf{Python}}	\\
 \begin{cfa}
 int x = 1, y = 2, z = 3;
@@ -3385,5 +3387,14 @@
 cout << x ®<< " "® << y ®<< " "® << z << endl;
 \end{cfa}
+&
+\begin{cfa}
+x = 1;  y = 2;  z = 3
+print( x, y, z )
+\end{cfa}
 \\
+\begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
+1® ®2® ®3
+\end{cfa}
+&
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
 1® ®2® ®3
@@ -3429,5 +3440,5 @@
 There is a weak similarity between the \CFA logical-or operator and the \Index{Shell pipe-operator} for moving data, where data flows in the correct direction for input but the opposite direction for output.
 
-For unformatter input, the common case is reading a sequence of values separated by whitespace, where the type of an input constant must match with the type of the input variable.
+For implicit formatted input, the common case is reading a sequence of values separated by whitespace, where the type of an input constant must match with the type of the input variable.
 \begin{cquote}
 \begin{lrbox}{\LstBox}
@@ -3436,7 +3447,7 @@
 \end{cfa}
 \end{lrbox}
-\begin{tabular}{@{}l@{\hspace{3em}}l@{}}
+\begin{tabular}{@{}l@{\hspace{3em}}l@{\hspace{3em}}l@{}}
 \multicolumn{1}{@{}l@{}}{\usebox\LstBox} \\
-\multicolumn{1}{c@{\hspace{3em}}}{\textbf{\CFA}}	& \multicolumn{1}{c}{\textbf{\CC}}	\\
+\multicolumn{1}{c@{\hspace{2em}}}{\textbf{\CFA}}	& \multicolumn{1}{c@{\hspace{2em}}}{\textbf{\CC}}	& \multicolumn{1}{c}{\textbf{Python}}	\\
 \begin{cfa}[aboveskip=0pt,belowskip=0pt]
 sin | x | y | z;
@@ -3446,11 +3457,25 @@
 cin >> x >> y >> z;
 \end{cfa}
+&
+\begin{cfa}[aboveskip=0pt,belowskip=0pt]
+x = int(input());  y = float(input());  z = input();
+\end{cfa}
 \\
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
 ®1® ®2.5® ®A®
+
+
 \end{cfa}
 &
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
 ®1® ®2.5® ®A®
+
+
+\end{cfa}
+&
+\begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
+®1®
+®2.5®
+®A®
 \end{cfa}
 \end{tabular}
@@ -3705,5 +3730,5 @@
 0b0 0b11011 0b11011 0b11011 0b11011
 sout | bin( -27HH ) | bin( -27H ) | bin( -27 ) | bin( -27L );
-0b11100101 0b1111111111100101 0b11111111111111111111111111100101 0b(58 1s)100101
+0b11100101 0b1111111111100101 0b11111111111111111111111111100101 0b®(58 1s)®100101
 \end{cfa}
 
@@ -3782,5 +3807,4 @@
 ®  ®4.000000 ® ®4.000000 4.000000
 ®  ®ab ® ®ab ab
-    ab    ab ab
 \end{cfa}
 If the value is larger, it is printed without truncation, ignoring the ©minimum©.
