Index: src/libcfa/rational.c
===================================================================
--- src/libcfa/rational.c	(revision 6c6455fa3aff35b9e4792ff0598a10b9ba27d3ea)
+++ src/libcfa/rational.c	(revision cd99ef1f70d999e3d215bb166749d82f67bd56e6)
@@ -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 ) {
