Index: libcfa/src/gmp.hfa
===================================================================
--- libcfa/src/gmp.hfa	(revision 5454d77a6b5c2ea57768bd648080a60b2025a753)
+++ libcfa/src/gmp.hfa	(revision c6350470ab390c9044f97a10e8ed8ca3242b2f48)
@@ -10,6 +10,6 @@
 // Created On       : Tue Apr 19 08:43:43 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Jun 29 09:43:30 2023
-// Update Count     : 33
+// Last Modified On : Tue Jul 18 11:04:54 2023
+// Update Count     : 35
 //
 
@@ -268,8 +268,5 @@
 			return os;
 		} // ?|?
-
-		void ?|?( ostype & os, Int mp ) {
-			(ostype)(os | mp); ends( os );
-		} // ?|?
+		OSTYPE_VOID_IMPL( Int )
 	} // distribution
 } // distribution
Index: libcfa/src/iostream.cfa
===================================================================
--- libcfa/src/iostream.cfa	(revision 5454d77a6b5c2ea57768bd648080a60b2025a753)
+++ libcfa/src/iostream.cfa	(revision c6350470ab390c9044f97a10e8ed8ca3242b2f48)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 18 10:42:51 2023
-// Update Count     : 1401
+// Last Modified On : Tue Jul 18 13:56:01 2023
+// Update Count     : 1403
 //
 
