Index: src/examples/sum.c
===================================================================
--- src/examples/sum.c	(revision bd8540001c298d12d68dabcd274a24ed5a4dfb7a)
+++ src/examples/sum.c	(revision 52f85e0c522e3914bc6c3fa98cf315bdf8c09347)
@@ -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 : Sat Feb  6 11:57:42 2016
+// Update Count     : 182
 //
 
@@ -33,59 +33,60 @@
 
 // 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
 
