Index: src/tests/.expect/tupleVariadic.txt
===================================================================
--- src/tests/.expect/tupleVariadic.txt	(revision 0c286cfb20d6d3d7349e7b9e1173b377dba3fa2c)
+++ src/tests/.expect/tupleVariadic.txt	(revision f8311773ddba919bb17f47a41db0f35c3fb81226)
@@ -9,2 +9,9 @@
 called ?{} with a: 10 2 3 4
 array = { 10, 2, 3, 4, }
+calling func
+called process(int) 3
+called process(double) 2
+called process(int) 111
+called process(double) 4.145
+called func(void)
+finished func
Index: src/tests/tupleVariadic.c
===================================================================
--- src/tests/tupleVariadic.c	(revision 0c286cfb20d6d3d7349e7b9e1173b377dba3fa2c)
+++ src/tests/tupleVariadic.c	(revision f8311773ddba919bb17f47a41db0f35c3fb81226)
@@ -13,4 +13,19 @@
 // Update Count     : 2
 //
+
+void func(void) {
+	printf("called func(void)\n");
+}
+forall(otype T, ttype Params | { void process(T); void func(Params); })
+void func(T arg1, Params p) {
+	process(arg1);
+	func(p);
+}
+void process(int x) {
+	printf("called process(int) %d\n", x);
+}
+void process(double x) {
+	printf("called process(double) %g\n", x);
+}
 
 forall(otype T) T * malloc();
@@ -93,4 +108,7 @@
 	array * x4 = new(10, 2, 3, 4);
 	print(x4);
+	printf("calling func\n");
+	func(3, 2.0, 111, 4.145);
+	printf("finished func\n");
 }
 
