Index: src/examples/abs.c
===================================================================
--- src/examples/abs.c	(revision c44e6220a6e2d35bc4df195fa8e088f34d12387f)
+++ src/examples/abs.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -10,6 +10,6 @@
 // Created On       : Thu Jan 28 18:26:16 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Feb  3 11:14:58 2016
-// Update Count     : 43
+// Last Modified On : Wed Feb 17 09:32:04 2016
+// Update Count     : 44
 //
 
@@ -18,6 +18,4 @@
 
 int main( void ) {
-	ofstream *sout = ofstream_stdout();
-
 	char ch = -65;
 	sout | "char\t\t\t"					| ch     | "\tabs " | abs( ch ) | endl;
Index: src/examples/alloc.c
===================================================================
--- src/examples/alloc.c	(revision c44e6220a6e2d35bc4df195fa8e088f34d12387f)
+++ src/examples/alloc.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -11,6 +11,6 @@
 // Created On       : Wed Feb  3 07:56:22 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Feb  3 16:32:04 2016
-// Update Count     : 38
+// Last Modified On : Wed Feb 17 11:43:23 2016
+// Update Count     : 40
 // 
 
@@ -27,6 +27,4 @@
 
 int main( void ) {
-    ofstream * sout = ofstream_stdout();
-
     size_t size = 10;
     int * p;
@@ -100,5 +98,4 @@
     free( x );
 #endif
-    free( sout );
 }
 
Index: src/examples/ato.c
===================================================================
--- src/examples/ato.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
+++ src/examples/ato.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -0,0 +1,56 @@
+//                               -*- Mode: C -*- 
+// 
+// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+// 
+// ato.c -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Thu Feb  4 08:10:57 2016
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Wed Feb 17 11:44:03 2016
+// Update Count     : 42
+// 
+
+#include <fstream>
+#include <stdlib>										// ato, strto
+extern "C" {
+#include <stdio.h>
+#include <float.h>
+}
+
+int main( void ) {
+	int i = ato( "-123" );
+	sout | i | ' ' | "-123" | endl;
+	unsigned int ui = ato( "123" );
+	sout | ui | ' ' | "123" | endl;
+	long int li = ato( "-123" );
+	sout | li | ' ' | "-123" | endl;
+	unsigned long int uli = ato( "123" );
+	sout | uli | ' ' | "123" | endl;
+	long long int lli = ato( "-123" );
+	sout | lli | ' ' | "-123" | endl;
+	unsigned long long int ulli = ato( "123" );
+	sout | ulli | ' ' | "123" | endl;
+	float f = ato( "-123.456" );
+	sout | f | ' ' | "-123.456" | endl;
+	double d = ato( "-123.4567890123456" );
+	sout | d | ' ' | "-123.4567890123456" | endl;
+	long double ld = ato( "-123.45678901234567890123456789" );
+	sout | ld | ' ' | "-123.45678901234567890123456789" | endl;
+	float _Complex fc = ato( "-123.456-123.456i" );
+	sout | fc | ' ' | "-123.456-123.456i" | endl;
+	double _Complex dc = ato( "-123.4567890123456+123.4567890123456i" );
+	sout | dc | ' ' | "-123.4567890123456+123.4567890123456i" | endl;
+	long double _Complex ldc = ato( "123.45678901234567890123456789-123.45678901234567890123456789i" );
+	sout | ldc | ' ' | "123.45678901234567890123456789-123.45678901234567890123456789i" | endl;
+	long double _Complex ldc2 = ato( "123.45678901234-123.4567890i" );
+	sout | ldc2 | ' ' | "123.45678901234567890123456789-123.45678901234567890123456789i" | endl;
+} // main
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa ato.c" //
+// End: //
Index: src/examples/fstream_test.c
===================================================================
--- src/examples/fstream_test.c	(revision c44e6220a6e2d35bc4df195fa8e088f34d12387f)
+++ src/examples/fstream_test.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jan 26 17:11:33 2016
-// Update Count     : 42
+// Last Modified On : Wed Feb 17 11:45:43 2016
+// Update Count     : 43
 //
 
@@ -17,6 +17,4 @@
 
 int main( void ) {
-	ofstream *sout = ofstream_stdout();
-	ifstream *sin = ifstream_stdin();
 	int nombre;
 	sout | "Entrez un nombre, s'il vous plaît:\n";
Index: src/examples/hello.c
===================================================================
--- src/examples/hello.c	(revision c44e6220a6e2d35bc4df195fa8e088f34d12387f)
+++ src/examples/hello.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jan 26 17:11:49 2016
-// Update Count     : 7
+// Last Modified On : Wed Feb 17 12:11:45 2016
+// Update Count     : 8
 //
 
@@ -17,6 +17,4 @@
 
 int main() {
-	ofstream *sout = ofstream_stdout();
-	ifstream *sin = ifstream_stdin();
 	sout | "Bonjour au monde!\n";
 }
Index: src/examples/identity.c
===================================================================
--- src/examples/identity.c	(revision c44e6220a6e2d35bc4df195fa8e088f34d12387f)
+++ src/examples/identity.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jan 26 17:11:58 2016
-// Update Count     : 8
+// Last Modified On : Wed Feb 17 12:17:32 2016
+// Update Count     : 10
 //
 
@@ -22,5 +22,4 @@
 
 int main() {
-	ofstream *sout = ofstream_stdout();
 	sout | "char\t\t\t"					| identity( 'z' ) | endl;
 	sout | "signed int\t\t"				| identity( 4 ) | endl;
@@ -30,7 +29,7 @@
 	sout | "signed long long int\t"		| identity( 4ll ) | endl;
 	sout | "unsigned long long int\t"	| identity( 4ull ) | endl;
-	sout | "float\t\t\t" 				| identity( 4.0f ) | endl;
-	sout | "double\t\t\t"				| identity( 4.0 ) | endl;
-	sout | "long double\t\t"			| identity( 4.0l ) | endl;
+	sout | "float\t\t\t" 				| identity( 4.1f ) | endl;
+	sout | "double\t\t\t"				| identity( 4.1 ) | endl;
+	sout | "long double\t\t"			| identity( 4.1l ) | endl;
 }
 
Index: src/examples/minmax.c
===================================================================
--- src/examples/minmax.c	(revision c44e6220a6e2d35bc4df195fa8e088f34d12387f)
+++ src/examples/minmax.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Feb  3 11:14:49 2016
-// Update Count     : 46
+// Last Modified On : Wed Feb 17 12:17:53 2016
+// Update Count     : 47
 //
 
@@ -18,5 +18,4 @@
 
 int main( void ) {
-	ofstream *sout = ofstream_stdout();
 	// char does not have less or greater than.
 	int ?<?( char op1, char op2 ) { return (int)op1 < (int)op2; }
Index: src/examples/quad.c
===================================================================
--- src/examples/quad.c	(revision c44e6220a6e2d35bc4df195fa8e088f34d12387f)
+++ src/examples/quad.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jan 26 17:13:48 2016
-// Update Count     : 5
+// Last Modified On : Wed Feb 17 12:19:24 2016
+// Update Count     : 6
 //
 
@@ -27,5 +27,4 @@
 
 int main() {
-	ofstream *sout = ofstream_stdout();
 	int N = 2;
 	sout | "result of quad of " | N | " is " | quad( N ) | endl;
Index: src/examples/quoted_keyword.c
===================================================================
--- src/examples/quoted_keyword.c	(revision c44e6220a6e2d35bc4df195fa8e088f34d12387f)
+++ src/examples/quoted_keyword.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jan 26 17:13:58 2016
-// Update Count     : 8
+// Last Modified On : Wed Feb 17 12:19:45 2016
+// Update Count     : 9
 //
 
@@ -28,5 +28,4 @@
 
 int main() {
-	ofstream *sout = ofstream_stdout();
 	sout | `catch` + st.`type` + st.`struct` + `throw` | endl;
 }
Index: src/examples/random.c
===================================================================
--- src/examples/random.c	(revision c44e6220a6e2d35bc4df195fa8e088f34d12387f)
+++ src/examples/random.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -7,6 +7,4 @@
 
 int main() {
-	ofstream *sout = ofstream_stdout();
-
 	randseed( getpid() );								// set random seed
 
Index: src/examples/searchsort.c
===================================================================
--- src/examples/searchsort.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
+++ src/examples/searchsort.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -0,0 +1,82 @@
+//                               -*- Mode: C -*- 
+// 
+// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+// 
+// searchsort.c -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Thu Feb  4 18:17:50 2016
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Wed Feb 17 12:21:04 2016
+// Update Count     : 46
+// 
+
+#include <fstream>
+#include <stdlib>										// bsearch, qsort
+
+int main( void ) {
+	const unsigned int size = 10;
+	int iarr[size];
+
+	for ( unsigned int i = 0; i < size; i += 1 ) {
+		iarr[i] = size - i;
+		sout | iarr[i] | ", ";
+	} // for
+	sout | endl;
+	qsort( iarr, size );
+	for ( unsigned int i = 0; i < size; i += 1 ) {
+		sout | iarr[i] | ", ";
+	} // for
+	sout | endl;
+	for ( unsigned int i = 0; i < size; i += 1 ) {
+		int *v = bsearch( size - i, iarr, size );
+		sout | *v | ", ";
+	} // for
+	sout | endl | endl;
+
+	double darr[size];
+	for ( unsigned int i = 0; i < size; i += 1 ) {
+		darr[i] = size - i + 0.5;
+		sout | darr[i] | ", ";
+	} // for
+	sout | endl;
+	qsort( darr, size );
+	for ( unsigned int i = 0; i < size; i += 1 ) {
+		sout | darr[i] | ", ";
+	} // for
+	sout | endl;
+	for ( unsigned int i = 0; i < size; i += 1 ) {
+		double *v = bsearch( size - i + 0.5, darr, size );
+		sout | *v | ", ";
+	} // for
+	sout | endl | endl;
+
+	struct S { int i, j; } sarr[size];
+	int ?<?( S t1, S t2 ) { return t1.i < t2.i && t1.j < t2.j; }
+	ofstream * ?|?( ofstream * os, S v ) { return os | v.i | ' ' | v.j; }
+	for ( unsigned int i = 0; i < size; i += 1 ) {
+		sarr[i].i = size - i;
+		sarr[i].j = size - i + 1;
+		sout | sarr[i] | ", ";
+	} // for
+	sout | endl;
+	qsort( sarr, size );
+	for ( unsigned int i = 0; i < size; i += 1 ) {
+		sout | sarr[i] | ", ";
+	} // for
+	sout | endl;
+	for ( unsigned int i = 0; i < size; i += 1 ) {
+		S temp = { size - i, size - i + 1 };
+		S *v = bsearch( temp, sarr, size );
+		sout | *v | ", ";
+	} // for
+	sout | endl | endl;
+} // main
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa searchsort.c" //
+// End: //
Index: src/examples/square.c
===================================================================
--- src/examples/square.c	(revision c44e6220a6e2d35bc4df195fa8e088f34d12387f)
+++ src/examples/square.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jan 26 17:14:16 2016
-// Update Count     : 25
+// Last Modified On : Wed Feb 17 12:21:58 2016
+// Update Count     : 26
 //
 
@@ -23,5 +23,4 @@
 int main() {
 #if 0
-	ofstream *sout = ofstream_stdout();
 	sout | "result of squaring 9 is " | endl;
 
Index: src/examples/sum.c
===================================================================
--- src/examples/sum.c	(revision c44e6220a6e2d35bc4df195fa8e088f34d12387f)
+++ src/examples/sum.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Feb  5 16:47:44 2016
-// Update Count     : 139
+// Last Modified On : Tue Feb 16 23:49:31 2016
+// Update Count     : 189
 //
 
@@ -33,59 +33,59 @@
 
 // Required to satisfy sumable as char does not have addition.
-// const char 0;
-// char ?+?( char op1, char op2 ) { return (int)op1 + op2; } // cast forces integer addition or recursion
-// char ++?( char *op ) { *op += 1; return *op; }
-// char ?++( char *op ) { char temp = *op; *op += 1; return temp; }
+const char 0;
+char ?+?( char t1, char t2 ) { return (int)t1 + t2; }	// cast forces integer addition, otherwise recursion
+char ?+=?( char *t1, char t2 ) { *t1 = *t1 + t2; return *t1; }
+char ++?( char *t ) { *t += 1; return *t; }
+char ?++( char *t ) { char temp = *t; *t += 1; return temp; }
 
 int main( void ) {
 	const int low = 5, High = 15, size = High - low;
-	ofstream *sout = ofstream_stdout();
-#if 0
 
-	char s = 0, a[size];
-	char v = low;
+	char s = 0, a[size], v = low;
 	for ( int i = 0; i < size; i += 1, v += 1 ) {
 		s += v;
 		a[i] = v;
-	}
+	} // for
 	sout | "sum from " | low | " to " | High | " is "
 		 | (int)sum( size, a ) | ", check " | (int)s | endl;
 
-	int s = 0, a[size];
-	int v = low;
+	int s = 0, a[size], v = low;
 	for ( int i = 0; i < size; i += 1, v += 1 ) {
 		s += (int)v;
 		a[i] = (int)v;
-	}
+	} // for
 	sout | "sum from " | low | " to " | High | " is "
 		 | sum( size, (int *)a ) | ", check " | (int)s | endl;
 
-	float s = 0.0, a[size];
-	float v = low / 10.0;
+	float s = 0.0, a[size], v = low / 10.0;
 	for ( int i = 0; i < size; i += 1, v += 0.1f ) {
 		s += (float)v;
 		a[i] = (float)v;
-	}
+	} // for
 	sout | "sum from " | low / 10.0 | " to " | High / 10.0 | " is "
 		 | sum( size, (float *)a ) | ", check " | (float)s | endl;
-#endif
-	double s = 0, a[size];
-	double v = low / 10.0;
 
+	double s = 0, a[size], v = low / 10.0;
 	for ( int i = 0; i < size; i += 1, v += 0.1 ) {
 		s += (double)v;
 		a[i] = (double)v;
-	}
+	} // for
 	sout | "sum from " | low / 10.0 | " to " | High / 10.0 | " is "
 		 | sum( size, (double *)a ) | ", check " | (double)s | endl;
 
-	// struct S { int i, j; } sarr[size];
-	// struct S 0 = { 0, 0 };
-	// struct S 1 = { 1, 1 };
-	// S ?+?( S t1, S t2 ) { S s = { t1.i + t1.j, t2.i + t2.j }; return s; }
-	// S ?+=?( S *t1, S t2 ) { *t1 = *t1 + t2; return *t1; }
-	// S ++?( S *t ) { *t += 1; return *t; }
-	// S ?++( S *t ) { S temp = *t; *t += 1; return temp; }
-	// sum( size, sarr );
+	struct S { int i, j; } 0 = { 0, 0 }, 1 = { 1, 1 };
+	S ?+?( S t1, S t2 ) { S s = { t1.i + t2.i, t1.j + t2.j }; return s; }
+	S ?+=?( S *t1, S t2 ) { *t1 = *t1 + t2; return *t1; }
+	S ++?( S *t ) { *t += 1; return *t; }
+	S ?++( S *t ) { S temp = *t; *t += 1; return temp; }
+	ofstream * ?|?( ofstream * os, S v ) { return os | v.i | ' ' | v.j; }
+
+	S s = 0, a[size], v = { low, low };
+	for ( int i = 0; i < size; i += 1, v += (S)1 ) {
+		s += (S)v;
+		a[i] = (S)v;
+	} // for
+	sout | "sum from " | low | " to " | High | " is "
+		 | sum( size, (S *)a ) | ", check " | (S)s | endl;
 } // main
 
Index: src/examples/swap.c
===================================================================
--- src/examples/swap.c	(revision c44e6220a6e2d35bc4df195fa8e088f34d12387f)
+++ src/examples/swap.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Feb  3 11:14:04 2016
-// Update Count     : 63
+// Last Modified On : Wed Feb 17 12:22:12 2016
+// Update Count     : 64
 //
 
@@ -18,6 +18,4 @@
 
 int main( void ) {
-	ofstream *sout = ofstream_stdout();
-
 	char c1 = 'a', c2 = 'b';
 	sout | "char\t\t\t" | c1 | ' ' | c2 | "\t\t\tswap ";
Index: src/examples/twice.c
===================================================================
--- src/examples/twice.c	(revision c44e6220a6e2d35bc4df195fa8e088f34d12387f)
+++ src/examples/twice.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jan 26 17:14:44 2016
-// Update Count     : 12
+// Last Modified On : Wed Feb 17 12:23:25 2016
+// Update Count     : 13
 //
 
@@ -27,5 +27,4 @@
 	char ?++( char *op ) { char temp = *op; *op += 1; return temp; }
 
-	ofstream *sout = ofstream_stdout();
 	sout | twice( 'a' ) | ' ' | twice( 1 ) | ' ' | twice( 3.2 ) | endl;
 }
Index: src/examples/vector_test.c
===================================================================
--- src/examples/vector_test.c	(revision c44e6220a6e2d35bc4df195fa8e088f34d12387f)
+++ src/examples/vector_test.c	(revision 61a48757656efe758be315326b5c1d41dc33cd8b)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jan 26 17:14:52 2016
-// Update Count     : 17
+// Last Modified On : Wed Feb 17 12:23:55 2016
+// Update Count     : 18
 //
 
@@ -20,6 +20,4 @@
 
 int main( void ) {
-	ofstream *sout = ofstream_stdout();
-	ifstream *sin = ifstream_stdin();
 	vector_int vec = vector_int_allocate();
 
