Index: tests/.expect/KRfunctions.x64.txt
===================================================================
--- tests/.expect/KRfunctions.x64.txt	(revision 2b10f958db325dea85128cd85f1c1c9c8a596962)
+++ tests/.expect/KRfunctions.x64.txt	(revision 86fb8f2eb09b7e86dbe5a9c58b2ef0fae49bfee9)
@@ -82,7 +82,7 @@
     signed int _X1ai_2;
     signed int _X1bi_2;
-    signed int *(*_tmp_cp_ret2)(signed int _X1xi_1, signed int _X1yi_1);
-    ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret2=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret2)));
-    ((void)(_tmp_cp_ret2) /* ^?{} */);
+    signed int *(*_tmp_cp_ret4)(signed int _X1xi_1, signed int _X1yi_1);
+    ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret4=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret4)));
+    ((void)(_tmp_cp_ret4) /* ^?{} */);
     const signed int _X2f1Fi_iPiPi__2(signed int _X1ai_2, signed int *_X1bPi_2, signed int *_X1cPi_2){
         __attribute__ ((unused)) const signed int _X10_retval_f1Ki_2;
Index: tests/.expect/completeTypeError.txt
===================================================================
--- tests/.expect/completeTypeError.txt	(revision 2b10f958db325dea85128cd85f1c1c9c8a596962)
+++ tests/.expect/completeTypeError.txt	(revision 86fb8f2eb09b7e86dbe5a9c58b2ef0fae49bfee9)
@@ -87,5 +87,5 @@
    void 
  )
