Index: src/libcfa/fstream
===================================================================
--- src/libcfa/fstream	(revision bf30ab33a8c9ad0afcb93e02e8d51af20be1010d)
+++ src/libcfa/fstream	(revision a493682c6f60f330bbd63c42c5956da658ce185f)
@@ -56,5 +56,5 @@
 int fmt( ofstream *, const char fmt[], ... );
 
-void ?{}( ofstream * );
+void ?{}( ofstream & );
 
 extern ofstream * sout, * serr;
Index: src/libcfa/fstream.c
===================================================================
--- src/libcfa/fstream.c	(revision bf30ab33a8c9ad0afcb93e02e8d51af20be1010d)
+++ src/libcfa/fstream.c	(revision a493682c6f60f330bbd63c42c5956da658ce185f)
@@ -29,11 +29,11 @@
 #define IO_MSG "I/O error: "
 
-void ?{}( ofstream * this, void * file, _Bool sepDefault, _Bool sepOnOff, const char * separator, const char * tupleSeparator ) {
-	this->file = file;
-	this->sepDefault = sepDefault;
-	this->sepOnOff = sepOnOff;
-	sepSet( this, separator );
-	sepSetCur( this, sepGet( this ) );
-	sepSetTuple( this, tupleSeparator );
+void ?{}( ofstream & this, void * file, _Bool sepDefault, _Bool sepOnOff, const char * separator, const char * tupleSeparator ) {
+	this.file = file;
+	this.sepDefault = sepDefault;
+	this.sepOnOff = sepOnOff;
+	sepSet( &this, separator );
+	sepSetCur( &this, sepGet( &this ) );
+	sepSetTuple( &this, tupleSeparator );
 }
 
@@ -94,5 +94,5 @@
 		exit( EXIT_FAILURE );
 	} // if
-	?{}( os, file, true, false, " ", ", " );
+	?{}( *os, file, true, false, " ", ", " );
 } // open
 
