Index: doc/bibliography/pl.bib
===================================================================
--- doc/bibliography/pl.bib	(revision 47ed7269c6f8d602d7da7013fdbfc3e62f2d8b94)
+++ doc/bibliography/pl.bib	(revision 29207bfeeed2b5d6993ad364ab02f729fe3c016b)
@@ -21,22 +21,23 @@
 %  toplas: ACM Trans. on Prog. Lang. & Sys.
 %  tcs: Theoretical Computer Science
-@string{ieeepds="IEEE Transactions on Parallel and Distributed Systems"}
-% @string{ieeepds="IEEE Trans. Parallel Distrib. Syst."}
-@string{ieeese="IEEE Transactions on Software Engineering"}
-% @string{ieeese="IEEE Trans. Softw. Eng."}
-@string{spe="Software---\-Practice and Experience"}
-% @string{spe="Softw. Pract. Exp."}
-@string{ccpe="Concurrency and Computation: Practice and Experience"}
-% @string{ccpe="Concurrency Comput: Pract Experience"}
-@string{sigplan="SIGPLAN Notices"}
-% @string{sigplan="SIGPLAN Not."}
-@string{joop="Journal of Object-Oriented Programming"}
-% @string{joop="J. of Object-Oriented Program."}
+
+string{ieeepds="IEEE Transactions on Parallel and Distributed Systems"}
+@string{ieeepds="IEEE Trans. Parallel Distrib. Syst."}
+string{ieeese="IEEE Transactions on Software Engineering"}
+@string{ieeese="IEEE Trans. Softw. Eng."}
+string{spe="Software---\-Practice and Experience"}
+@string{spe="Softw. Pract. Exper."}
+string{ccpe="Concurrency and Computation: Practice and Experience"}
+@string{ccpe="Concurrency Comput.: Pract. Exper."}
+string{sigplan="SIGPLAN Notices"}
+@string{sigplan="SIGPLAN Not."}
+string{joop="Journal of Object-Oriented Programming"}
+@string{joop="J. of Object-Oriented Program."}
 @string{popl="Conference Record of the ACM Symposium on Principles of Programming Languages"}
 @string{osr="Operating Systems Review"}
 @string{pldi="Programming Language Design and Implementation"}
 @string{toplas="Transactions on Programming Languages and Systems"}
-@string{mathann="Mathematische Annalen"}
-% @string{mathann="Math. Ann."}
+string{mathann="Mathematische Annalen"}
+@string{mathann="Math. Ann."}
 
 % A
@@ -566,4 +567,15 @@
 }
 
