Index: libcfa/src/common.hfa
===================================================================
--- libcfa/src/common.hfa	(revision 26ee4b5b245b69127ef952398078ceb6c82c67a5)
+++ libcfa/src/common.hfa	(revision cdbb909ded4bb5325b86d9b815ce893c0854ec8c)
@@ -10,6 +10,6 @@
 // Created On       : Wed Jul 11 17:54:36 2018
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Aug 23 16:42:39 2024
-// Update Count     : 39
+// Last Modified On : Sat Aug 24 08:01:36 2024
+// Update Count     : 43
 //
 
@@ -66,22 +66,4 @@
 
 static inline __attribute__((always_inline)) {
-	forall( T | { int ?<?( T, T ); } )
-	T min( T v1, T v2 ) { return v1 < v2 ? v1 : v2; }
-
-	forall( T, Ts ... | { T min( T, T ); T min( T, Ts ); } )
-	T min( T v1, T v2, Ts vs ) { return min( min( v1, v2 ), vs ); }
-
-	forall( T | { int ?>?( T, T ); } )
-	T max( T v1, T v2 ) { return v1 > v2 ? v1 : v2; }
-
-	forall( T, Ts ... | { T max( T, T ); T max( T, Ts ); } )
-	T max( T v1, T v2, Ts vs ) { return max( max( v1, v2 ), vs ); }
-
-	forall( T | { T min( T, T ); T max( T, T ); } )
-	T clamp( T value, T min_val, T max_val ) { return max( min_val, min( value, max_val ) ); }
-
-	forall( T )
-	void swap( T & v1, T & v2 ) { T temp = v1; v1 = v2; v2 = temp; }
-
 	// Specializations
 	char min( char v1, char v2 ) { return v1 < v2 ? v1 : v2; }
@@ -100,4 +82,23 @@
 	long long int max( long long int v1, long long int v2 ) { return v1 > v2 ? v1 : v2; }
 	unsigned long long int max( unsigned long long int v1, unsigned long long int v2 ) { return v1 > v2 ? v1 : v2; }
+
+	// Polymorphic
+	forall( T | { int ?<?( T, T ); } )
+	T min( T v1, T v2 ) { return v1 < v2 ? v1 : v2; }
+
+	forall( T, Ts ... | { T min( T, T ); T min( Ts ); } )
+	T min( T arg, Ts args ) { return min( arg, min( args ) ); }
+
+	forall( T | { int ?>?( T, T ); } )
+	T max( T v1, T v2 ) { return v1 > v2 ? v1 : v2; }
+
+	forall( T, Ts ... | { T max( T, T ); T max( Ts ); } )
+	T max( T arg, Ts args ) { return max( arg, max( args ) ); }
+
+	forall( T | { T min( T, T ); T max( T, T ); } )
+	T clamp( T value, T min_val, T max_val ) { return max( min_val, min( value, max_val ) ); }
+
+	forall( T )
+	void swap( T & v1, T & v2 ) { T temp = v1; v1 = v2; v2 = temp; }
 } // distribution
 