Index: src/libcfa/iterator
===================================================================
--- src/libcfa/iterator	(revision bf30ab33a8c9ad0afcb93e02e8d51af20be1010d)
+++ src/libcfa/iterator	(revision a493682c6f60f330bbd63c42c5956da658ce185f)
@@ -19,7 +19,7 @@
 trait iterator( otype iterator_type, otype elt_type ) {
 	// point to the next element
-//	iterator_type ?++( iterator_type * );
-	iterator_type ++?( iterator_type * );
-	iterator_type --?( iterator_type * );
+//	iterator_type ?++( iterator_type & );
+	iterator_type ++?( iterator_type & );
+	iterator_type --?( iterator_type & );
 
 	// can be tested for equality with other iterators
Index: src/libcfa/rational
===================================================================
--- src/libcfa/rational	(revision bf30ab33a8c9ad0afcb93e02e8d51af20be1010d)
+++ src/libcfa/rational	(revision a493682c6f60f330bbd63c42c5956da658ce185f)
@@ -31,6 +31,6 @@
 	int ?>?( T, T );
 	int ?>=?( T, T );
-	void ?{}( T *, zero_t );
-	void ?{}( T *, one_t );
+	void ?{}( T &, zero_t );
+	void ?{}( T &, one_t );
 	T +?( T );
 	T -?( T );
@@ -54,17 +54,17 @@
 
 forall( otype RationalImpl | arithmetic( RationalImpl ) )
-void ?{}( Rational(RationalImpl) * r );
+void ?{}( Rational(RationalImpl) & r );
 
 forall( otype RationalImpl | arithmetic( RationalImpl ) )
-void ?{}( Rational(RationalImpl) * r, RationalImpl n );
+void ?{}( Rational(RationalImpl) & r, RationalImpl n );
 
 forall( otype RationalImpl | arithmetic( RationalImpl ) )
-void ?{}( Rational(RationalImpl) * r, RationalImpl n, RationalImpl d );
+void ?{}( Rational(RationalImpl) & r, RationalImpl n, RationalImpl d );
 
 forall( otype RationalImpl | arithmetic( RationalImpl ) )
-void ?{}( Rational(RationalImpl) * r, zero_t );
+void ?{}( Rational(RationalImpl) & r, zero_t );
 
 forall( otype RationalImpl | arithmetic( RationalImpl ) )
-void ?{}( Rational(RationalImpl) * r, one_t );
+void ?{}( Rational(RationalImpl) & r, one_t );
 
 // numerator/denominator getter
@@ -77,5 +77,5 @@
 
 forall( otype RationalImpl | arithmetic( RationalImpl ) )
-[ RationalImpl, RationalImpl ] ?=?( * [ RationalImpl, RationalImpl ] dest, Rational(RationalImpl) src );
+[ RationalImpl, RationalImpl ] ?=?( & [ RationalImpl, RationalImpl ] dest, Rational(RationalImpl) src );
 
 // numerator/denominator setter
Index: src/libcfa/rational.c
===================================================================
--- src/libcfa/rational.c	(revision bf30ab33a8c9ad0afcb93e02e8d51af20be1010d)
+++ src/libcfa/rational.c	(revision a493682c6f60f330bbd63c42c5956da658ce185f)
@@ -1,10 +1,10 @@
-// 
+//
 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
 //
 // The contents of this file are covered under the licence agreement in the
 // file "LICENCE" distributed with Cforall.
-// 
-// rational.c -- 
-// 
+//
+// rational.c --
+//
 // Author           : Peter A. Buhr
 // Created On       : Wed Apr  6 17:54:28 2016
@@ -12,5 +12,5 @@
 // Last Modified On : Tue May 16 18:35:36 2017
 // Update Count     : 150
-// 
+//
 
 #include "rational"
@@ -47,15 +47,15 @@
 
 forall( otype RationalImpl | arithmetic( RationalImpl ) )
-void ?{}( Rational(RationalImpl) * r ) {
+void ?{}( Rational(RationalImpl) & r ) {
 	r{ (RationalImpl){0}, (RationalImpl){1} };
 } // rational
 
 forall( otype RationalImpl | arithmetic( RationalImpl ) )
-void ?{}( Rational(RationalImpl) * r, RationalImpl n ) {
+void ?{}( Rational(RationalImpl) & r, RationalImpl n ) {
 	r{ n, (RationalImpl){1} };
 } // rational
 
 forall( otype RationalImpl | arithmetic( RationalImpl ) )
-void ?{}( Rational(RationalImpl) * r, RationalImpl n, RationalImpl d ) {
+void ?{}( Rational(RationalImpl) & r, RationalImpl n, RationalImpl d ) {
 	RationalImpl t = simplify( &n, &d );				// simplify
 	r->numerator = n / t;
@@ -77,5 +77,5 @@
 
 forall( otype RationalImpl | arithmetic( RationalImpl ) )
-[ RationalImpl, RationalImpl ] ?=?( * [ RationalImpl, RationalImpl ] dest, Rational(RationalImpl) src ) {
+[ RationalImpl, RationalImpl ] ?=?( & [ RationalImpl, RationalImpl ] dest, Rational(RationalImpl) src ) {
 	return *dest = src.[ numerator, denominator ];
 }
Index: src/libcfa/stdlib.c
===================================================================
--- src/libcfa/stdlib.c	(revision bf30ab33a8c9ad0afcb93e02e8d51af20be1010d)
+++ src/libcfa/stdlib.c	(revision a493682c6f60f330bbd63c42c5956da658ce185f)
@@ -41,5 +41,5 @@
 forall( dtype T | sized(T), ttype Params | { void ?{}( T &, Params ); } )
 T * new( Params p ) {
-	return (malloc()){ p };								// run constructor
+	return &(*malloc()){ p };								// run constructor
 } // new
 
@@ -67,5 +67,5 @@
 	T *arr = alloc( dim );
 	for ( unsigned int i = 0; i < dim; i += 1 ) {
-		(&arr[i]){ p };									// run constructor
+		(arr[i]){ p };									// run constructor
 	} // for
 	return arr;
@@ -76,5 +76,5 @@
 	if ( arr ) {										// ignore null
 		for ( int i = dim - 1; i >= 0; i -= 1 ) {		// reverse allocation order, must be unsigned
-			^(&arr[i]){};								// run destructor
+			^(arr[i]){};								// run destructor
 		} // for
 		free( arr );
@@ -86,5 +86,5 @@
 	if ( arr ) {										// ignore null
 		for ( int i = dim - 1; i >= 0; i -= 1 ) {		// reverse allocation order, must be unsigned
-			^(&arr[i]){};								// run destructor
+			^(arr[i]){};								// run destructor
 		} // for
 		free( arr );
