Index: src/libcfa/fstream
===================================================================
--- src/libcfa/fstream	(revision 52a90045acf5a81e6b419c6be5b7276f78d78ae0)
+++ src/libcfa/fstream	(revision 53a6c2a24c63e4878fd4222e11fef110ba3ee85a)
@@ -10,22 +10,21 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jul  1 16:37:53 2017
-// Update Count     : 112
+// Last Modified On : Fri Jul  7 08:32:38 2017
+// Update Count     : 117
 //
 
-#ifndef __FSTREAM_H__
-#define __FSTREAM_H__
+#pragma once
 
 #include "iostream"
 
-enum { separateSize = 16 };
+enum { sepSize = 16 };
 struct ofstream {
 	void * file;
 	_Bool sepDefault;
 	_Bool sepOnOff;
-	_Bool lastSepOn;
+	_Bool sawNL;
 	const char * sepCur;
-	char separator[separateSize];
-	char tupleSeparator[separateSize];
+	char separator[sepSize];
+	char tupleSeparator[sepSize];
 }; // ofstream
 
@@ -36,5 +35,6 @@
 const char * sepGetCur( ofstream * );
 void sepSetCur( ofstream *, const char * );
-_Bool lastSepOn( ofstream * );
+_Bool getNL( ofstream * );
+void setNL( ofstream *, _Bool );
 
 // public
@@ -75,6 +75,4 @@
 extern ifstream * sin;
 
-#endif // __FSTREAM_H__
-
 // Local Variables: //
 // mode: c //
Index: src/libcfa/fstream.c
===================================================================
--- src/libcfa/fstream.c	(revision 52a90045acf5a81e6b419c6be5b7276f78d78ae0)
+++ src/libcfa/fstream.c	(revision 53a6c2a24c63e4878fd4222e11fef110ba3ee85a)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jul  1 16:37:54 2017
-// Update Count     : 242
+// Last Modified On : Thu Jul  6 18:38:25 2017
+// Update Count     : 251
 //
 
@@ -33,5 +33,4 @@
 	this->sepDefault = sepDefault;
 	this->sepOnOff = sepOnOff;
-	this->lastSepOn = false;
 	sepSet( this, separator );
 	sepSetCur( this, sepGet( this ) );
@@ -40,19 +39,19 @@
 
 // private
-_Bool lastSepOn( ofstream * os ) { return os->lastSepOn; }
-_Bool sepPrt( ofstream * os ) { os->lastSepOn = false; return os->sepOnOff; }
+_Bool sepPrt( ofstream * os ) { setNL( os, false ); return os->sepOnOff; }
 void sepReset( ofstream * os ) { os->sepOnOff = os->sepDefault; }
 void sepReset( ofstream * os, _Bool reset ) { os->sepDefault = reset; os->sepOnOff = os->sepDefault; }
 const char * sepGetCur( ofstream * os ) { return os->sepCur; }
 void sepSetCur( ofstream * os, const char * sepCur ) { os->sepCur = sepCur; }
+_Bool getNL( ofstream * os ) { return os->sawNL; }
+void setNL( ofstream * os, _Bool state ) { os->sawNL = state; }
 
 // public
