Index: libcfa/src/concurrency/thread.hfa
===================================================================
--- libcfa/src/concurrency/thread.hfa	(revision 12b5e94a9df5bfc0037b0fe7eb823f658a9b0d9d)
+++ libcfa/src/concurrency/thread.hfa	(revision a389ffefab79a6abe8bfb6b39563d0f64348c758)
@@ -10,6 +10,6 @@
 // Created On       : Tue Jan 17 12:27:26 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Feb  9 22:10:14 2022
-// Update Count     : 14
+// Last Modified On : Fri Feb 11 16:34:07 2022
+// Update Count     : 20
 //
 
@@ -131,9 +131,15 @@
 
 //----------
+// prng
 static inline {
 	uint32_t prng( thread$ & th ) __attribute__(( warn_unused_result )) { return LCG( th.random_state ); } // [0,UINT_MAX]
 	uint32_t prng( thread$ & th, uint32_t u ) __attribute__(( warn_unused_result )) { return prng( th ) % u; } // [0,u)
 	uint32_t prng( thread$ & th, uint32_t l, uint32_t u ) __attribute__(( warn_unused_result )) { return prng( th, u - l + 1 ) + l; } // [l,u]
-} // prng
+	forall( T & | is_thread(T) ) {
+		uint32_t prng( T & th ) __attribute__(( warn_unused_result )) { return prng( (thread &)th ); } // [0,UINT_MAX]
+		uint32_t prng( T & th, uint32_t u ) __attribute__(( warn_unused_result )) { return prng( th ) % u; } // [0,u)
+		uint32_t prng( T & th, uint32_t l, uint32_t u ) __attribute__(( warn_unused_result )) { return prng( th, u - l + 1 ) + l; } // [l,u]
+	} // distribution
+} // distribution
 
 // Local Variables: //
