Index: src/tests/concurrent/examples/boundedBuffer.c
===================================================================
--- src/tests/concurrent/examples/boundedBuffer.c	(revision edb6f7946715f3d8ccf6255348c2dd7b234b2ba6)
+++ src/tests/concurrent/examples/boundedBuffer.c	(revision a1ecdd1386e54a636111c6f86012e749c2bfb891)
@@ -8,6 +8,6 @@
 // Created On       : Mon Oct 30 12:45:13 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Dec  5 23:01:51 2017
-// Update Count     : 10
+// Last Modified On : Wed Dec 13 21:01:49 2017
+// Update Count     : 27
 //
 
@@ -18,17 +18,21 @@
 #include <unistd.h>										// getpid
 
+forall( otype T )
 monitor Buffer {
 	condition full, empty;
 	int front, back, count;
-	int elements[20];
+	T elements[20];
 };
 
-void ?{}( Buffer & buffer ) {
+forall( otype T )
+void ?{}( Buffer(T) & buffer ) {
 	buffer.front = buffer.back = buffer.count = 0;
 }
 
-int query( Buffer & buffer ) { return buffer.count; }
+forall( otype T )
+int query( Buffer(T) & buffer ) { return buffer.count; }
 
-void insert( Buffer & mutex buffer, int elem ) with( buffer ) {
+forall( otype T )
+void insert( Buffer(T) & mutex buffer, T elem ) with( buffer ) {
 	if ( count == 20 ) wait( empty );
 	elements[back] = elem;
@@ -37,7 +41,9 @@
 	signal( full );
 }
-int remove( Buffer & mutex buffer ) with( buffer ) {
+
+forall( otype T )
+T remove( Buffer(T) & mutex buffer ) with( buffer ) {
 	if ( count == 0 ) wait( full );
-	int elem = elements[front];
+	T elem = elements[front];
 	front = ( front + 1 ) % 20;
 	count -= 1;
@@ -47,5 +53,5 @@
 
 thread Producer {
-	Buffer & buffer;
+	Buffer(int) & buffer;
 	unsigned int N;
 };
@@ -57,11 +63,11 @@
 	insert( prod.buffer, -1 );
 }
-void ?{}( Producer & prod, Buffer * buffer, unsigned int N ) {
+void ?{}( Producer & prod, Buffer(int) * buffer, unsigned int N ) {
 	&prod.buffer = buffer;
 	prod.N = N;
-		}
+}
 
 thread Consumer {
-	Buffer & buffer;
+	Buffer(int) & buffer;
 	int & sum;						// summation of producer values
 };
@@ -75,5 +81,5 @@
 	} // for
 }
-void ?{}( Consumer & cons, Buffer * buffer, int * sum ) {
+void ?{}( Consumer & cons, Buffer(int) * buffer, int * sum ) {
 	&cons.buffer = buffer;
 	&cons.sum = sum;
@@ -81,5 +87,5 @@
 
 int main() {
-	Buffer buffer;
+	Buffer(int) buffer;
 	enum { Prods = 5, Cons = 5 };
 	Producer * prods[Prods];
