Index: libcfa/prelude/builtins.c
===================================================================
--- libcfa/prelude/builtins.c	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/prelude/builtins.c	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -10,6 +10,6 @@
 // Created On       : Fri Jul 21 16:21:03 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Aug 14 08:45:54 2021
-// Update Count     : 133
+// Last Modified On : Thu Feb  2 11:33:56 2023
+// Update Count     : 135
 //
 
@@ -64,5 +64,6 @@
 static inline void ^?{}(generator$ &) {}
 
-trait is_generator(T &) {
+forall( T & )
+trait is_generator {
       void main(T & this);
       generator$ * get_generator(T & this);
Index: libcfa/prelude/prelude-gen.cc
===================================================================
--- libcfa/prelude/prelude-gen.cc	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/prelude/prelude-gen.cc	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -10,6 +10,6 @@
 // Created On       : Sat Feb 16 08:44:58 2019
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Apr  2 17:18:24 2019
-// Update Count     : 37
+// Last Modified On : Thu Feb  2 11:40:01 2023
+// Update Count     : 38
 //
 
@@ -159,5 +159,5 @@
 int main() {
 	cout << "# 2 \"prelude.cfa\"  // needed for error messages from this file" << endl;
-	cout << "trait sized(T &) {};" << endl;
+	cout << "forall( T & ) trait sized {};" << endl;
 
 	cout << "//////////////////////////" << endl;
Index: libcfa/src/bits/containers.hfa
===================================================================
--- libcfa/src/bits/containers.hfa	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/src/bits/containers.hfa	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -10,6 +10,6 @@
 // Created On       : Tue Oct 31 16:38:50 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jan 15 07:42:35 2020
-// Update Count     : 28
+// Last Modified On : Thu Feb  2 11:33:08 2023
+// Update Count     : 29
 
 #pragma once
@@ -69,5 +69,6 @@
 
 #ifdef __cforall
-	trait is_node(T &) {
+	forall( T & )
+	trait is_node {
 		T *& get_next( T & );
 	};
Index: libcfa/src/concurrency/coroutine.hfa
===================================================================
--- libcfa/src/concurrency/coroutine.hfa	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/src/concurrency/coroutine.hfa	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -10,6 +10,6 @@
 // Created On       : Mon Nov 28 12:27:26 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Jan  6 16:33:16 2022
-// Update Count     : 12
+// Last Modified On : Thu Feb  2 11:31:42 2023
+// Update Count     : 13
 //
 
@@ -38,5 +38,6 @@
 // Anything that implements this trait can be resumed.
 // Anything that is resumed is a coroutine.
-trait is_coroutine(T & | IS_RESUMPTION_EXCEPTION(CoroutineCancelled(T))) {
+forall( T & | IS_RESUMPTION_EXCEPTION(CoroutineCancelled(T)) )
+trait is_coroutine {
 	void main(T & this);
 	coroutine$ * get_coroutine(T & this);
Index: libcfa/src/concurrency/locks.hfa
===================================================================
--- libcfa/src/concurrency/locks.hfa	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/src/concurrency/locks.hfa	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -640,5 +640,6 @@
 //-----------------------------------------------------------------------------
 // is_blocking_lock
-trait is_blocking_lock(L & | sized(L)) {
+forall( L & | sized(L) )
+trait is_blocking_lock {
 	// For synchronization locks to use when acquiring
 	void on_notify( L &, struct thread$ * );
Index: libcfa/src/concurrency/monitor.hfa
===================================================================
--- libcfa/src/concurrency/monitor.hfa	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/src/concurrency/monitor.hfa	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -10,6 +10,6 @@
 // Created On       : Thd Feb 23 12:27:26 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Dec  4 07:55:32 2019
-// Update Count     : 11
+// Last Modified On : Thu Feb  2 11:29:21 2023
+// Update Count     : 12
 //
 
@@ -22,5 +22,6 @@
 #include "stdlib.hfa"
 
-trait is_monitor(T &) {
+forall( T & )
+trait is_monitor {
 	monitor$ * get_monitor( T & );
 	void ^?{}( T & mutex );
Index: libcfa/src/concurrency/mutex.hfa
===================================================================
--- libcfa/src/concurrency/mutex.hfa	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/src/concurrency/mutex.hfa	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -12,6 +12,6 @@
 // Created On       : Fri May 25 01:24:09 2018
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Dec  4 09:16:53 2019
-// Update Count     : 1
+// Last Modified On : Thu Feb  2 11:46:08 2023
+// Update Count     : 2
 //
 
@@ -70,5 +70,6 @@
 void unlock(recursive_mutex_lock & this) __attribute__((deprecated("use concurrency/locks.hfa instead")));
 
-trait is_lock(L & | sized(L)) {
+forall( L & | sized(L) )
+trait is_lock {
 	void lock  (L &);
 	void unlock(L &);
Index: libcfa/src/concurrency/thread.hfa
===================================================================
--- libcfa/src/concurrency/thread.hfa	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/src/concurrency/thread.hfa	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -10,6 +10,6 @@
 // Created On       : Tue Jan 17 12:27:26 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Nov 22 22:18:34 2022
-// Update Count     : 35
+// Last Modified On : Thu Feb  2 11:27:59 2023
+// Update Count     : 37
 //
 
@@ -27,5 +27,6 @@
 //-----------------------------------------------------------------------------
 // thread trait
-trait is_thread(T &) {
+forall( T & )
+trait is_thread {
 	void ^?{}(T& mutex this);
 	void main(T& this);
Index: libcfa/src/containers/list.hfa
===================================================================
--- libcfa/src/containers/list.hfa	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/src/containers/list.hfa	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -9,7 +9,7 @@
 // Author           : Michael Brooks
 // Created On       : Wed Apr 22 18:00:00 2020
-// Last Modified By : Michael Brooks
-// Last Modified On : Wed Apr 22 18:00:00 2020
-// Update Count     : 1
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Thu Feb  2 11:32:26 2023
+// Update Count     : 2
 //
 
@@ -23,5 +23,6 @@
 };
 
-trait embedded( tOuter &, tMid &, tInner & ) {
+forall( tOuter &, tMid &, tInner & )
+trait embedded {
     tytagref( tMid, tInner ) ?`inner( tOuter & );
 };
Index: libcfa/src/containers/vector.hfa
===================================================================
--- libcfa/src/containers/vector.hfa	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/src/containers/vector.hfa	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -10,6 +10,6 @@
 // Created On       : Tue Jul  5 18:00:07 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jun 17 11:02:46 2020
-// Update Count     : 4
+// Last Modified On : Thu Feb  2 11:41:24 2023
+// Update Count     : 5
 //
 
@@ -50,6 +50,6 @@
 //------------------------------------------------------------------------------
 //Declaration
-trait allocator_c(T, allocator_t)
-{
+forall( T, allocator_t )
+trait allocator_c {
 	void realloc_storage(allocator_t*, size_t);
 	T* data(allocator_t*);
Index: libcfa/src/exception.h
===================================================================
--- libcfa/src/exception.h	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/src/exception.h	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -9,7 +9,7 @@
 // Author           : Andrew Beach
 // Created On       : Mon Jun 26 15:11:00 2017
-// Last Modified By : Andrew Beach
-// Last Modified On : Thr Apr  8 15:20:00 2021
-// Update Count     : 12
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Thu Feb  2 11:20:19 2023
+// Update Count     : 13
 //
 
@@ -101,5 +101,6 @@
 // implemented in the .c file either so they all have to be inline.
 
-trait is_exception(exceptT &, virtualT &) {
+forall( exceptT &, virtualT & )
+trait is_exception {
 	/* The first field must be a pointer to a virtual table.
 	 * That virtual table must be a decendent of the base exception virtual table.
@@ -109,9 +110,11 @@
 };
 
-trait is_termination_exception(exceptT &, virtualT & | is_exception(exceptT, virtualT)) {
+forall( exceptT &, virtualT & | is_exception(exceptT, virtualT) )
+trait is_termination_exception {
 	void defaultTerminationHandler(exceptT &);
 };
 
-trait is_resumption_exception(exceptT &, virtualT & | is_exception(exceptT, virtualT)) {
+forall( exceptT &, virtualT & | is_exception(exceptT, virtualT) )
+trait is_resumption_exception {
 	void defaultResumptionHandler(exceptT &);
 };
Index: libcfa/src/iostream.hfa
===================================================================
--- libcfa/src/iostream.hfa	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/src/iostream.hfa	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Oct 10 10:02:07 2021
-// Update Count     : 407
+// Last Modified On : Thu Feb  2 11:25:39 2023
+// Update Count     : 410
 //
 
@@ -22,5 +22,6 @@
 
 
-trait basic_ostream( ostype & ) {
+forall( ostype & )
+trait basic_ostream {
 	// private
 	bool sepPrt$( ostype & );							// get separator state (on/off)
@@ -51,5 +52,6 @@
 }; // basic_ostream
 	
-trait ostream( ostype & | basic_ostream( ostype ) ) {
+forall( ostype & | basic_ostream( ostype ) )
+trait ostream {
 	bool fail( ostype & );								// operation failed?
 	void clear( ostype & );
@@ -60,9 +62,11 @@
 }; // ostream
 
-// trait writeable( T ) {
+// forall( T )
+// trait writeable {
 // 	forall( ostype & | ostream( ostype ) ) ostype & ?|?( ostype &, T );
 // }; // writeable
 
-trait writeable( T, ostype & | ostream( ostype ) ) {
+forall( T, ostype & | ostream( ostype ) )
+	trait writeable {
 	ostype & ?|?( ostype &, T );
 }; // writeable
@@ -290,5 +294,6 @@
 
 
-trait basic_istream( istype & ) {
+forall( istype & )
+trait basic_istream {
 	// private
 	bool getANL$( istype & );							// get scan newline (on/off)
@@ -302,5 +307,6 @@
 }; // basic_istream
 
-trait istream( istype & | basic_istream( istype ) ) {
+forall( istype & | basic_istream( istype ) )
+trait istream {
 	bool fail( istype & );
 	void clear( istype & );
@@ -310,5 +316,6 @@
 }; // istream
 
-trait readable( T ) {
+forall( T )
+trait readable {
 	forall( istype & | istream( istype ) ) istype & ?|?( istype &, T );
 }; // readable
Index: libcfa/src/iterator.hfa
===================================================================
--- libcfa/src/iterator.hfa	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/src/iterator.hfa	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jul  7 08:37:25 2017
-// Update Count     : 10
+// Last Modified On : Thu Feb  2 11:21:50 2023
+// Update Count     : 11
 //
 
@@ -17,5 +17,6 @@
 
 // An iterator can be used to traverse a data structure.
-trait iterator( iterator_type, elt_type ) {
+forall( iterator_type, elt_type )
+trait iterator {
 	// point to the next element
 //	iterator_type ?++( iterator_type & );
@@ -31,5 +32,6 @@
 };
 
-trait iterator_for( iterator_type, collection_type, elt_type | iterator( iterator_type, elt_type ) ) {
+forall( iterator_type, collection_type, elt_type | iterator( iterator_type, elt_type ) )
+	trait iterator_for {
 //	[ iterator_type begin, iterator_type end ] get_iterators( collection_type );
 	iterator_type begin( collection_type );
Index: libcfa/src/math.trait.hfa
===================================================================
--- libcfa/src/math.trait.hfa	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/src/math.trait.hfa	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -10,21 +10,24 @@
 // Created On       : Fri Jul 16 15:40:52 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 20 17:47:19 2021
-// Update Count     : 19
+// Last Modified On : Thu Feb  2 11:36:56 2023
+// Update Count     : 20
 // 
 
 #pragma once
 
-trait Not( U ) {
+forall( U )
+trait Not {
 	void ?{}( U &, zero_t );
 	int !?( U );
 }; // Not
 
-trait Equality( T | Not( T ) ) {
+forall( T | Not( T ) )
+trait Equality {
 	int ?==?( T, T );
 	int ?!=?( T, T );
 }; // Equality
 
-trait Relational( U | Equality( U ) ) {
+forall( U | Equality( U ) )
+trait Relational {
 	int ?<?( U, U );
 	int ?<=?( U, U );
@@ -33,5 +36,6 @@
 }; // Relational
 
-trait Signed( T ) {
+forall ( T )
+trait Signed {
 	T +?( T );
 	T -?( T );
@@ -39,5 +43,6 @@
 }; // Signed
 
-trait Additive( U | Signed( U ) ) {
+forall( U | Signed( U ) )
+trait Additive {
 	U ?+?( U, U );
 	U ?-?( U, U );
@@ -46,5 +51,6 @@
 }; // Additive
 
-trait Incdec( T | Additive( T ) ) {
+forall( T | Additive( T ) )
+trait Incdec {
 	void ?{}( T &, one_t );
 	// T ?++( T & );
@@ -54,5 +60,6 @@
 }; // Incdec
 
-trait Multiplicative( U | Incdec( U ) ) {
+forall( U | Incdec( U ) )
+trait Multiplicative {
 	U ?*?( U, U );
 	U ?/?( U, U );
@@ -61,5 +68,6 @@
 }; // Multiplicative
 
-trait Arithmetic( T | Relational( T ) | Multiplicative( T ) ) {
+forall( T | Relational( T ) | Multiplicative( T ) )
+trait Arithmetic {
 }; // Arithmetic
 
Index: libcfa/src/stdlib.hfa
===================================================================
--- libcfa/src/stdlib.hfa	(revision 2d02803996cfedbb52f4de3ebb6f4777d17a0089)
+++ libcfa/src/stdlib.hfa	(revision 1180175fe87444afc7d78dd0e227aa5351b0b058)
@@ -10,6 +10,6 @@
 // Created On       : Thu Jan 28 17:12:35 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Dec 11 18:25:53 2022
-// Update Count     : 765
+// Last Modified On : Thu Feb  2 11:30:04 2023
+// Update Count     : 766
 //
 
@@ -404,5 +404,6 @@
 //   calls( sprng );
 
-trait basic_prng( PRNG &, R ) {
+forall( PRNG &, R )
+trait basic_prng {
 	void set_seed( PRNG & prng, R seed );				// set seed
 	R get_seed( PRNG & prng );							// get seed