@@ -760,9 +760,4 @@
 
 
-#define ISTYPE_VOID_VAL_IMPL( T ) \
-	void ?|?( istype & is, T t ) { \
-		(istype &)(is | t); ends( is ); \
-	} // ?|?
-
 forall( istype & | basic_istream( istype ) ) {
 	istype & ?|?( istype & is, bool & b ) {
@@ -777,5 +772,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( bool )
+	ISTYPE_VOID_IMPL( bool & )
 
 	istype & ?|?( istype & is, char & c ) {
@@ -789,5 +784,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( char )
+	ISTYPE_VOID_IMPL( char & )
 
 	istype & ?|?( istype & is, signed char & sc ) {
@@ -795,5 +790,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( signed char )
+	ISTYPE_VOID_IMPL( signed char & )
 
 	istype & ?|?( istype & is, unsigned char & usc ) {
@@ -801,5 +796,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( unsigned char )
+	ISTYPE_VOID_IMPL( unsigned char & )
 
 	istype & ?|?( istype & is, short int & si ) {
@@ -807,5 +802,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( short int )
+	ISTYPE_VOID_IMPL( short int & )
 
 	istype & ?|?( istype & is, unsigned short int & usi ) {
@@ -813,5 +808,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( unsigned short int )
+	ISTYPE_VOID_IMPL( unsigned short int & )
 
 	istype & ?|?( istype & is, int & i ) {
@@ -819,5 +814,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( int )
+	ISTYPE_VOID_IMPL( int & )
 
 	istype & ?|?( istype & is, unsigned int & ui ) {
@@ -825,5 +820,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( unsigned int )
+	ISTYPE_VOID_IMPL( unsigned int & )
 
 	istype & ?|?( istype & is, long int & li ) {
@@ -831,5 +826,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( long int )
+	ISTYPE_VOID_IMPL( long int & )
 
 	istype & ?|?( istype & is, unsigned long int & ulli ) {
@@ -837,5 +832,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( unsigned long int )
+	ISTYPE_VOID_IMPL( unsigned long int & )
 
 	istype & ?|?( istype & is, long long int & lli ) {
@@ -843,5 +838,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( long long int )
+	ISTYPE_VOID_IMPL( long long int & )
 
 	istype & ?|?( istype & is, unsigned long long int & ulli ) {
@@ -849,5 +844,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( unsigned long long int )
+	ISTYPE_VOID_IMPL( unsigned long long int & )
 
 	#if defined( __SIZEOF_INT128__ )
@@ -855,5 +850,5 @@
 		return (istype &)(is | (unsigned int128 &)llli);
 	} // ?|?
-	ISTYPE_VOID_IMPL( int128 )
+	ISTYPE_VOID_IMPL( int128 & )
 
 	istype & ?|?( istype & is, unsigned int128 & ullli ) {
@@ -872,5 +867,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( unsigned int128 )
+	ISTYPE_VOID_IMPL( unsigned int128 & )
 	#endif // __SIZEOF_INT128__
 
@@ -879,5 +874,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( float )
+	ISTYPE_VOID_IMPL( float & )
 
 	istype & ?|?( istype & is, double & d ) {
@@ -885,5 +880,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( double )
+	ISTYPE_VOID_IMPL( double & )
 
 	istype & ?|?( istype & is, long double & ld ) {
@@ -891,5 +886,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( long double )
+	ISTYPE_VOID_IMPL( long double & )
 
 	istype & ?|?( istype & is, float _Complex & fc ) {
@@ -899,5 +894,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( float _Complex )
+	ISTYPE_VOID_IMPL( float _Complex & )
 
 	istype & ?|?( istype & is, double _Complex & dc ) {
@@ -907,5 +902,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( double _Complex )
+	ISTYPE_VOID_IMPL( double _Complex & )
 
 	istype & ?|?( istype & is, long double _Complex & ldc ) {
@@ -915,5 +910,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_IMPL( long double _Complex )
+	ISTYPE_VOID_IMPL( long double _Complex & )
 
 	// istype & ?|?( istype & is, const char fmt[] ) {
@@ -926,5 +921,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_VAL_IMPL( char * )
+	ISTYPE_VOID_IMPL( char * )
 
 	// manipulators
@@ -988,5 +983,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_VAL_IMPL( _Istream_Cstr )
+	ISTYPE_VOID_IMPL( _Istream_Cstr )
 
 	istype & ?|?( istype & is, _Istream_Char f ) {
@@ -994,5 +989,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_VAL_IMPL( _Istream_Char )
+	ISTYPE_VOID_IMPL( _Istream_Char )
 } // distribution
 
@@ -1011,5 +1006,5 @@
 		return is; \
 	} /* ?|? */ \
-	ISTYPE_VOID_VAL_IMPL( _Istream_Manip(T) ) \
+	ISTYPE_VOID_IMPL( _Istream_Manip(T) ) \
 } // distribution
 
@@ -1039,5 +1034,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_VAL_IMPL( _Istream_Manip(float _Complex) )
+	ISTYPE_VOID_IMPL( _Istream_Manip(float _Complex) )
 
 	istype & ?|?( istype & is, _Istream_Manip(double _Complex) dc ) {
@@ -1050,5 +1045,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_VAL_IMPL( _Istream_Manip(double _Complex) )
+	ISTYPE_VOID_IMPL( _Istream_Manip(double _Complex) )
 
 	istype & ?|?( istype & is, _Istream_Manip(long double _Complex) ldc ) {
@@ -1061,5 +1056,5 @@
 		return is;
 	} // ?|?
-	ISTYPE_VOID_VAL_IMPL( _Istream_Manip(long double _Complex) )
+	ISTYPE_VOID_IMPL( _Istream_Manip(long double _Complex) )
 } // distribution
 
Index: libcfa/src/iostream.hfa
===================================================================
--- libcfa/src/iostream.hfa	(revision 5454d77a6b5c2ea57768bd648080a60b2025a753)
+++ libcfa/src/iostream.hfa	(revision c6350470ab390c9044f97a10e8ed8ca3242b2f48)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 18 10:42:52 2023
-// Update Count     : 438
+// Last Modified On : Tue Jul 18 15:57:21 2023
+// Update Count     : 462
 //
 
@@ -138,4 +138,7 @@
 	OSTYPE_VOID( const void * );
 
+	// forall( T | { ostype & ?|?( ostype &, T ); } )
+	// void ?|?( ostype & os, T );
+
 	// manipulators
 	ostype & ?|?( ostype &, ostype & (*)( ostype & ) );
@@ -214,5 +217,5 @@
 forall( ostype & | basic_ostream( ostype ) ) { \
 	ostype & ?|?( ostype & os, _Ostream_Manip(T) f ); \
-	void ?|?( ostype & os, _Ostream_Manip(T) f ); \
+	OSTYPE_VOID( _Ostream_Manip(T) ); \
 } // ?|?
 
@@ -259,5 +262,5 @@
 forall( ostype & | basic_ostream( ostype ) ) { \
 	ostype & ?|?( ostype & os, _Ostream_Manip(T) f ); \
-	void ?|?( ostype & os, _Ostream_Manip(T) f ); \
+	OSTYPE_VOID( _Ostream_Manip(T) ); \
 } // ?|?
 
@@ -279,5 +282,5 @@
 forall( ostype & | basic_ostream( ostype ) ) {
 	ostype & ?|?( ostype & os, _Ostream_Manip(char) f );
-	void ?|?( ostype & os, _Ostream_Manip(char) f );
+	OSTYPE_VOID( _Ostream_Manip(char) ); \
 } // ?|?
 
@@ -297,5 +300,5 @@
 forall( ostype & | basic_ostream( ostype ) ) {
 	ostype & ?|?( ostype & os, _Ostream_Manip(const char *) f );
-	void ?|?( ostype & os, _Ostream_Manip(const char *) f );
+	OSTYPE_VOID( _Ostream_Manip(const char *) ); \
 } // ?|?
 
@@ -306,5 +309,5 @@
 #define ISTYPE_VOID( T ) void ?|?( istype &, T )
 #define ISTYPE_VOID_IMPL( T ) \
-	void ?|?( istype & is, T & t ) { \
+	void ?|?( istype & is, T t ) { \
 		(istype &)(is | t); ends( is ); \
 	} // ?|?
@@ -387,5 +390,5 @@
 //	istype & ?|?( istype &, const char [] );
 	istype & ?|?( istype &, char [] );
-	void ?|?( istype &, char [] );
+	ISTYPE_VOID( char * );
 
 	// manipulators
@@ -426,5 +429,5 @@
 forall( istype & | basic_istream( istype ) ) {
 	istype & ?|?( istype & is, _Istream_Cstr f );
-	void ?|?( istype & is, _Istream_Cstr f );
+	ISTYPE_VOID( _Istream_Cstr );
 }
 
@@ -439,5 +442,5 @@
 forall( istype & | basic_istream( istype ) ) {
 	istype & ?|?( istype & is, _Istream_Char f );
-	void ?|?( istype & is, _Istream_Char f );
+	ISTYPE_VOID( _Istream_Char );
 }
 
@@ -458,5 +461,5 @@
 forall( istype & | basic_istream( istype ) ) { \
 	istype & ?|?( istype & is, _Istream_Manip(T) f ); \
-	void ?|?( istype & is, _Istream_Manip(T) f ); \
+	ISTYPE_VOID( _Istream_Manip(T) ); \
 } // ?|?
 
@@ -488,7 +491,7 @@
 forall( ostype & | ostream( ostype ) ) {
 	ostype & ?|?( ostype & os, Duration dur );
-	void ?|?( ostype & os, Duration dur );
+	OSTYPE_VOID( Duration );
 	ostype & ?|?( ostype & os, Time time );
-	void ?|?( ostype & os, Time time );
+	OSTYPE_VOID( Time );
 } // distribution
 
