Index: libcfa/src/fstream.cfa
===================================================================
--- libcfa/src/fstream.cfa	(revision 1d2314f21dcd7ef764bf80521c6bc69fa771c666)
+++ libcfa/src/fstream.cfa	(revision 8d321f9ffd1d3a589910069a0e4f111e09118f1f)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Jun 18 15:37:21 2020
-// Update Count     : 380
+// Last Modified On : Fri Jun 19 16:24:54 2020
+// Update Count     : 384
 //
 
@@ -26,5 +26,5 @@
 
 
-//*********************************** ofstream ***********************************
+// *********************************** ofstream ***********************************
 
 
@@ -123,6 +123,6 @@
 	#ifdef __CFA_DEBUG__
 	if ( file == 0p ) {
-		throw (IO_OPEN_FAILURE){ os };
-		abort | IO_MSG "open output file \"" | name | "\"" | nl | strerror( errno );
+		throw (Open_Failure){ os };
+		// abort | IO_MSG "open output file \"" | name | "\"" | nl | strerror( errno );
 	} // if
 	#endif // __CFA_DEBUG__
@@ -182,5 +182,5 @@
 
 
-//*********************************** ifstream ***********************************
+// *********************************** ifstream ***********************************
 
 
@@ -222,6 +222,6 @@
 	#ifdef __CFA_DEBUG__
 	if ( file == 0p ) {
-		throw (IO_OPEN_FAILURE){ is };
-		abort | IO_MSG "open input file \"" | name | "\"" | nl | strerror( errno );
+		throw (Open_Failure){ is };
+		// abort | IO_MSG "open input file \"" | name | "\"" | nl | strerror( errno );
 	} // if
 	#endif // __CFA_DEBUG__