-void sepOn( ofstream * os ) { os->lastSepOn = true; os->sepOnOff = true; }
-void sepOff( ofstream * os ) { os->lastSepOn = false; os->sepOnOff = 0; }
+void sepOn( ofstream * os ) { os->sepOnOff = ! getNL( os ); }
+void sepOff( ofstream * os ) { os->sepOnOff = false; }
 
 _Bool sepDisable( ofstream *os ) {
 	_Bool temp = os->sepDefault;
 	os->sepDefault = false;
-	os->lastSepOn = false;
 	sepReset( os );
 	return temp;
@@ -69,6 +68,6 @@
 void sepSet( ofstream * os, const char * s ) {
 	assert( s );
-	strncpy( os->separator, s, separateSize - 1 );
-	os->separator[separateSize - 1] = '\0';
+	strncpy( os->separator, s, sepSize - 1 );
+	os->separator[sepSize - 1] = '\0';
 } // sepSet
 
@@ -76,6 +75,6 @@
 void sepSetTuple( ofstream * os, const char * s ) {
 	assert( s );
-	strncpy( os->tupleSeparator, s, separateSize - 1 );
-	os->tupleSeparator[separateSize - 1] = '\0';
+	strncpy( os->tupleSeparator, s, sepSize - 1 );
+	os->tupleSeparator[sepSize - 1] = '\0';
 } // sepSet
 
@@ -153,11 +152,11 @@
 
 void open( ifstream * is, const char * name, const char * mode ) {
-	FILE *t = fopen( name, mode );
-	if ( t == 0 ) {										// do not change unless successful
+	FILE *file = fopen( name, mode );
+	if ( file == 0 ) {									// do not change unless successful
 		fprintf( stderr, IO_MSG "open input file \"%s\", ", name );
 		perror( 0 );
 		exit( EXIT_FAILURE );
 	} // if
-	is->file = t;
+	is->file = file;
 } // open
 
Index: src/libcfa/gmp
===================================================================
--- src/libcfa/gmp	(revision 52a90045acf5a81e6b419c6be5b7276f78d78ae0)
+++ src/libcfa/gmp	(revision 53a6c2a24c63e4878fd4222e11fef110ba3ee85a)
@@ -10,9 +10,11 @@
 // Created On       : Tue Apr 19 08:43:43 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat May 27 09:55:51 2017
-// Update Count     : 14
+// Last Modified On : Fri Jul  7 09:33:20 2017
+// Update Count     : 15
 // 
 
 // https://gmplib.org/gmp-man-6.1.1.pdf
+
+#pragma once
 
 #include <gmp.h>										// GNU multi-precise integers
Index: src/libcfa/iostream
===================================================================
--- src/libcfa/iostream	(revision 52a90045acf5a81e6b419c6be5b7276f78d78ae0)
+++ src/libcfa/iostream	(revision 53a6c2a24c63e4878fd4222e11fef110ba3ee85a)
@@ -10,10 +10,9 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Jul  2 08:42:56 2017
-// Update Count     : 110
+// Last Modified On : Fri Jul  7 08:35:59 2017
+// Update Count     : 118
 //
 
-#ifndef __IOSTREAM_H__
-#define __IOSTREAM_H__
+#pragma once
 
 #include "iterator"
@@ -26,5 +25,6 @@
 	const char * sepGetCur( ostype * );					// get current separator string
 	void sepSetCur( ostype *, const char * );			// set current separator string
-	_Bool lastSepOn( ostype * );						// last manipulator is setOn (context sensitive)
+	_Bool getNL( ostype * );							// check newline
+	void setNL( ostype *, _Bool );						// saw newline
 	// public
 	void sepOn( ostype * );								// turn separator state on
@@ -82,4 +82,6 @@
 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 * );
@@ -137,6 +139,4 @@
 forall( dtype istype | istream( istype ) ) istype * ?|?( istype *, _Istream_cstrC );
 
-#endif // __IOSTREAM_H
-
 // Local Variables: //
 // mode: c //
Index: src/libcfa/iostream.c
===================================================================
--- src/libcfa/iostream.c	(revision 52a90045acf5a81e6b419c6be5b7276f78d78ae0)
+++ src/libcfa/iostream.c	(revision 53a6c2a24c63e4878fd4222e11fef110ba3ee85a)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Jul  2 08:54:02 2017
-// Update Count     : 375
+// Last Modified On : Thu Jul  6 18:14:17 2017
+// Update Count     : 396
 //
 
@@ -18,4 +18,5 @@
 extern "C" {
 #include <stdio.h>
+#include <stdbool.h>									// true/false
 #include <string.h>										// strlen
 #include <float.h>										// DBL_DIG, LDBL_DIG
@@ -24,6 +25,7 @@
 
 forall( dtype ostype | ostream( ostype ) )
-ostype * ?|?( ostype * os, char c ) {
-	fmt( os, "%c", c );
+ostype * ?|?( ostype * os, char ch ) {
+	fmt( os, "%c", ch );
+	if ( ch == '\n' ) setNL( os, true );
 	sepOff( os );
 	return os;
@@ -180,6 +182,6 @@
 
 	// last character IS spacing or opening punctuation => turn off separator for next item
-	unsigned int len = strlen( cp ), posn = len - 1;
-	ch = cp[posn];										// must make unsigned
+	size_t len = strlen( cp );
+	ch = cp[len - 1];									// must make unsigned
 	if ( sepPrt( os ) && mask[ ch ] != Open && mask[ ch ] != OpenClose ) {
 		sepOn( os );
@@ -187,4 +189,5 @@
 		sepOff( os );
 	} // if
+	if ( ch == '\n' ) setNL( os, true );				// check *AFTER* sepPrt call above as it resets NL flag
 	return write( os, cp, len );
 } // ?|?
@@ -216,7 +219,19 @@
 
 forall( dtype ostype | ostream( ostype ) )
+ostype * sep( ostype * os ) {
+	os | sepGet( os );
+	return os;
+} // sep
+
+forall( dtype ostype | ostream( ostype ) )
+ostype * sepTuple( ostype * os ) {
+	os | sepGetTuple( os );
+	return os;
+} // sepTuple
+
+forall( dtype ostype | ostream( ostype ) )
 ostype * endl( ostype * os ) {
-	if ( lastSepOn( os ) ) fmt( os, "%s", sepGetCur( os ) );
 	os | '\n';
+	setNL( os, true );
 	flush( os );
 	sepOff( os );										// prepare for next line
Index: src/libcfa/iterator
===================================================================
--- src/libcfa/iterator	(revision 52a90045acf5a81e6b419c6be5b7276f78d78ae0)
+++ src/libcfa/iterator	(revision 53a6c2a24c63e4878fd4222e11fef110ba3ee85a)
@@ -10,10 +10,9 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Mar  2 18:06:05 2016
-// Update Count     : 9
+// Last Modified On : Fri Jul  7 08:37:25 2017
+// Update Count     : 10
 //
 
-#ifndef ITERATOR_H
-#define ITERATOR_H
+#pragma once
 
 // An iterator can be used to traverse a data structure.
@@ -39,10 +38,8 @@
 
 forall( otype iterator_type, otype elt_type | iterator( iterator_type, elt_type ) )
-void for_each( iterator_type begin, iterator_type end, void (*func)( elt_type ) );
+void for_each( iterator_type begin, iterator_type end, void (* func)( elt_type ) );
 
 forall( otype iterator_type, otype elt_type | iterator( iterator_type, elt_type ) )
-void for_each_reverse( iterator_type begin, iterator_type end, void (*func)( elt_type ) );
-
-#endif // ITERATOR_H
+void for_each_reverse( iterator_type begin, iterator_type end, void (* func)( elt_type ) );
 
 // Local Variables: //
Index: src/libcfa/iterator.c
===================================================================
--- src/libcfa/iterator.c	(revision 52a90045acf5a81e6b419c6be5b7276f78d78ae0)
+++ src/libcfa/iterator.c	(revision 53a6c2a24c63e4878fd4222e11fef110ba3ee85a)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 27 17:56:53 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Mar  2 18:08:11 2016
-// Update Count     : 27
+// Last Modified On : Fri Jul  7 08:38:23 2017
+// Update Count     : 28
 //
 
@@ -17,17 +17,17 @@
 
 forall( otype iterator_type, otype elt_type | iterator( iterator_type, elt_type ) )
-void for_each( iterator_type begin, iterator_type end, void (*func)( elt_type ) ) {
+void for_each( iterator_type begin, iterator_type end, void (* func)( elt_type ) ) {
 	for ( iterator_type i = begin; i != end; ++i ) {
 		func( *i );
-	}
-}
+	} // for
+} // for_each
 
 forall( otype iterator_type, otype elt_type | iterator( iterator_type, elt_type ) )
-void for_each_reverse( iterator_type begin, iterator_type end, void (*func)( elt_type ) ) {
+void for_each_reverse( iterator_type begin, iterator_type end, void (* func)( elt_type ) ) {
 	for ( iterator_type i = end; i != begin; ) {
 		--i;
 		func( *i );
-	}
-}
+	} // for
+} // for_each_reverse
 
 // Local Variables: //
Index: src/libcfa/limits
===================================================================
--- src/libcfa/limits	(revision 52a90045acf5a81e6b419c6be5b7276f78d78ae0)
+++ src/libcfa/limits	(revision 53a6c2a24c63e4878fd4222e11fef110ba3ee85a)
@@ -10,10 +10,9 @@
 // Created On       : Wed Apr  6 18:06:52 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Apr  6 21:08:16 2016
-// Update Count     : 6
+// Last Modified On : Fri Jul  7 09:33:57 2017
+// Update Count     : 7
 //
 
-#ifndef LIMITS_H
-#define LIMITS_H
+#pragma once
 
 // Integral Constants
@@ -110,6 +109,4 @@
 extern const long _Complex _1_SQRT_2;					// 1 / sqrt(2)
 
-#endif // LIMITS_H
-
 // Local Variables: //
 // mode: c //
Index: src/libcfa/math
===================================================================
--- src/libcfa/math	(revision 52a90045acf5a81e6b419c6be5b7276f78d78ae0)
+++ src/libcfa/math	(revision 53a6c2a24c63e4878fd4222e11fef110ba3ee85a)
@@ -10,10 +10,9 @@
 // Created On       : Mon Apr 18 23:37:04 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed May 24 17:40:39 2017
-// Update Count     : 60
-//
-
-#ifndef MATH_H
-#define MATH_H
+// Last Modified On : Fri Jul  7 09:34:15 2017
+// Update Count     : 61
+//
+
+#pragma once
 
 extern "C" {
@@ -345,6 +344,4 @@
 long double scalbln( long double, long int );
 
-#endif // MATH_H
-
 // Local Variables: //
 // mode: c //
Index: src/libcfa/rational
===================================================================
--- src/libcfa/rational	(revision 52a90045acf5a81e6b419c6be5b7276f78d78ae0)
+++ src/libcfa/rational	(revision 53a6c2a24c63e4878fd4222e11fef110ba3ee85a)
@@ -12,10 +12,9 @@
 // Created On       : Wed Apr  6 17:56:25 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 15 21:30:12 2017
-// Update Count     : 90
+// Last Modified On : Fri Jul  7 09:34:33 2017
+// Update Count     : 93
 //
 
-#ifndef RATIONAL_H
-#define RATIONAL_H
+#pragma once
 
 #include "iostream"
@@ -47,5 +46,5 @@
 // implementation
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 struct Rational {
 	RationalImpl numerator, denominator;				// invariant: denominator > 0
@@ -54,93 +53,92 @@
 // constructors
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 void ?{}( Rational(RationalImpl) * r );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 void ?{}( Rational(RationalImpl) * r, RationalImpl n );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 void ?{}( Rational(RationalImpl) * r, RationalImpl n, RationalImpl d );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 void ?{}( Rational(RationalImpl) * r, zero_t );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 void ?{}( Rational(RationalImpl) * r, one_t );
 
-// getter for numerator/denominator
+// numerator/denominator getter
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 RationalImpl numerator( Rational(RationalImpl) r );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 RationalImpl denominator( Rational(RationalImpl) r );
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 [ RationalImpl, RationalImpl ] ?=?( * [ RationalImpl, RationalImpl ] dest, Rational(RationalImpl) src );
 
-// setter for numerator/denominator
+// numerator/denominator setter
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 RationalImpl numerator( Rational(RationalImpl) r, RationalImpl n );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 RationalImpl denominator( Rational(RationalImpl) r, RationalImpl d );
 
 // comparison
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 int ?==?( Rational(RationalImpl) l, Rational(RationalImpl) r );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 int ?!=?( Rational(RationalImpl) l, Rational(RationalImpl) r );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 int ?<?( Rational(RationalImpl) l, Rational(RationalImpl) r );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 int ?<=?( Rational(RationalImpl) l, Rational(RationalImpl) r );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 int ?>?( Rational(RationalImpl) l, Rational(RationalImpl) r );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 int ?>=?( Rational(RationalImpl) l, Rational(RationalImpl) r );
 
 // arithmetic
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 Rational(RationalImpl) +?( Rational(RationalImpl) r );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 Rational(RationalImpl) -?( Rational(RationalImpl) r );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 Rational(RationalImpl) ?+?( Rational(RationalImpl) l, Rational(RationalImpl) r );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 Rational(RationalImpl) ?-?( Rational(RationalImpl) l, Rational(RationalImpl) r );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 Rational(RationalImpl) ?*?( Rational(RationalImpl) l, Rational(RationalImpl) r );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 Rational(RationalImpl) ?/?( Rational(RationalImpl) l, Rational(RationalImpl) r );
 
 // conversion
-forall ( otype RationalImpl | arithmetic( RationalImpl ) | { double convert( RationalImpl ); } )
+forall( otype RationalImpl | arithmetic( RationalImpl ) | { double convert( RationalImpl ); } )
 double widen( Rational(RationalImpl) r );
-forall ( otype RationalImpl | arithmetic( RationalImpl ) | { double convert( RationalImpl );  RationalImpl convert( double );} )
+forall( otype RationalImpl | arithmetic( RationalImpl ) | { double convert( RationalImpl );  RationalImpl convert( double );} )
 Rational(RationalImpl) narrow( double f, RationalImpl md );
 
 // I/O
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 forall( dtype istype | istream( istype ) | { istype * ?|?( istype *, RationalImpl * ); } )
 istype * ?|?( istype *, Rational(RationalImpl) * );
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 forall( dtype ostype | ostream( ostype ) | { ostype * ?|?( ostype *, RationalImpl ); } )
 ostype * ?|?( ostype *, Rational(RationalImpl ) );
-
-#endif // RATIONAL_H
 
 // Local Variables: //
Index: src/libcfa/rational.c
===================================================================
--- src/libcfa/rational.c	(revision 52a90045acf5a81e6b419c6be5b7276f78d78ae0)
+++ src/libcfa/rational.c	(revision 53a6c2a24c63e4878fd4222e11fef110ba3ee85a)
@@ -10,6 +10,6 @@
 // Created On       : Wed Apr  6 17:54:28 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 15 21:29:23 2017
-// Update Count     : 149
+// Last Modified On : Tue May 16 18:35:36 2017
+// Update Count     : 150
 // 
 
@@ -22,5 +22,5 @@
 // Calculate greatest common denominator of two numbers, the first of which may be negative. Used to reduce rationals.
 // alternative: https://en.wikipedia.org/wiki/Binary_GCD_algorithm
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 static RationalImpl gcd( RationalImpl a, RationalImpl b ) {
 	for ( ;; ) {										// Euclid's algorithm
@@ -33,5 +33,5 @@
 } // gcd
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 static RationalImpl simplify( RationalImpl * n, RationalImpl * d ) {
 	if ( *d == (RationalImpl){0} ) {
@@ -46,15 +46,15 @@
 // constructors
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 void ?{}( Rational(RationalImpl) * r ) {
 	r{ (RationalImpl){0}, (RationalImpl){1} };
 } // rational
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 void ?{}( Rational(RationalImpl) * r, RationalImpl n ) {
 	r{ n, (RationalImpl){1} };
 } // rational
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 void ?{}( Rational(RationalImpl) * r, RationalImpl n, RationalImpl d ) {
 	RationalImpl t = simplify( &n, &d );				// simplify
@@ -66,15 +66,15 @@
 // getter for numerator/denominator
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 RationalImpl numerator( Rational(RationalImpl) r ) {
 	return r.numerator;
 } // numerator
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 RationalImpl denominator( Rational(RationalImpl) r ) {
 	return r.denominator;
 } // denominator
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 [ RationalImpl, RationalImpl ] ?=?( * [ RationalImpl, RationalImpl ] dest, Rational(RationalImpl) src ) {
 	return *dest = src.[ numerator, denominator ];
@@ -83,5 +83,5 @@
 // setter for numerator/denominator
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 RationalImpl numerator( Rational(RationalImpl) r, RationalImpl n ) {
 	RationalImpl prev = r.numerator;
@@ -92,5 +92,5 @@
 } // numerator
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 RationalImpl denominator( Rational(RationalImpl) r, RationalImpl d ) {
 	RationalImpl prev = r.denominator;
@@ -104,30 +104,30 @@
 // comparison
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 int ?==?( Rational(RationalImpl) l, Rational(RationalImpl) r ) {
 	return l.numerator * r.denominator == l.denominator * r.numerator;
 } // ?==?
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 int ?!=?( Rational(RationalImpl) l, Rational(RationalImpl) r ) {
 	return ! ( l == r );
 } // ?!=?
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 int ?<?( Rational(RationalImpl) l, Rational(RationalImpl) r ) {
 	return l.numerator * r.denominator < l.denominator * r.numerator;
 } // ?<?
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 int ?<=?( Rational(RationalImpl) l, Rational(RationalImpl) r ) {
 	return l.numerator * r.denominator <= l.denominator * r.numerator;
 } // ?<=?
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 int ?>?( Rational(RationalImpl) l, Rational(RationalImpl) r ) {
 	return ! ( l <= r );
 } // ?>?
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 int ?>=?( Rational(RationalImpl) l, Rational(RationalImpl) r ) {
 	return ! ( l < r );
@@ -137,5 +137,5 @@
 // arithmetic
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 Rational(RationalImpl) +?( Rational(RationalImpl) r ) {
 	Rational(RationalImpl) t = { r.numerator, r.denominator };
@@ -143,5 +143,5 @@
 } // +?
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 Rational(RationalImpl) -?( Rational(RationalImpl) r ) {
 	Rational(RationalImpl) t = { -r.numerator, r.denominator };
@@ -149,5 +149,5 @@
 } // -?
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 Rational(RationalImpl) ?+?( Rational(RationalImpl) l, Rational(RationalImpl) r ) {
 	if ( l.denominator == r.denominator ) {				// special case
@@ -160,5 +160,5 @@
 } // ?+?
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 Rational(RationalImpl) ?-?( Rational(RationalImpl) l, Rational(RationalImpl) r ) {
 	if ( l.denominator == r.denominator ) {				// special case
@@ -171,5 +171,5 @@
 } // ?-?
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 Rational(RationalImpl) ?*?( Rational(RationalImpl) l, Rational(RationalImpl) r ) {
 	Rational(RationalImpl) t = { l.numerator * r.numerator, l.denominator * r.denominator };
@@ -177,5 +177,5 @@
 } // ?*?
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 Rational(RationalImpl) ?/?( Rational(RationalImpl) l, Rational(RationalImpl) r ) {
 	if ( r.numerator < (RationalImpl){0} ) {
@@ -190,5 +190,5 @@
 // conversion
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) | { double convert( RationalImpl ); } )
+forall( otype RationalImpl | arithmetic( RationalImpl ) | { double convert( RationalImpl ); } )
 double widen( Rational(RationalImpl) r ) {
  	return convert( r.numerator ) / convert( r.denominator );
@@ -196,5 +196,5 @@
 
 // http://www.ics.uci.edu/~eppstein/numth/frap.c
-forall ( otype RationalImpl | arithmetic( RationalImpl ) | { double convert( RationalImpl ); RationalImpl convert( double ); } )
+forall( otype RationalImpl | arithmetic( RationalImpl ) | { double convert( RationalImpl ); RationalImpl convert( double ); } )
 Rational(RationalImpl) narrow( double f, RationalImpl md ) {
 	if ( md <= (RationalImpl){1} ) {					// maximum fractional digits too small?
@@ -227,5 +227,5 @@
 // I/O
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 forall( dtype istype | istream( istype ) | { istype * ?|?( istype *, RationalImpl * ); } )
 istype * ?|?( istype * is, Rational(RationalImpl) * r ) {
@@ -238,5 +238,5 @@
 } // ?|?
 
-forall ( otype RationalImpl | arithmetic( RationalImpl ) )
+forall( otype RationalImpl | arithmetic( RationalImpl ) )
 forall( dtype ostype | ostream( ostype ) | { ostype * ?|?( ostype *, RationalImpl ); } )
 ostype * ?|?( ostype * os, Rational(RationalImpl ) r ) {
Index: src/libcfa/stdlib
===================================================================
--- src/libcfa/stdlib	(revision 52a90045acf5a81e6b419c6be5b7276f78d78ae0)
+++ src/libcfa/stdlib	(revision 53a6c2a24c63e4878fd4222e11fef110ba3ee85a)
@@ -10,10 +10,9 @@
 // Created On       : Thu Jan 28 17:12:35 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Jun  2 15:51:03 2017
-// Update Count     : 218
-//
-
-#ifndef STDLIB_H
-#define STDLIB_H
+// Last Modified On : Fri Jul  7 09:34:49 2017
+// Update Count     : 219
+//
+
+#pragma once
 
 //---------------------------------------
@@ -232,6 +231,4 @@
 void swap( T * t1, T * t2 );
 
-#endif // STDLIB_H
-
 // Local Variables: //
 // mode: c //
