Index: doc/theses/mike_brooks_MMath/list.tex
===================================================================
--- doc/theses/mike_brooks_MMath/list.tex	(revision bb9897ca4557693d413d432fa46eb70dbd3adbd0)
+++ doc/theses/mike_brooks_MMath/list.tex	(revision a0b7ef5e363fc2c9e234c282addcba25fd0de2f7)
@@ -737,21 +737,20 @@
 The @i@ fields in each node are initialized from @0..n-1@.
 These @i@ values are then shuffled in the nodes, and the @i@ value is used to represent an indirection to that node for insertion.
-hence, the nodes are inserted in random order and removed in the same random order.
+Hence, the nodes are inserted in random order and removed in the same random order.
 $\label{p:Shuffle}$
-\begin{c++}
-	for ( i; n ) @nodes[i].i = i@;		$\C{// indirection}$
+\begin{cfa}
+	for ( i; n ) @nodes[i].i = i@;		$\C[3.25in]{// indirection}$
 	shuffle( nodes, n );				$\C{// random shuffle indirects within nodes}$
 
 	while ( CONTINUE ) {
 		for ( i; n ) {
-			node_t & temp = nodes[ nodes[i].i ];
-			@temp.j = 0;@				$\C{// touch random node for wrapped nodes}$
-			insert_first( lst, temp );
+			node_t & temp = nodes[ nodes[i].i ]; $\C{// select random node in array}$
+			@temp.j = 0;@				$\C{// only touch random node for wrapped nodes}$
+			insert_first( lst, temp );	$\C{// build up}$
 		}
-		insert_first( lst, nodes[ @nodes[i].i@ ] ); $\C{// build up}$
-		for ( i; n ) pass( &remove_first( lst )	);	$\C{// tear down}$
+		for ( i; n ) pass( &remove_first( lst )	);	$\C{// tear down}\CRT$
 		totalOpsDone += n;
 	}
-\end{c++}
+\end{cfa}
 Note, insertion is traversing the list of nodes linearly, @node[i]@.
 For intrusive lists, the inserted (random) node is always touched because its link fields are read/written for insertion into the list.