- Environment:( _74_0_T ) -> instance of type T (not function type) (no widening)
+ Environment:( _99_0_T ) -> instance of type T (not function type) (no widening)
 
 
Index: tests/.expect/declarationSpecifier.x64.txt
===================================================================
--- tests/.expect/declarationSpecifier.x64.txt	(revision 2b10f958db325dea85128cd85f1c1c9c8a596962)
+++ tests/.expect/declarationSpecifier.x64.txt	(revision 86fb8f2eb09b7e86dbe5a9c58b2ef0fae49bfee9)
@@ -698,7 +698,7 @@
 signed int main(signed int _X4argci_1, char **_X4argvPPc_1, char **_X4envpPPc_1){
     __attribute__ ((unused)) signed int _X12_retval_maini_1;
-    signed int _tmp_cp_ret2;
-    ((void)(_X12_retval_maini_1=(((void)(_tmp_cp_ret2=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret2)) /* ?{} */);
-    ((void)(_tmp_cp_ret2) /* ^?{} */);
+    signed int _tmp_cp_ret4;
+    ((void)(_X12_retval_maini_1=(((void)(_tmp_cp_ret4=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret4)) /* ?{} */);
+    ((void)(_tmp_cp_ret4) /* ^?{} */);
     return _X12_retval_maini_1;
 }
Index: tests/.expect/extension.x64.txt
===================================================================
--- tests/.expect/extension.x64.txt	(revision 2b10f958db325dea85128cd85f1c1c9c8a596962)
+++ tests/.expect/extension.x64.txt	(revision 86fb8f2eb09b7e86dbe5a9c58b2ef0fae49bfee9)
@@ -186,7 +186,7 @@
     __extension__ signed int _X1ci_2;
     ((void)(__extension__ _X1ai_2=(__extension__ _X1bi_2+__extension__ _X1ci_2)));
-    signed int _tmp_cp_ret2;
-    ((void)(((void)(_tmp_cp_ret2=__extension__ _X4fredFi_i__1(3))) , _tmp_cp_ret2));
-    ((void)(_tmp_cp_ret2) /* ^?{} */);
+    signed int _tmp_cp_ret4;
+    ((void)(((void)(_tmp_cp_ret4=__extension__ _X4fredFi_i__1(3))) , _tmp_cp_ret4));
+    ((void)(_tmp_cp_ret4) /* ^?{} */);
     __extension__ signed int _X4maryFi_i__2(signed int _X1pi_2){
         __attribute__ ((unused)) signed int _X12_retval_maryi_2;
Index: tests/.expect/gccExtensions.x64.txt
===================================================================
--- tests/.expect/gccExtensions.x64.txt	(revision 2b10f958db325dea85128cd85f1c1c9c8a596962)
+++ tests/.expect/gccExtensions.x64.txt	(revision 86fb8f2eb09b7e86dbe5a9c58b2ef0fae49bfee9)
@@ -171,7 +171,7 @@
 signed int main(signed int _X4argci_1, char **_X4argvPPc_1, char **_X4envpPPc_1){
     __attribute__ ((unused)) signed int _X12_retval_maini_1;
-    signed int _tmp_cp_ret2;
-    ((void)(_X12_retval_maini_1=(((void)(_tmp_cp_ret2=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret2)) /* ?{} */);
-    ((void)(_tmp_cp_ret2) /* ^?{} */);
+    signed int _tmp_cp_ret4;
+    ((void)(_X12_retval_maini_1=(((void)(_tmp_cp_ret4=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret4)) /* ?{} */);
+    ((void)(_tmp_cp_ret4) /* ^?{} */);
     return _X12_retval_maini_1;
 }
Index: tests/.expect/math1.txt
===================================================================
--- tests/.expect/math1.txt	(revision 2b10f958db325dea85128cd85f1c1c9c8a596962)
+++ tests/.expect/math1.txt	(revision 86fb8f2eb09b7e86dbe5a9c58b2ef0fae49bfee9)
@@ -10,4 +10,8 @@
 expm1:1.71828 1.71828182845905 1.71828182845904524
 pow:1 1 1 0.273957+0.583701i 0.273957253830121+0.583700758758615i -0.638110484918098871+0.705394566961838155i
-\ 16 256
-\ 912673 256 64 -64 0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
+16 \ 2 = 256
+912673 256 64 -64 0 0
+0.015625 -0.015625 18.3791736799526 0.264715-1.1922i
+0 0 18.3791736799526 0.264715-1.1922i
+16
+4 16
Index: tests/coroutine/pingpong.cfa
===================================================================
--- tests/coroutine/pingpong.cfa	(revision 2b10f958db325dea85128cd85f1c1c9c8a596962)
+++ tests/coroutine/pingpong.cfa	(revision 86fb8f2eb09b7e86dbe5a9c58b2ef0fae49bfee9)
@@ -10,6 +10,6 @@
 // Created On       : Wed Sep 20 11:55:23 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Mar 22 13:37:52 2019
-// Update Count     : 30
+// Last Modified On : Tue Mar 26 17:54:14 2019
+// Update Count     : 35
 //
 
@@ -20,15 +20,12 @@
 	const char * name;
 	/* const */ unsigned int N;
-	PingPong * part;
+	PingPong & part;
 };
 
 void ?{}( PingPong & this, const char * name, unsigned int N, PingPong & part ) {
-	(this.__cor){name};
-	this.name = name;
-	this.N = N;
-	this.part = &part;
+	this.[name, N] = [name, N];  &this.part = &part;
 }
 void ?{}( PingPong & this, const char * name, unsigned int N ) {
-	this{ name, N, *(PingPong *)0 };
+	this{ name, N, *0p };								// call first constructor
 }
 void cycle( PingPong & pingpong ) {
@@ -36,11 +33,11 @@
 }
 void partner( PingPong & this, PingPong & part ) {
-	this.part = &part;
+	&this.part = &part;
 	resume( this );
 }
-void main( PingPong & pingpong ) {						// ping's starter ::main, pong's starter ping
-	for ( pingpong.N ) {								// N ping-pongs
-		sout | pingpong.name;
-		cycle( *pingpong.part );
+void main( PingPong & pingpong ) with(pingpong) {		// ping's starter ::main, pong's starter ping
+	for ( N ) {											// N ping-pongs
+		sout | name;
+		cycle( part );
 	} // for
 }
Index: tests/math1.cfa
===================================================================
--- tests/math1.cfa	(revision 2b10f958db325dea85128cd85f1c1c9c8a596962)
+++ tests/math1.cfa	(revision 86fb8f2eb09b7e86dbe5a9c58b2ef0fae49bfee9)
@@ -10,6 +10,6 @@
 // Created On       : Fri Apr 22 14:59:21 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Dec 12 16:28:49 2018
-// Update Count     : 89
+// Last Modified On : Mon Mar 25 22:56:47 2019
+// Update Count     : 109
 //
 
@@ -49,7 +49,19 @@
 	unsigned int e = 2;
     b \= e;
-    sout | "\\" | b | b \ e;
-    sout | "\\" | 'a' \ 3u | 2 \ 8u | 4 \ 3u | -4 \ 3u | nonl;
+    sout | b | "\\" | e | "= " | b \ e;
+    sout | 'a' \ 3 | 2 \ 8 | 4 \ 3 | -4 \ 3 | 4 \ -3 | -4 \ -3;
+	sout | 4.0 \ -3 | -4.0 \ -3 | 4.0 \ 2.1 | (1.0f+2.0fi) \ (3.0f+2.0fi);
 	sout | 4 \ -3 | -4 \ -3 | 4.0 \ 2.1 | (1.0f+2.0fi) \ (3.0f+2.0fi);
+
+	struct S { int i; };
+	double ?*?( double d, S s ) { return d * s.i; }
+	double ?/?( double d, S s ) { return d / s.i; }
+	S ?\?( S s, unsigned long y ) { return (S){ s.i \ y }; }
+	ofstream & ?|?( ofstream & os, S s ) { return os | s.i; }
+	void ?|?( ofstream & os, S s ) { (ofstream &)(os | s); nl( os ); }
+	S s = { 4 };
+	S x = s \ 2;
+	sout | x;
+	sout | s.i | s \ 2u;
 } // main
 
Index: tests/rational.cfa
===================================================================
--- tests/rational.cfa	(revision 2b10f958db325dea85128cd85f1c1c9c8a596962)
+++ tests/rational.cfa	(revision 86fb8f2eb09b7e86dbe5a9c58b2ef0fae49bfee9)
@@ -10,6 +10,6 @@
 // Created On       : Mon Mar 28 08:43:12 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Mar 19 08:30:28 2019
-// Update Count     : 73
+// Last Modified On : Wed Mar 27 07:37:17 2019
+// Update Count     : 80
 //
 
@@ -54,4 +54,6 @@
 	sout | a * b;
 	sout | a / b;
+//	sout | a \ 2 | b \ 2; // FIX ME
+//	sout | a \ -2 | b \ -2;
 
 	sout | "conversion";
