Index: libcfa/src/bits/sequence.hfa
===================================================================
--- libcfa/src/bits/sequence.hfa	(revision a3a76ea84bbeedad8793c2d636acb8d3e26f4729)
+++ libcfa/src/bits/sequence.hfa	(revision 9536761620f1bf08b5d833198057a1e1aa2e5857)
@@ -36,4 +36,11 @@
 } // distribution
 
+
+// A Sequence(T) is a Collection(T) defining the ordering of a uStack and uQueue, and to insert and remove elements
+// anywhere in the sequence. T must be a public descendant of uSeqable.
+
+// The implementation is a typical doubly-linked list, except the next field of the last node points at the first node
+// and the back field of the last node points at the first node (circular).
+
 forall( dtype T | { T *& Back ( T * ); T *& Next ( T * ); } ) {
 	struct Sequence {
@@ -52,7 +59,7 @@
 		void ?{}( Sequence(T) & s ) with( s ) {	
 			((Collection &)s){};
-		}	// post: isEmpty().
-
-		// Return a pointer to the last sequence element, without removing it.	
+		}	// post: isEmpty()
+
+		// Return a pointer to the last sequence element, without removing it.
 		T & tail( Sequence(T) & s ) with( s ) {
 			return root ? (T &)*Back( &head( s ) ) : *0p;
@@ -67,5 +74,5 @@
 		} // post: n == tail() & succ(n) == 0 | n != tail() & *succ(n) in *s
 
-		// Return a pointer to the element before *n, or 0p if there isn't one.
+		// Return a pointer to the element before *n, or 0p if list empty.
 		T * pred( Sequence(T) & s, T * n ) with( s ) {	// pre: *n in *s
 			#ifdef __CFA_DEBUG__
@@ -73,8 +80,8 @@
 			#endif // __CFA_DEBUG__
 			return n == &head( s ) ? 0p : Back( n );
-		}	// post: n == head() & head(n) == 0 | n != head() & *pred(n) in *s
-
-
-		// Insert *n into the sequence before *bef, or at the end if bef == 0.
+		} // post: n == head() & head(n) == 0 | n != head() & *pred(n) in *s
+
+
+		// Insert *n into the sequence before *bef, or at the end if bef == 0p.
 		T & insertBef( Sequence(T) & s, T & n, T & bef ) with( s ) { // pre: !n->listed() & *bef in *s
 			#ifdef __CFA_DEBUG__
@@ -137,5 +144,5 @@
 			} // if
 			return n;
-		}	  // post: n->listed() & *n in *s & succ(n) == bef
+		} // post: n->listed() & *n in *s & succ(n) == bef
 		
 		// pre: n->listed() & *n in *s
@@ -152,5 +159,5 @@
 			Next( &n ) = Back( &n ) = 0p;
 			return n;
-		}							// post: !n->listed().
+		} // post: !n->listed()
 
 		// Add an element to the head of the sequence.
@@ -158,12 +165,15 @@
 			return insertAft( s, *0p, n );
 		}
+
 		// Add an element to the tail of the sequence.
 		T & addTail( Sequence(T) & s, T & n ) {			// pre: !n->listed(); post: n->listed() & head() == n
 			return insertBef( s, n, *0p );
 		}
+
 		// Add an element to the tail of the sequence.
 		T & add( Sequence(T) & s, T & n ) {				// pre: !n->listed(); post: n->listed() & head() == n
 			return addTail( s, n );
 		}
+
 		// Remove and return the head element in the sequence.
 		T & dropHead( Sequence(T) & s ) {
@@ -171,8 +181,10 @@
 			return &n ? remove( s, n ), n : *0p;
 		}
+
 		// Remove and return the head element in the sequence.
 		T & drop( Sequence(T) & s ) {
 			return dropHead( s );
 		}
+
 		// Remove and return the tail element in the sequence.
 		T & dropTail( Sequence(T) & s ) {
@@ -233,11 +245,12 @@
 			((ColIter &)si){};
 			seq = 0p;
-		} // post: elts = null.
-
+		} // post: elts = null
+
+		// Create a iterator active in sequence s.
 		void ?{}( SeqIter(T) & si, Sequence(T) & s ) with( si ) {
 			((ColIter &)si){};
 			seq = &s;
 			curr = &head( s );
-		} // post: elts = null.
+		} // post: elts = null
 
 		void ?{}( SeqIter(T) & si, Sequence(T) & s, T & start ) with( si ) {
@@ -245,12 +258,13 @@
 			seq = &s;
 			curr = &start;
-		} // post: elts = null.
-
+		} // post: elts = null
+
+		// Make the iterator active in sequence s.
 		void over( SeqIter(T) & si, Sequence(T) & s ) with( si ) {
 			seq = &s;
 			curr = &head( s );
-		} // post: elts = {e in s}.
-
-		bool ?>>?( SeqIter(T) & si, T && tp ) with( si ) {
+		} // post: elts = {e in s}
+
+		bool ?|?( SeqIter(T) & si, T && tp ) with( si ) {
 			if ( curr ) {
 				&tp = Curr( si );
@@ -274,11 +288,12 @@
 			((ColIter &)si){};
 			seq = 0p;
-		} // post: elts = null.
-
+		} // post: elts = null
+
+		// Create a iterator active in sequence s.
 		void ?{}( SeqIterRev(T) & si, Sequence(T) & s ) with( si ) {	
 			((ColIter &)si){};
 			seq = &s;
 			curr = &tail( s );
-		} // post: elts = null.
+		} // post: elts = null
 
 		void ?{}( SeqIterRev(T) & si, Sequence(T) & s, T & start ) with( si ) {	
@@ -286,12 +301,13 @@
 			seq = &s;
 			curr = &start;
-		} // post: elts = null.
-
+		} // post: elts = null
+
+		// Make the iterator active in sequence s.
 		void over( SeqIterRev(T) & si, Sequence(T) & s ) with( si ) {
 			seq = &s;
 			curr = &tail( s );
-		} // post: elts = {e in s}.
-
-		bool ?>>?( SeqIterRev(T) & si, T && tp ) with( si ) {
+		} // post: elts = {e in s}
+
+		bool ?|?( SeqIterRev(T) & si, T && tp ) with( si ) {
 			if ( curr ) {
 				&tp = Curr( si );
