Index: tests/.expect/forall.txt
===================================================================
--- tests/.expect/forall.txt	(revision 2125443a425acb1ef9b560898cf33182c9f1dd8b)
+++ tests/.expect/forall.txt	(revision f883ef104f8aac43bf52c60d0850837eef7a3536)
@@ -1,1 +1,21 @@
-forall.cfa:244:25: warning: Compiled
+1
+f
+97
+f
+g
+f
+f
+g
+fT
+fT
+fT
+fTU
+fTU
+fTU
+1 2
+2 1
+1, 2
+@ 0 2 0 4 6.4 6.4 6.4 6.4+3.i 4
+3. 3.
+45
+12 3
Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am	(revision 2125443a425acb1ef9b560898cf33182c9f1dd8b)
+++ tests/Makefile.am	(revision f883ef104f8aac43bf52c60d0850837eef7a3536)
@@ -11,6 +11,6 @@
 ## Created On       : Sun May 31 09:08:15 2015
 ## Last Modified By : Peter A. Buhr
-## Last Modified On : Sat Jun  5 14:49:25 2021
-## Update Count     : 92
+## Last Modified On : Fri Feb  3 23:06:44 2023
+## Update Count     : 94
 ###############################################################################
 
@@ -89,5 +89,5 @@
 	meta/fork+exec.hfa \
 	concurrent/unified_locking/mutex_test.hfa \
-    concurrent/channels/parallel_harness.hfa
+	concurrent/channels/parallel_harness.hfa
 
 dist-hook:
@@ -183,5 +183,5 @@
 CFACOMPILE_SYNTAX = $(CFACOMPILETEST) -Wno-unused-variable -Wno-unused-label -c -fsyntax-only -o $(abspath ${@})
 
-SYNTAX_ONLY_CODE = expression typedefRedef variableDeclarator switch numericConstants identFuncDeclarator forall \
+SYNTAX_ONLY_CODE = expression typedefRedef variableDeclarator switch numericConstants identFuncDeclarator \
 	init1 limits nested-types cast labelledExit array quasiKeyword include/stdincludes include/includes builtins/sync warnings/self-assignment
 $(SYNTAX_ONLY_CODE): % : %.cfa $(CFACCBIN)
Index: tests/forall.cfa
===================================================================
--- tests/forall.cfa	(revision 2125443a425acb1ef9b560898cf33182c9f1dd8b)
+++ tests/forall.cfa	(revision f883ef104f8aac43bf52c60d0850837eef7a3536)
@@ -10,17 +10,20 @@
 // Created On       : Wed May  9 08:48:15 2018
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Feb  2 15:28:45 2023
-// Update Count     : 38
-//
+// Last Modified On : Sun Feb  5 07:54:43 2023
+// Update Count     : 90
+//
+
+#include <fstream.hfa>
 
 void g1() {
-	forall( T ) T f( T ) {};
-	void f( int ) {};
-	void h( void (*p)(void) ) {};
-
-	int x;
-	void (*y)(void);
-	char z;
-	float w;
+	forall( T ) T f( T p ) { sout | 'f'; return p;  };
+	void f( int p ) { sout | p; };
+	void g( void ) { sout | 'g'; };
+	void h( void (*p)(void) ) { p(); };
+
+	int x = 1;
+	void (*y)(void) = g;
+	char z = 'a';
+	float w = 3.5;
 
 	f( x );
@@ -28,16 +31,21 @@
 	f( z );
 	f( w );
+	h( y );
+	f( y );
 	h( f( y ) );
 }
 
 void g2() {
-	forall( T ) void f( T, T ) {}
-	forall( T, U ) void f( T, U ) {}
+	forall( T ) void f( T, T ) { sout | "fT"; }
+	forall( T, U ) void f( T, U ) { sout | "fTU"; }
 
 	int x;
 	float y;
-	int *z;
-	float *w;
-
+	int * z;
+	float * w;
+
+	f( x, x );
+	f( y, y );
+	f( w, w );
 	f( x, y );
 	f( z, w );
@@ -50,8 +58,13 @@
 
 forall( T )
-void swap( T left, T right ) {
-	T temp = left;
-	left = right;
-	right = temp;
+void swap( T & left, T & right ) {						// by reference
+    T temp = left;
+    left = right;
+    right = temp;
+}
+
+forall( T )
+[ T, T ] swap( T i, T j ) {								// by value
+    return [ j, i ];
 }
 
@@ -72,5 +85,5 @@
 } // sum
 
-forall( T | { T ?+?( T, T ); T ?++( T & ); [T] ?+=?( T &,T ); } )
+forall( T | { T ?+?( T, T ); T ?++( T & ); [T] ?+=?( T &, T ); } )
 T twice( T t ) {
 	return t + t;
@@ -82,12 +95,17 @@
 }
 
-int fred() {
-	int x = 1, y = 2, a[10];
+void fred() {
+	int x = 1, y = 2, a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
 	float f;
 
+	sout | x | y;
 	swap( x, y );
-	twice( x );
+	sout | x | y | nl | swap( x, y );
+	// [ x, y ] = swap( y, x );
+	sout | twice( ' ' ) | ' ' | twice( 0hh ) | twice( 1h ) | twice( 0n ) | twice( 2 )
+		 | twice( 3.2f ) | twice( 3.2 ) | twice( 3.2d ) | twice( 3.2+1.5i ) | twice( x );
 	f = min( 4.0, 3.0 );
-	sum( 10, a );
+	sout | f | min( 4.0, 3.0 );
+	sout | sum( 10, a );
 }
 
@@ -186,8 +204,8 @@
 
 forall( T ) {
-	extern "C" {
+//	extern "C" {
 		struct SS { T t; };
-		T foo( T ) {}
-	}
+		T foo( T p ) { return p; }
+//	}
 }
 
@@ -195,8 +213,9 @@
 W(int,int) w;
 
-int jane() {
+void jane() {
 //	int j = bar( 3, 4 );
 	int k = baz( 3, 4, 5 );
 	int i = foo( 3 );
+	sout | k | i;
 }
 
@@ -211,4 +230,5 @@
 	T t;
 	T t2 = t;
+	sout | &tr | tp;
 }
 
@@ -242,5 +262,8 @@
 
 int main( void ) {
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+	g1();
+	g2();
+	fred();
+	jane();
 }
 
