Index: doc/bibliography/pl.bib
===================================================================
--- doc/bibliography/pl.bib	(revision c9019ce9baa8a8b2d2de47644af67760b22dca5d)
+++ doc/bibliography/pl.bib	(revision 4bae7b4e4a434778d66ee17c5aa961b8b246ab9c)
@@ -230,15 +230,4 @@
     publisher	= {MIT Press, Cambridge},
     year	= 1986
-}
-
-@inproceedings{Srinivasan08,
-    author	= {Srinivasan, Sriram and Mycroft, Alan},
-    editor	= {Vitek, Jan},
-    title	= {Kilim: Isolation-Typed Actors for Java},
-    organization= {ECOOP 2008 -- Object-Oriented Programming},
-    year	= {2008},
-    publisher	= {Springer Berlin Heidelberg},
-    address	= {Berlin, Heidelberg},
-    pages	= {104--128},
 }
 
@@ -430,4 +419,18 @@
 }
 
+@article{Delisle21,
+    keywords	= {concurrency, Cforall},
+    contributer	= {pabuhr@plg},
+    author	= {Thierry Delisle and Peter A. Buhr},
+    title	= {Advanced Control-flow and Concurrency in \textsf{C}$\mathbf{\forall}$},
+    journal	= spe,
+    month	= may,
+    year	= 2021,
+    volume	= 51,
+    number	= 5,
+    pages	= {1005-1042},
+    optnote	= {\href{https://onlinelibrary.wiley.com/doi/10.1002/spe.2925}{https://\-onlinelibrary.wiley.com/\-doi/\-10.1002/\-spe.2925}},
+}
+
 @article{Buhr00a,
     keywords	= {exception handling},
@@ -1226,4 +1229,15 @@
 }
 
+@phdthesis{Delisle22,
+    contributer	= {pabuhr@plg},
+    author	= {Delisle, Thierry},
+    title	= {The \textsf{C}$\mathbf{\forall}$ Scheduler},
+    school	= {School of Computer Science, University of Waterloo},
+    address	= {Waterloo, Ontario, Canada, N2L 3G1},
+    publisher	= {UWSpace},
+    year	= 2022,
+    note	= {\url{http://hdl.handle.net/10012/18941}}
+}
+
 @misc{CFAStackEvaluation,
     contributer	= {a3moss@plg},
@@ -1643,5 +1657,6 @@
     volume	= 21,
     number	= 8,
-    pages	= {666-677}
+    pages	= {666-677},
+    publisher	= {ACM New York, NY, USA},
 }
 
@@ -1988,21 +2003,8 @@
     title	= {Concurrency in \textsf{C}$\mathbf{\forall}$},
     school	= {School of Computer Science, University of Waterloo},
+    address	= {Waterloo, Ontario, Canada, N2L 3G1},
+    publisher	= {UWSpace},
     year	= 2018,
-    optaddress	= {Waterloo, Ontario, Canada, N2L 3G1},
-    note	= {\href{https://uwspace.uwaterloo.ca/handle/10012/12888}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/\-12888}},
-}
-
-@article{Delisle21,
-    keywords	= {concurrency, Cforall},
-    contributer	= {pabuhr@plg},
-    author	= {Thierry Delisle and Peter A. Buhr},
-    title	= {Advanced Control-flow and Concurrency in \textsf{C}$\mathbf{\forall}$},
-    journal	= spe,
-    month	= may,
-    year	= 2021,
-    volume	= 51,
-    number	= 5,
-    pages	= {1005-1042},
-    optnote	= {\href{https://onlinelibrary.wiley.com/doi/10.1002/spe.2925}{https://\-onlinelibrary.wiley.com/\-doi/\-10.1002/\-spe.2925}},
+    note	= {\url{http://hdl.handle.net/10012/12888}},
 }
 
@@ -3345,4 +3347,15 @@
 }
 
+@mastersthesis{Beach21,
+    contributer	= {pabuhr@plg},
+    author	= {Beach, Andrew James},
+    title	= {Exception Handling in \textsf{C}$\mathbf{\forall}$},
+    school	= {School of Computer Science, University of Waterloo},
+    address	= {Waterloo, Ontario, Canada, N2L 3G1},
+    publisher	= {UWSpace},
+    year	= {2021},
+    note	= {\url{http://hdl.handle.net/10012/17617}},
+}
+
 @article{Liskov79,
     keywords	= {exception handling},
@@ -4076,5 +4089,5 @@
     year	= 2022,
     address	= {Waterloo, Ontario, Canada, N2L 3G1},
-    note	= {\href{https://uwspace.uwaterloo.ca/handle/10012/18329}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/18329}},
+    note	= {\url{http://hdl.handle.net/10012/18329}},
 }
 
@@ -4328,5 +4341,5 @@
     month	= sep,
     optaddress	= {Waterloo, Ontario, Canada, N2L 3G1},
-    note	= {\href{https://uwspace.uwaterloo.ca/handle/10012/13935}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/\-13935}},
+    note	= {\url{https://uwspace.uwaterloo.ca/handle/10012/13935}},
 }
 
@@ -4725,4 +4738,15 @@
     year	= 1996,
     pages	= {80-87},
+}
+
+@inproceedings{Srinivasan08,
+    author	= {Srinivasan, Sriram and Mycroft, Alan},
+    editor	= {Vitek, Jan},
+    title	= {Kilim: Isolation-Typed Actors for Java},
+    organization= {ECOOP 2008 -- Object-Oriented Programming},
+    year	= {2008},
+    publisher	= {Springer Berlin Heidelberg},
+    address	= {Berlin, Heidelberg},
+    pages	= {104--128},
 }
 
@@ -5078,4 +5102,24 @@
 }
 
+@article{Hesselink23,
+    keywords	= {Concurrency, mutual exclusion, atomicity, critical section, efficiency},
+    contributer	= {pabuhr@plg},
+    author	= {Hesselink, Wim H. and Buhr, Peter A.},
+    title	= {MCSH, a Lock with the Standard Interface},
+    issue_date	= {June 2023},
+    publisher	= {Association for Computing Machinery},
+    address	= {New York, NY, USA},
+    volume	= 10,
+    number	= 2,
+    journal	= {ACM Trans. Parallel Comput.},
+    issn	= {2329-4949},
+    url		= {https://doi.org/10.1145/3584696},
+    doi		= {10.1145/3584696},
+    articleno	= 11,
+    numpages	= 23,
+    month	= jun,
+    year	= {2023},
+}
+
 @inproceedings{mprof,
     keywords	= {malloc},
Index: doc/user/Makefile
===================================================================
--- doc/user/Makefile	(revision c9019ce9baa8a8b2d2de47644af67760b22dca5d)
+++ doc/user/Makefile	(revision 4bae7b4e4a434778d66ee17c5aa961b8b246ab9c)
@@ -68,6 +68,6 @@
 	-${BibTeX} ${Build}/${basename $@}
 	# Some citations reference others so run again to resolve these citations
-#	${LaTeX} ${basename $@}.tex
-	-${BibTeX} ${Build}/${basename $@}
+	${LaTeX} ${basename $@}.tex
+#	-${BibTeX} ${Build}/${basename $@}
 	# Make index from *.aux entries and input index at end of document
 	makeindex -s ${Macros}/indexstyle ${Build}/${basename $@}.idx
Index: doc/user/user.tex
===================================================================
--- doc/user/user.tex	(revision c9019ce9baa8a8b2d2de47644af67760b22dca5d)
+++ doc/user/user.tex	(revision 4bae7b4e4a434778d66ee17c5aa961b8b246ab9c)
@@ -11,6 +11,6 @@
 %% Created On       : Wed Apr  6 14:53:29 2016
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Mon Jun  5 21:18:29 2023
-%% Update Count     : 5521
+%% Last Modified On : Thu Jun 29 21:52:51 2023
+%% Update Count     : 5533
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -3981,15 +3981,15 @@
 
 The following \Index{manipulator}s control \Index{implicit output separation}.
-The effect of these manipulators is global for an output stream (except ©sepOn© and ©sepOff©).
+The effect of these manipulators is global for an output stream (except ©sep© and ©nosep©).
 \begin{enumerate}
 \item
-\Indexc{sepSet}\index{manipulator!sepSet@©sepSet©} and \Indexc{sep}\index{manipulator!sep@©sep©}/\Indexc{sepGet}\index{manipulator!sepGet@©sepGet©} set and get the separator string.
+\Indexc{sepSet}\index{manipulator!sepSet@©sepSet©} and \Indexc{sepVal}\index{manipulator!sepVal@©sepVal©}/\Indexc{sepGet}\index{manipulator!sepGet@©sepGet©} set and get the separator string.
 The separator string can be at most 16 characters including the ©'\0'© string terminator (15 printable characters).
 \begin{cfa}[belowskip=0pt]
 sepSet( sout, ", $\LstStringStyle{\textdollar}$" ); $\C{// set separator from " " to ", \$"}$
-sout | 1 | 2 | 3 | " \"" | ®sep® | "\"";
+sout | 1 | 2 | 3 | " \"" | ®sepVal® | "\"";
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt]
-1®, $\LstStringStyle{\textdollar}$®2®, $\LstStringStyle{\textdollar}$®3 ®", $\LstStringStyle{\textdollar}$"®
+1®, $\color{red}\LstStringStyle{\textdollar}$®2®, $\color{red}\LstStringStyle{\textdollar}$®3 ®", $\color{red}\LstStringStyle{\textdollar}$"®
 \end{cfa}
 \begin{cfa}[belowskip=0pt]
@@ -4019,9 +4019,9 @@
 
 \item
-\Indexc{sepSetTuple}\index{manipulator!sepSetTuple@©sepSetTuple©} and \Indexc{sepTuple}\index{manipulator!sepTuple@©sepTuple©}/\Indexc{sepGetTuple}\index{manipulator!sepGetTuple@©sepGetTuple©} get and set the tuple separator-string.
+\Indexc{sepSetTuple}\index{manipulator!sepSetTuple@©sepSetTuple©} and \Indexc{sepTupleVal}\index{manipulator!sepTupleVal@©sepTupleVal©}/\Indexc{sepGetTuple}\index{manipulator!sepGetTuple@©sepGetTuple©} get and set the tuple separator-string.
 The tuple separator-string can be at most 16 characters including the ©'\0'© string terminator (15 printable characters).
 \begin{cfa}[belowskip=0pt]
 sepSetTuple( sout, " " ); $\C{// set tuple separator from ", " to " "}$
-sout | t1 | t2 | " \"" | ®sepTuple® | "\"";
+sout | t1 | t2 | " \"" | ®sepTupleVal® | "\"";
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt]
@@ -4038,7 +4038,7 @@
 
 \item
-\Indexc{sepDisable}\index{manipulator!sepDisable@©sepDisable©} and \Indexc{sepEnable}\index{manipulator!sepEnable@©sepEnable©} globally toggle printing the separator.
+\Indexc{sepOff}\index{manipulator!sepOff@©sepOff©} and \Indexc{sepOn}\index{manipulator!sepOn@©sepOn©} globally toggle printing the separator.
 \begin{cfa}[belowskip=0pt]
-sout | sepDisable | 1 | 2 | 3; $\C{// turn off implicit separator}$
+sout | ®sepOff® | 1 | 2 | 3; $\C{// turn off implicit separator}$
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -4046,5 +4046,5 @@
 \end{cfa}
 \begin{cfa}[belowskip=0pt]
-sout | sepEnable | 1 | 2 | 3; $\C{// turn on implicit separator}$
+sout | ®sepOn® | 1 | 2 | 3; $\C{// turn on implicit separator}$
 \end{cfa}
 \begin{cfa}[mathescape=off,showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -4053,7 +4053,7 @@
 
 \item
-\Indexc{sepOn}\index{manipulator!sepOn@©sepOn©} and \Indexc{sepOff}\index{manipulator!sepOff@©sepOff©} locally toggle printing the separator with respect to the next printed item, and then return to the global separator setting.
+\Indexc{sep}\index{manipulator!sep@©sep©} and \Indexc{nosep}\index{manipulator!nosep@©nosep©} locally toggle printing the separator with respect to the next printed item, and then return to the global separator setting.
 \begin{cfa}[belowskip=0pt]
-sout | 1 | sepOff | 2 | 3; $\C{// turn off implicit separator for the next item}$
+sout | 1 | ®nosep® | 2 | 3; $\C{// turn off implicit separator for the next item}$
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -4061,5 +4061,5 @@
 \end{cfa}
 \begin{cfa}[belowskip=0pt]
-sout | sepDisable | 1 | sepOn | 2 | 3; $\C{// turn on implicit separator for the next item}$
+sout | sepOff | 1 | ®sep® | 2 | 3; $\C{// turn on implicit separator for the next item}$
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -4068,13 +4068,13 @@
 The tuple separator also responses to being turned on and off.
 \begin{cfa}[belowskip=0pt]
-sout | t1 | sepOff | t2; $\C{// turn off implicit separator for the next item}$
+sout | t1 | ®nosep® | t2; $\C{// turn off implicit separator for the next item}$
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
 1, 2, 34, 5, 6
 \end{cfa}
-©sepOn© \emph{cannot} be used to start/end a line with a separator because separators do not appear at the start/end of a line;
+©sep© \emph{cannot} be used to start/end a line with a separator because separators do not appear at the start/end of a line;
 use ©sep© to accomplish this functionality.
 \begin{cfa}[belowskip=0pt]
-sout | sepOn | 1 | 2 | 3 | sepOn; $\C{// sepOn does nothing at start/end of line}$
+sout | ®sep® | 1 | 2 | 3 | ®sep®; $\C{// sep does nothing at start/end of line}$
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -4082,5 +4082,5 @@
 \end{cfa}
 \begin{cfa}[belowskip=0pt]
-sout | sep | 1 | 2 | 3 | sep ; $\C{// use sep to print separator at start/end of line}$
+sout | ®sepVal® | 1 | 2 | 3 | ®sepVal® ; $\C{// use sepVal to print separator at start/end of line}$
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
@@ -4116,8 +4116,8 @@
 \Indexc{nl}\index{manipulator!nl@©nl©} inserts a newline.
 \begin{cfa}
-sout | nl; $\C{// only print newline}$
+sout | ®nl®; $\C{// only print newline}$
 sout | 2; $\C{// implicit newline}$
-sout | 3 | nl | 4 | nl; $\C{// terminating nl merged with implicit newline}$
-sout | 5 | nl | nl; $\C{// again terminating nl merged with implicit newline}$
+sout | 3 | ®nl® | 4 | ®nl®; $\C{// terminating nl merged with implicit newline}$
+sout | 5 | ®nl® | ®nl®; $\C{// again terminating nl merged with implicit newline}$
 sout | 6; $\C{// implicit newline}$
 
@@ -4286,9 +4286,10 @@
 For the C-string type, precision is the maximum number of printed characters, so the string is truncated if it exceeds the maximum.
 \begin{cfa}[belowskip=0pt]
-sout | wd( 6,8, "abcd" ) | wd( 6,8, "abcdefghijk" ) | wd( 6,3, "abcd" );
+sout | wd( 6,8, "abcd" ) | wd( 6,8, "abcdefghijk" ) | wd( 6,3, "abcd" ) | ®wd( 10, "" )® | 'X';
 \end{cfa}
 \begin{cfa}[showspaces=true,aboveskip=0pt,belowskip=0pt]
-  abcd abcdefgh    abc
-\end{cfa}
+  abcd abcdefgh    abc®          ®X
+\end{cfa}
+Note, printing the null string with minimum width L pads with L spaces.
 
 \item
@@ -4373,13 +4374,13 @@
 	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;				// locally turn on/off implicit separator
-
-	sout | sepOn | 1 | 2 | 3 | sepOn ;	// sepOn does nothing at start/end of line
+	sout | sepOff | 1 | 2 | 3;		// globally turn off implicit separator
+	sout | sepOn | 1 | 2 | 3;		// globally turn on implicit separator
+
+	sout | 1 | nosep | 2 | 3;			// locally turn on implicit separator
+	sout | sepOff | 1 | sep | 2 | 3; // globally turn off implicit separator
+	sout | sepOn;
+	sout | t1 | nosep | t2;				// locally turn on/off implicit separator
+
+	sout | sep | 1 | 2 | 3 | sep ;	// sep does nothing at start/end of line
 	sout | sep | 1 | 2 | 3 | sep ;		// use sep to print separator at start/end of line
 }
@@ -4692,5 +4693,6 @@
 	sout  | i | j | k | x | y | s;
 }
-
+\end{cfa}
+\begin{cfa}[showspaces=true]
 3 0x5          7 1.234568e+07 987.654n abc
 3 0x5          7 1.234568e+07 987.654n abc