+@inproceedings {Qin18,
+    author	= {Henry Qin and Qian Li and Jacqueline Speiser and Peter Kraft and John Ousterhout},
+    title	= {Arachne: Core-Aware Thread Management},
+    booktitle	= {13th {USENIX} Symp. on Oper. Sys. Design and Impl. ({OSDI} 18)},
+    year	= {2018},
+    address	= {Carlsbad, CA},
+    pages	= {145-160},
+    publisher	= {{USENIX} Association},
+    note	= {\href{https://www.usenix.org/conference/osdi18/presentation/qin}{https://\-www.usenix.org/\-conference/\-osdi18/\-presentation/\-qin}},
+}
+
 @article{Kessels82,
     keywords	= {concurrency, critical section},
@@ -653,5 +665,6 @@
     author	= {Joung, Yuh-Jzer},
     title	= {Asynchronous group mutual exclusion},
-    journal	= {Distributed Computing},
+    journal	= {Dist. Comput.},
+    optjournal	= {Distributed Computing},
     year	= {2000},
     month	= {Nov},
@@ -796,5 +809,5 @@
 	time computable inheritance hierarchy.
     },
-    comment = {
+    comment	= {
         Classes are predicates; if object {\tt o} is in class {\tt C}, then
 	{\tt C} is true of {\tt o}.  Classes are combined with {\tt :AND},
@@ -950,11 +963,14 @@
 
 @article{Moss18,
-    keywords	= {type systems, tuples, Cforall},
+    keywords	= {type systems, polymorphism, tuples, Cforall},
     contributer	= {pabuhr@plg},
     author	= {Aaron Moss and Robert Schluntz and Peter A. Buhr},
     title	= {\textsf{C}$\mathbf{\forall}$ : Adding Modern Programming Language Features to C},
+    journal	= spe,
+    volume	= 48,
+    number	= 12,
+    month	= dec,
     year	= 2018,
-    month	= aug,
-    journal	= spe,
+    pages	= {2111-2146},
     note	= {\href{http://dx.doi.org/10.1002/spe.2624}{http://\-dx.doi.org/\-10.1002/\-spe.2624}},
 }
@@ -989,5 +1005,8 @@
     journal	= {Dr. Dobb's Journal of Software Tools},
     year	= 1989,
-    month	= feb, volume = 14, number = 2, pages = {45-51},
+    month	= feb,
+    volume	= 14,
+    number	= 2,
+    pages	= {45-51},
     comment	= {
        A light-weight multitasking kernel for MS-DOS.  A task\_control
@@ -1507,13 +1526,13 @@
 }
 
-@techreport{uC++,
+@manual{uC++,
     keywords	= {C++, concurrency, light-weight process, shared memory},
     contributer	= {pabuhr@plg},
+    key		= {uC++},
     author	= {Peter A. Buhr},
     title	= {$\mu${C}{\kern-.1em\hbox{\large\texttt{+\kern-.25em+}}} Annotated Reference Manual, Version 7.0.0},
-    institution	= {School of Computer Science, University of Waterloo},
-    address	= {Waterloo, Ontario, Canada, N2L 3G1},
-    month	= dec,
-    year	= 2017,
+    organization= {University of Waterloo},
+    month	= sep,
+    year	= 2018,
     note	= {\href{https://plg.uwaterloo.ca/~usystem/pub/uSystem/uC++.pdf}{https://\-plg.uwaterloo.ca/\-$\sim$usystem/\-pub/\-uSystem/uC++.pdf}},
 }
@@ -1586,5 +1605,5 @@
     author	= {Sun, Xianda},
     title	= {Concurrent High-performance Persistent Hash Table In {J}ava},
-    school	= {School of Computer Science, University of Waterloo},
+    school	= {School of Computer Sc., University of Waterloo},
     year	= 2015,
     optaddress	= {Waterloo, Ontario, Canada, N2L 3G1},
@@ -1936,20 +1955,18 @@
     note	= {Svensk Standard SS 63 61 14},
     year	= 1987,
-    abstract	= {
-        Standard for the programming language SIMULA.  Written in English.
-    }
+    abstract	= {Standard for the programming language SIMULA. Written in English.}
 }
 
 @article{Galil91,
-  keywords = {union-find},
-  contributer = {a3moss@uwaterloo.ca},
-  title={Data structures and algorithms for disjoint set union problems},
-  author={Galil, Zvi and Italiano, Giuseppe F},
-  journal={ACM Computing Surveys (CSUR)},
-  volume={23},
-  number={3},
-  pages={319--344},
-  year={1991},
-  publisher={ACM}
+    keywords	= {union-find},
+    contributer	= {a3moss@uwaterloo.ca},
+    title	= {Data structures and algorithms for disjoint set union problems},
+    author	= {Galil, Zvi and Italiano, Giuseppe F},
+    journal	= {ACM Computing Surveys (CSUR)},
+    volume	= 23,
+    number	= 3,
+    pages	= {319--344},
+    year	= 1991,
+    publisher	= {ACM},
 }
 
@@ -2094,11 +2111,11 @@
 
 @book{Aho74,
-  keywords = {algorithms, textbook, union-find},
-  contributer = {a3moss@uwaterloo.ca},
-  title = {The Design and Analysis of Computer Algorithms},
-  author = {Aho, Alfred V and Hopcroft, John E and Ullman, Jeffrey D},
-  year = {1974},
-  publisher = {Addison-Wesley},
-  address = {Reading, MA, USA}
+    keywords	= {algorithms, textbook, union-find},
+    contributer	= {a3moss@uwaterloo.ca},
+    title	= {The Design and Analysis of Computer Algorithms},
+    author	= {Aho, Alfred V and Hopcroft, John E and Ullman, Jeffrey D},
+    year	= {1974},
+    publisher	= {Addison-Wesley},
+    address	= {Reading, MA, USA}
 }
 
@@ -2900,19 +2917,19 @@
     month	= oct,
     year	= 1988,
-    pages	= {143--149}
-}
-
-@InProceedings{Patwary10,
-keywords = {union-find},
-contributer = {a3moss@uwaterloo.ca},
-author={Patwary, Md. Mostofa Ali and Blair, Jean and Manne, Fredrik},
-editor={Festa, Paola},
-title={Experiments on Union-Find Algorithms for the Disjoint-Set Data Structure},
-booktitle={Experimental Algorithms},
-year=2010,
-publisher={Springer Berlin Heidelberg},
-address={Berlin, Heidelberg},
-pages={411--423},
-isbn={978-3-642-13193-6}
+    pages	= {143-149}
+}
+
+@inproceedings{Patwary10,
+    keywords	= {union-find},
+    contributer = {a3moss@uwaterloo.ca},
+    author	= {Patwary, Md. Mostofa Ali and Blair, Jean and Manne, Fredrik},
+    editor	= {Festa, Paola},
+    title	= {Experiments on Union-Find Algorithms for the Disjoint-Set Data Structure},
+    booktitle	= {Experimental Algorithms},
+    year	= 2010,
+    publisher	= {Springer Berlin Heidelberg},
+    address	= {Berlin, Heidelberg},
+    pages	= {411--423},
+    isbn	= {978-3-642-13193-6}
 }
 
@@ -3260,6 +3277,6 @@
     keywords	= {Go programming language},
     contributer	= {pabuhr@plg},
+    author	= {Robert Griesemer and Rob Pike and Ken Thompson},
     title	= {{Go} Programming Language},
-    author	= {Robert Griesemer and Rob Pike and Ken Thompson},
     organization= {Google},
     year	= 2009,
@@ -3453,5 +3470,5 @@
     month	= sep,
     publisher	= {John Wiley \& Sons},
-    note	= {\href{https://doi-org.proxy.lib.uwaterloo.ca/10.1002/cpe.4475}{https://\-doi-org.proxy.lib.uwaterloo.ca/\-10.1002/\-cpe.4475}},
+    note	= {\href{https://doi.org/10.1002/cpe.4475}{https://\-doi.org/\-10.1002/\-cpe.4475}},
 }
 
@@ -3594,14 +3611,14 @@
 
 @article{Galler64,
-  keywords={union-find, original},
-  contributer={a3moss@uwaterloo.ca},
-  title={An improved equivalence algorithm},
-  author={Galler, Bernard A and Fisher, Michael J},
-  journal={Communications of the ACM},
-  volume={7},
-  number={5},
-  pages={301--303},
-  year={1964},
-  publisher={ACM}
+    keywords	= {union-find, original},
+    contributer	= {a3moss@uwaterloo.ca},
+    title	= {An improved equivalence algorithm},
+    author	= {Galler, Bernard A and Fisher, Michael J},
+    journal	= {Communications of the ACM},
+    volume	= {7},
+    number	= {5},
+    pages	= {301--303},
+    year	= {1964},
+    publisher	= {ACM}
 }
 
@@ -3948,5 +3965,5 @@
     author	= {Peter A. Buhr and Martin Karsten and Jun Shih},
     title	= {{\small\textsf{KDB}}: A Multi-threaded Debugger for Multi-threaded Applications},
-    booktitle	= {Proceedings of SPDT'96: SIGMETRICS Symposium on Parallel and Distributed Tools},
+    booktitle	= {Proc. of SPDT'96: SIGMETRICS Symp. on Parallel and Distributed Tools},
     publisher	= {ACM Press},
     address	= {Philadelphia, Pennsylvania, U.S.A.},
@@ -5440,12 +5457,12 @@
 
 @inproceedings{Conchon07,
-  keywords = {persistent array, union-find},
-  contributer = {a3moss@uwaterloo.ca},
-  title={A persistent union-find data structure},
-  author={Conchon, Sylvain and Filli{\^a}tre, Jean-Christophe},
-  booktitle={Proceedings of the 2007 workshop on Workshop on ML},
-  pages={37--46},
-  year={2007},
-  organization={ACM}
+    keywords	= {persistent array, union-find},
+    contributer	= {a3moss@uwaterloo.ca},
+    title	= {A persistent union-find data structure},
+    author	= {Conchon, Sylvain and Filli{\^a}tre, Jean-Christophe},
+    booktitle	= {Proceedings of the 2007 workshop on Workshop on ML},
+    pages	= {37--46},
+    year	= {2007},
+    organization= {ACM}
 }
 
@@ -5664,5 +5681,5 @@
     author	= {Peter A. Buhr and Robert Denda},
     title	= {{$\mu$Profiler} : Profiling User-Level Threads in a Shared-Memory Programming Environment},
-    booktitle	= {Proceedings of the Second International Symposium on Computing in Object-Oriented Parallel Environments (ISCOPE'98)},
+    booktitle	= {Proc. of 2nd Inter. Symp. on Computing in Object-Oriented Parallel Environments},
     series	= {Lecture Notes in Computer Science},
     publisher	= {Springer-Verlag},
@@ -6035,5 +6052,5 @@
     issn	= {0164-0925},
     pages	= {429-475},
-    url		= {http://doi.acm.org.proxy.lib.uwaterloo.ca/10.1145/1133651.1133653},
+    url		= {http://doi.acm.org/10.1145/1133651.1133653},
     doi		= {10.1145/1133651.1133653},
     acmid	= {1133653},
@@ -6302,6 +6319,6 @@
     contributer	= {pabuhr@plg},
     key		= {Rust},
-    title	= {The {R}ust Programming Language},
-    address	= {The Rust Project Developers},
+    title	= {{R}ust Programming Language},
+    optaddress	= {Rust Project Developers},
     year	= 2015,
     note	= {\href{https://doc.rust-lang.org/reference.html}{https://\-doc.rust-lang\-.org/\-reference.html}},
@@ -6372,43 +6389,43 @@
 
 @article{Baker78,
- keywords = {Algol display, FUNARG's, Lisp 1.5, deep binding, environment trees, multiprogramming, shallow binding},
- contributer = {a3moss@uwaterloo.ca},
- author = {Baker,Jr., Henry G.},
- title = {Shallow Binding in Lisp 1.5},
- journal = {Commun. ACM},
- issue_date = {July 1978},
- volume = {21},
- number = {7},
- month = jul,
- year = {1978},
- issn = {0001-0782},
- pages = {565--569},
- numpages = {5},
- url = {http://doi.acm.org.proxy.lib.uwaterloo.ca/10.1145/359545.359566},
- doi = {10.1145/359545.359566},
- acmid = {359566},
- publisher = {ACM},
- address = {New York, NY, USA}
+    keywords	= {Algol display, FUNARG's, Lisp 1.5, deep binding, environment trees, multiprogramming, shallow binding},
+    contributer	= {a3moss@uwaterloo.ca},
+    author	= {Baker,Jr., Henry G.},
+    title	= {Shallow Binding in Lisp 1.5},
+    journal	= {Commun. ACM},
+    issue_date	= {July 1978},
+    volume	= 21,
+    number	= 7,
+    month	= jul,
+    year	= 1978,
+    issn	= {0001-0782},
+    pages	= {565--569},
+    numpages	= {5},
+    url		= {http://doi.acm.org/10.1145/359545.359566},
+    doi		= {10.1145/359545.359566},
+    acmid	= {359566},
+    publisher	= {ACM},
+    address	= {New York, NY, USA}
 }
 
 @article{Baker91,
- keywords = {shallow binding, functional arrays},
- contributer = {a3moss@uwaterloo.ca},
- author = {Baker, Henry G.},
- title = {Shallow Binding Makes Functional Arrays Fast},
- journal = {SIGPLAN Not.},
- issue_date = {Aug. 1991},
- volume = {26},
- number = {8},
- month = aug,
- year = {1991},
- issn = {0362-1340},
- pages = {145--147},
- numpages = {3},
- url = {http://doi.acm.org.proxy.lib.uwaterloo.ca/10.1145/122598.122614},
- doi = {10.1145/122598.122614},
- acmid = {122614},
- publisher = {ACM},
- address = {New York, NY, USA},
+    keywords	= {shallow binding, functional arrays},
+    contributer	= {a3moss@uwaterloo.ca},
+    author	= {Baker, Henry G.},
+    title	= {Shallow Binding Makes Functional Arrays Fast},
+    journal	= {SIGPLAN Not.},
+    issue_date	= {Aug. 1991},
+    volume	= 26,
+    number	= 8,
+    month	= aug,
+    year	= 1991,
+    issn	= {0362-1340},
+    pages	= {145--147},
+    numpages	= {3},
+    url		= {http://doi.acm.org/10.1145/122598.122614},
+    doi		= {10.1145/122598.122614},
+    acmid	= {122614},
+    publisher	= {ACM},
+    address	= {New York, NY, USA},
 }
 
@@ -7580,22 +7597,22 @@
 
 @article{Tarjan84,
- keywords = {union-find},
- contributer = {a3moss@uwaterloo.ca},
- author = {Tarjan, Robert E. and van Leeuwen, Jan},
- title = {Worst-case Analysis of Set Union Algorithms},
- journal = {J. ACM},
- issue_date = {April 1984},
- volume = {31},
- number = {2},
- month = mar,
- year = {1984},
- issn = {0004-5411},
- pages = {245--281},
- numpages = {37},
- url = {http://doi.acm.org/10.1145/62.2160},
- doi = {10.1145/62.2160},
- acmid = {2160},
- publisher = {ACM},
- address = {New York, NY, USA},
+    keywords	= {union-find},
+    contributer	= {a3moss@uwaterloo.ca},
+    author	= {Tarjan, Robert E. and van Leeuwen, Jan},
+    title	= {Worst-case Analysis of Set Union Algorithms},
+    journal	= {J. ACM},
+    issue_date	= {April 1984},
+    volume	= 31,
+    number	= 2,
+    month	= mar,
+    year	= 1984,
+    issn	= {0004-5411},
+    pages	= {245--281},
+    numpages	= {37},
+    url		= {http://doi.acm.org/10.1145/62.2160},
+    doi		= {10.1145/62.2160},
+    acmid	= {2160},
+    publisher	= {ACM},
+    address	= {New York, NY, USA},
 } 
 
Index: doc/user/Makefile
===================================================================
--- doc/user/Makefile	(revision 47ed7269c6f8d602d7da7013fdbfc3e62f2d8b94)
+++ doc/user/Makefile	(revision 29207bfeeed2b5d6993ad364ab02f729fe3c016b)
@@ -79,5 +79,5 @@
 ## Define the default recipes.
 
-${Build}:
+${Build} :
 	mkdir -p ${Build}
 
Index: doc/user/user.tex
===================================================================
--- doc/user/user.tex	(revision 47ed7269c6f8d602d7da7013fdbfc3e62f2d8b94)
+++ doc/user/user.tex	(revision 29207bfeeed2b5d6993ad364ab02f729fe3c016b)
@@ -11,6 +11,6 @@
 %% Created On       : Wed Apr  6 14:53:29 2016
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Fri Aug 31 07:54:50 2018
-%% Update Count     : 3396
+%% Last Modified On : Wed Nov  7 17:00:49 2018
+%% Update Count     : 3399
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -547,6 +547,5 @@
 
 
-%\subsection{\texorpdfstring{\protect\lstinline@for@ Statement}{for Statement}}
-\subsection{\texorpdfstring{\LstKeywordStyle{for} Statement}{for Statement}}
+\subsection{Loop Control}
 
 The ©for©/©while©/©do-while© loop-control allows empty or simplified ranges.
@@ -557,9 +556,11 @@
 the down-to range ©-~=©\index{-~=@©-~=©} means inclusive range [N,M].
 ©0© is the implicit start value;
-©1© is the implicit increment value for an up-to range and ©-1© for an implicit down-to range.
+©1© is the implicit increment value.
+The up-to range uses ©+=© for increment;
+the down-to range uses ©-=© for decrement.
 The loop index is polymorphic in the type of the start value or comparison value when start is implicitly ©0©.
 \begin{cquote}
 \begin{tabular}{@{}ll|l@{}}
-\multicolumn{2}{c|}{for control} & \multicolumn{1}{c}{output} \\
+\multicolumn{2}{c|}{loop control} & \multicolumn{1}{c}{output} \\
 \hline
 \begin{cfa}
@@ -571,19 +572,27 @@
 for ( ®10® ) { sout | "A"; }
 for ( ®1 ~= 10 ~ 2® ) { sout | "B"; }
-for ( ®10 -~= 1 ~ -2® ) { sout | "C"; }
+for ( ®10 -~= 1 ~ 2® ) { sout | "C"; }
 for ( ®0.5 ~ 5.5® ) { sout | "D"; }
 for ( ®5.5 -~ 0.5® ) { sout | "E"; }
 for ( ®i; 10® ) { sout | i; }
 for ( ®i; 1 ~= 10 ~ 2® ) { sout | i; }
-for ( ®i; 10 -~= 1 ~ -2® ) { sout | i; }
+for ( ®i; 10 -~= 1 ~ 2® ) { sout | i; }
 for ( ®i; 0.5 ~ 5.5® ) { sout | i; }
 for ( ®i; 5.5 -~ 0.5® ) { sout | i; }
 for ( ®ui; 2u ~= 10u ~ 2u® ) { sout | ui; }
-for ( ®ui; 10u -~= 2u ~ -2u® ) { sout | ui; }
-int start = 3, comp = 10, inc = 2;
+for ( ®ui; 10u -~= 2u ~ 2u® ) { sout | ui; }
+enum { N = 10 };
+for ( ®N® ) { sout | "N"; }
+for ( ®i; N® ) { sout | i; }
+for ( ®i; N -~ 0® ) { sout | i; }
+const int start = 3, comp = 10, inc = 2;
 for ( ®i; start ~ comp ~ inc + 1® ) { sout | i; }
 \end{cfa}
 &
 \begin{cfa}
+sout | endl;
+sout | endl;
+sout | endl;
+sout | "zero" | endl;
 sout | endl;
 sout | endl;
@@ -598,9 +607,9 @@
 sout | endl;
 sout | endl;
+sout | endl | endl;
+
 sout | endl;
 sout | endl;
-sout | endl;
-sout | endl;
-sout | endl;
+sout | endl | endl;
 
 sout | endl;
@@ -611,5 +620,5 @@
 empty
 empty
-
+zero
 A
 A A A A A A A A A A
@@ -625,4 +634,8 @@
 2 4 6 8 10
 10 8 6 4 2
+
+N N N N N N N N N N
+0 1 2 3 4 5 6 7 8 9
+10 9 8 7 6 5 4 3 2 1
 
 3 6 9
