Index: src/libcfa/stdlib
===================================================================
--- src/libcfa/stdlib	(revision f0b3f51fef07efa32e0bc86fc241753f438f52b0)
+++ src/libcfa/stdlib	(revision b9c04946cb3139bb23092df4cfa353e135a976ff)
@@ -10,6 +10,6 @@
 // Created On       : Thu Jan 28 17:12:35 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jul 23 07:44:47 2018
-// Update Count     : 341
+// Last Modified On : Fri Jul 27 07:21:36 2018
+// Update Count     : 345
 //
 
@@ -19,5 +19,5 @@
 extern "C" {
 	void * memalign( size_t align, size_t size );		// malloc.h
-	void * memset( void * dest, int c, size_t size );	// string.h
+	void * memset( void * dest, int fill, size_t size ); // string.h
 	void * memcpy( void * dest, const void * src, size_t size ); // string.h
     void * cmemalign( size_t alignment, size_t noOfElems, size_t elemSize ); // CFA
@@ -127,6 +127,6 @@
 	// data, non-array types
 
-	T * memset( T * dest, char c ) {
-		return (T *)memset( dest, c, sizeof(T) );
+	T * memset( T * dest, char fill ) {
+		return (T *)memset( dest, fill, sizeof(T) );
 	} // memset
 
@@ -139,11 +139,11 @@
 	// data, array types
 
-	T * memset( T dest[], size_t dim, char c ) {
-		return (T *)(void *)memset( dest, c, dim * sizeof(T) );	// C memset
-	} // memset
-
-	T * memcpy( T dest[], const T src[], size_t dim ) {
+	T * amemset( T dest[], char fill, size_t dim ) {
+		return (T *)(void *)memset( dest, fill, dim * sizeof(T) ); // C memset
+	} // amemset
+
+	T * amemcpy( T dest[], const T src[], size_t dim ) {
 		return (T *)(void *)memcpy( dest, src, dim * sizeof(T) ); // C memcpy
-	} // memcpy
+	} // amemcpy
 } // distribution
 
@@ -203,6 +203,4 @@
 	E * bsearchu( E key, const E * vals, size_t dim );
 	size_t bsearchu( E key, const E * vals, size_t dim );
-
-	void qsort( E * vals, size_t dim );
 } // distribution
 
@@ -214,4 +212,8 @@
 	E * bsearchu( K key, const E * vals, size_t dim );
 	size_t bsearchu( K key, const E * vals, size_t dim );
+} // distribution
+
+forall( otype E | { int ?<?( E, E ); } ) {
+	void qsort( E * vals, size_t dim );
 } // distribution
 
Index: src/tests/.expect/alloc.txt
===================================================================
--- src/tests/.expect/alloc.txt	(revision f0b3f51fef07efa32e0bc86fc241753f438f52b0)
+++ src/tests/.expect/alloc.txt	(revision b9c04946cb3139bb23092df4cfa353e135a976ff)
@@ -49,5 +49,5 @@
 CFA array memset
 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 
-CFA memcpy
+CFA array memcpy
 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 0xffffffff -nan, 
 
Index: src/tests/alloc.c
===================================================================
--- src/tests/alloc.c	(revision f0b3f51fef07efa32e0bc86fc241753f438f52b0)
+++ src/tests/alloc.c	(revision b9c04946cb3139bb23092df4cfa353e135a976ff)
@@ -10,6 +10,6 @@
 // Created On       : Wed Feb  3 07:56:22 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jul 25 09:09:43 2018
-// Update Count     : 331
+// Last Modified On : Thu Jul 26 20:58:05 2018
+// Update Count     : 334
 //
 
@@ -219,11 +219,11 @@
 	printf( "\n" );
 
-	memset( sta, dim, fill );                           // CFA array memset, type safe
+	amemset( sta, fill, dim );							// CFA array memset, type safe
 	printf( "CFA array memset\n" );
 	for ( int i = 0; i < dim; i += 1 ) { printf( "%#x %a, ", sta[i].x, sta[i].y ); }
 	printf( "\n" );
 
-	memcpy( sta1, sta, dim );                           // CFA array memcpy, type safe
-	printf( "CFA memcpy\n" );
+	amemcpy( sta1, sta, dim );							// CFA array memcpy, type safe
+	printf( "CFA array memcpy\n" );
 	for ( int i = 0; i < dim; i += 1 ) { printf( "%#x %a, ", sta1[i].x, sta1[i].y ); }
 	printf( "\n" );
