Index: src/libcfa/iostream
===================================================================
--- src/libcfa/iostream	(revision b6dc097803496f54ca0749c8149c4191a0113485)
+++ src/libcfa/iostream	(revision b16923de6f07e4eecb90f192170e17226caab592)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Apr 28 13:08:24 2018
-// Update Count     : 152
+// Last Modified On : Sat Jun  2 08:07:55 2018
+// Update Count     : 153
 //
 
@@ -56,48 +56,50 @@
 // implement writable for intrinsic types
 
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, _Bool );
+forall( dtype ostype | ostream( ostype ) ) {
+	ostype & ?|?( ostype &, _Bool );
 
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, char );
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, signed char );
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, unsigned char );
+	ostype & ?|?( ostype &, char );
+	ostype & ?|?( ostype &, signed char );
+	ostype & ?|?( ostype &, unsigned char );
 
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, short int );
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, unsigned short int );
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, int );
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, unsigned int );
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, long int );
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, long long int );
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, unsigned long int );
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, unsigned long long int );
+	ostype & ?|?( ostype &, short int );
+	ostype & ?|?( ostype &, unsigned short int );
+	ostype & ?|?( ostype &, int );
+	ostype & ?|?( ostype &, unsigned int );
+	ostype & ?|?( ostype &, long int );
+	ostype & ?|?( ostype &, long long int );
+	ostype & ?|?( ostype &, unsigned long int );
+	ostype & ?|?( ostype &, unsigned long long int );
 
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, float ); // FIX ME: should not be required
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, double );
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, long double );
+	ostype & ?|?( ostype &, float ); // FIX ME: should not be required
+	ostype & ?|?( ostype &, double );
+	ostype & ?|?( ostype &, long double );
 
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, float _Complex );
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, double _Complex );
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, long double _Complex );
+	ostype & ?|?( ostype &, float _Complex );
+	ostype & ?|?( ostype &, double _Complex );
+	ostype & ?|?( ostype &, long double _Complex );
 
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, const char * );
-//forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, const char16_t * );
+	ostype & ?|?( ostype &, const char * );
+	// ostype & ?|?( ostype &, const char16_t * );
 #if ! ( __ARM_ARCH_ISA_ARM == 1 && __ARM_32BIT_STATE == 1 ) // char32_t == wchar_t => ambiguous
-//forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, const char32_t * );
+	// ostype & ?|?( ostype &, const char32_t * );
 #endif // ! ( __ARM_ARCH_ISA_ARM == 1 && __ARM_32BIT_STATE == 1 )
-//forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, const wchar_t * );
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, const void * );
+	// ostype & ?|?( ostype &, const wchar_t * );
+	ostype & ?|?( ostype &, const void * );
+
+	// manipulators
+	ostype & ?|?( ostype &, ostype & (*)( ostype & ) );
+	ostype & endl( ostype & );
+	ostype & sep( ostype & );
+	ostype & sepTuple( ostype & );
+	ostype & sepOn( ostype & );
+	ostype & sepOff( ostype & );
+	ostype & sepDisable( ostype & );
+	ostype & sepEnable( ostype & );
+} // distribution
 
 // tuples
 forall( dtype ostype, otype T, ttype Params | writeable( T, ostype ) | { ostype & ?|?( ostype &, Params ); } )
 ostype & ?|?( ostype & os, T arg, Params rest );
-
-// manipulators
-forall( dtype ostype | ostream( ostype ) ) ostype & ?|?( ostype &, ostype & (*)( ostype & ) );
-forall( dtype ostype | ostream( ostype ) ) ostype & endl( ostype & );
-forall( dtype ostype | ostream( ostype ) ) ostype & sep( ostype & );
-forall( dtype ostype | ostream( ostype ) ) ostype & sepTuple( ostype & );
-forall( dtype ostype | ostream( ostype ) ) ostype & sepOn( ostype & );
-forall( dtype ostype | ostream( ostype ) ) ostype & sepOff( ostype & );
-forall( dtype ostype | ostream( ostype ) ) ostype & sepDisable( ostype & );
-forall( dtype ostype | ostream( ostype ) ) ostype & sepEnable( ostype & );
 
 // writes the range [begin, end) to the given stream
@@ -124,30 +126,32 @@
 }; // readable
 
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, _Bool & );
+forall( dtype istype | istream( istype ) ) {
+	istype & ?|?( istype &, _Bool & );
 
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, char & );
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, signed char & );
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, unsigned char & );
+	istype & ?|?( istype &, char & );
+	istype & ?|?( istype &, signed char & );
+	istype & ?|?( istype &, unsigned char & );
 
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, short int & );
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, unsigned short int & );
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, int & );
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, unsigned int & );
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, long int & );
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, long long int & );
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, unsigned long int & );
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, unsigned long long int & );
+	istype & ?|?( istype &, short int & );
+	istype & ?|?( istype &, unsigned short int & );
+	istype & ?|?( istype &, int & );
+	istype & ?|?( istype &, unsigned int & );
+	istype & ?|?( istype &, long int & );
+	istype & ?|?( istype &, long long int & );
+	istype & ?|?( istype &, unsigned long int & );
+	istype & ?|?( istype &, unsigned long long int & );
 
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, float & );
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, double & );
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, long double & );
+	istype & ?|?( istype &, float & );
+	istype & ?|?( istype &, double & );
+	istype & ?|?( istype &, long double & );
 
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, float _Complex & );
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, double _Complex & );
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, long double _Complex & );
+	istype & ?|?( istype &, float _Complex & );
+	istype & ?|?( istype &, double _Complex & );
+	istype & ?|?( istype &, long double _Complex & );
 
-// manipulators
-forall( dtype istype | istream( istype ) ) istype & ?|?( istype &, istype & (*)( istype & ) );
-forall( dtype istype | istream( istype ) ) istype & endl( istype & is );
+	// manipulators
+	istype & ?|?( istype &, istype & (*)( istype & ) );
+	istype & endl( istype & is );
+} // distribution
 
 struct _Istream_cstrUC { char * s; };