@@ -283,24 +283,26 @@
 
 
-//*********************************** exceptions ***********************************
-
-
-void ?{}( IO_OPEN_FAILURE & this, ofstream & ostream ) {
-	VTABLE_INIT(this, IO_OPEN_FAILURE);
+// *********************************** exceptions ***********************************
+
+
+void ?{}( Open_Failure & this, ofstream & ostream ) {
+	VTABLE_INIT(this, Open_Failure);
 	this.ostream = &ostream;
-}
-void ?{}( IO_OPEN_FAILURE & this, ifstream & istream ) {
-	VTABLE_INIT(this, IO_OPEN_FAILURE);
+	this.tag = 1;
+}
+void ?{}( Open_Failure & this, ifstream & istream ) {
+	VTABLE_INIT(this, Open_Failure);
 	this.istream = &istream;
-}
-const char * IO_OPEN_FAILURE_msg(IO_OPEN_FAILURE * this) {
-	return "IO_OPEN_FAILURE";
-}
-VTABLE_INSTANCE(IO_OPEN_FAILURE)(IO_OPEN_FAILURE_msg);
-void throwIO_OPEN_FAILURE( ofstream & ostream ) {
-	IO_OPEN_FAILURE exc = { ostream };
-}
-void throwIO_OPEN_FAILURE( ifstream & istream ) {
-	IO_OPEN_FAILURE exc = { istream };
+	this.tag = 0;
+}
+const char * Open_Failure_msg(Open_Failure * this) {
+	return "Open_Failure";
+}
+VTABLE_INSTANCE(Open_Failure)(Open_Failure_msg);
+void throwOpen_Failure( ofstream & ostream ) {
+	Open_Failure exc = { ostream };
+}
+void throwOpen_Failure( ifstream & istream ) {
+	Open_Failure exc = { istream };
 }
 
Index: libcfa/src/fstream.hfa
===================================================================
--- libcfa/src/fstream.hfa	(revision 1d2314f21dcd7ef764bf80521c6bc69fa771c666)
+++ libcfa/src/fstream.hfa	(revision 8d321f9ffd1d3a589910069a0e4f111e09118f1f)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jun 16 20:41:21 2020
-// Update Count     : 184
+// Last Modified On : Fri Jun 19 16:29:17 2020
+// Update Count     : 189
 //
 
@@ -20,5 +20,5 @@
 
 
-//*********************************** ofstream ***********************************
+// *********************************** ofstream ***********************************
 
 
@@ -79,5 +79,5 @@
 
 
-//*********************************** ifstream ***********************************
+// *********************************** ifstream ***********************************
 
 
@@ -108,16 +108,18 @@
 
 
-//*********************************** exceptions ***********************************
+// *********************************** exceptions ***********************************
 
 
-DATA_EXCEPTION(IO_OPEN_FAILURE)(
+DATA_EXCEPTION(Open_Failure)(
 	union {
 		ofstream * ostream;
 		ifstream * istream;
 	};
+	// TEMPORARY: need polymorphic exceptions
+	int tag;											// 1 => ostream; 0 => istream
 );
 
-void ?{}( IO_OPEN_FAILURE & this, ofstream & ostream );
-void ?{}( IO_OPEN_FAILURE & this, ifstream & istream );
+void ?{}( Open_Failure & this, ofstream & ostream );
+void ?{}( Open_Failure & this, ifstream & istream );
 
 // Local Variables: //
Index: libcfa/src/iostream.cfa
===================================================================
--- libcfa/src/iostream.cfa	(revision 1d2314f21dcd7ef764bf80521c6bc69fa771c666)
+++ libcfa/src/iostream.cfa	(revision 8d321f9ffd1d3a589910069a0e4f111e09118f1f)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jun 17 08:48:53 2020
-// Update Count     : 1018
+// Last Modified On : Fri Jun 19 16:15:34 2020
+// Update Count     : 1019
 //
 
@@ -33,5 +33,5 @@
 
 
-//*********************************** ostream ***********************************
+// *********************************** ostream ***********************************
 
 
@@ -447,7 +447,7 @@
 } // distribution
 
-//*********************************** manipulators ***********************************
-
-//*********************************** integral ***********************************
+// *********************************** manipulators ***********************************
+
+// *********************************** integral ***********************************
 
 static const char * shortbin[] = { "0", "1", "10", "11", "100", "101", "110", "111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" };
@@ -664,5 +664,5 @@
 #endif // __SIZEOF_INT128__
 
-//*********************************** floating point ***********************************
+// *********************************** floating point ***********************************
 
 #define PrintWithDP2( os, format, val, ... ) \
@@ -720,5 +720,5 @@
 FloatingPointFMTImpl( long double, "%    *L ", "%    *.*L " )
 
-//*********************************** character ***********************************
+// *********************************** character ***********************************
 
 forall( dtype ostype | ostream( ostype ) ) {
@@ -753,5 +753,5 @@
 } // distribution
 
-//*********************************** C string ***********************************
+// *********************************** C string ***********************************
 
 forall( dtype ostype | ostream( ostype ) ) {
@@ -800,5 +800,5 @@
 
 
-//*********************************** istream ***********************************
+// *********************************** istream ***********************************
 
 
@@ -946,5 +946,5 @@
 } // distribution
 
-//*********************************** manipulators ***********************************
+// *********************************** manipulators ***********************************
 
 forall( dtype istype | istream( istype ) )
Index: libcfa/src/iostream.hfa
===================================================================
--- libcfa/src/iostream.hfa	(revision 1d2314f21dcd7ef764bf80521c6bc69fa771c666)
+++ libcfa/src/iostream.hfa	(revision 8d321f9ffd1d3a589910069a0e4f111e09118f1f)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Feb 20 15:30:56 2020
-// Update Count     : 337
+// Last Modified On : Fri Jun 19 16:15:56 2020
+// Update Count     : 338
 //
 
@@ -19,5 +19,5 @@
 
 
-//*********************************** ostream ***********************************
+// *********************************** ostream ***********************************
 
 
@@ -156,5 +156,5 @@
 } // distribution
 
-//*********************************** manipulators ***********************************
+// *********************************** manipulators ***********************************
 
 forall( otype T )
@@ -175,5 +175,5 @@
 }; // _Ostream_Manip
 
-//*********************************** integral ***********************************
+// *********************************** integral ***********************************
 
 // See 6.7.9. 19) The initialization shall occur in initializer list order, each initializer provided for a particular
@@ -217,5 +217,5 @@
 #endif
 
-//*********************************** floating point ***********************************
+// *********************************** floating point ***********************************
 
 // Default suffix for values with no fraction is "."
@@ -246,5 +246,5 @@
 FloatingPointFMTDecl( long double )
 
-//*********************************** character ***********************************
+// *********************************** character ***********************************
 
 static inline {
@@ -263,5 +263,5 @@
 } // ?|?
 
-//*********************************** C string ***********************************
+// *********************************** C string ***********************************
 
 static inline {
@@ -282,5 +282,5 @@
 
 
-//*********************************** istream ***********************************
+// *********************************** istream ***********************************
 
 
@@ -336,5 +336,5 @@
 } // distribution
 
-//*********************************** manipulators ***********************************
+// *********************************** manipulators ***********************************
 
 struct _Istream_Cstr {
@@ -413,5 +413,5 @@
 
 
-//*********************************** time ***********************************
+// *********************************** time ***********************************
 
 
