Index: libcfa/src/concurrency/thread.cfa
===================================================================
--- libcfa/src/concurrency/thread.cfa	(revision 29702ad1e351b5bb998c5b18e96a209401abf2b4)
+++ libcfa/src/concurrency/thread.cfa	(revision 20cf96d2ae36584a53804df284c094c30c96763b)
@@ -10,6 +10,6 @@
 // Created On       : Tue Jan 17 12:27:26 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Nov 20 17:17:50 2022
-// Update Count     : 80
+// Last Modified On : Tue Nov 22 22:18:37 2022
+// Update Count     : 81
 //
 
@@ -227,5 +227,5 @@
 //-----------------------------------------------------------------------------
 
-void set_seed( uint64_t seed ) {
+void set_seed( size_t seed ) {
 	PRNG_ARG_T & state = active_thread()->random_state;
 	state = __global_random_seed = seed;
@@ -235,5 +235,5 @@
 } // set_seed
 
-uint64_t prng( void ) {									// [0,UINT_MAX]
+size_t prng( void ) {									// [0,UINT_MAX]
 	PRNG_ARG_T & state = active_thread()->random_state;
 	return PRNG_NAME( state );
Index: libcfa/src/concurrency/thread.hfa
===================================================================
--- libcfa/src/concurrency/thread.hfa	(revision 29702ad1e351b5bb998c5b18e96a209401abf2b4)
+++ libcfa/src/concurrency/thread.hfa	(revision 20cf96d2ae36584a53804df284c094c30c96763b)
@@ -10,6 +10,6 @@
 // Created On       : Tue Jan 17 12:27:26 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Nov 19 16:41:27 2022
-// Update Count     : 30
+// Last Modified On : Tue Nov 22 22:18:34 2022
+// Update Count     : 35
 //
 
@@ -142,12 +142,13 @@
 //----------
 // prng
+void set_seed( size_t seed );
 static inline {
-	uint64_t prng( thread$ & th ) __attribute__(( warn_unused_result )) { return PRNG_NAME( th.random_state ); } // [0,UINT_MAX]
-	uint64_t prng( thread$ & th, uint64_t u ) __attribute__(( warn_unused_result )) { return prng( th ) % u; } // [0,u)
-	uint64_t prng( thread$ & th, uint64_t l, uint64_t u ) __attribute__(( warn_unused_result )) { return prng( th, u - l + 1 ) + l; } // [l,u]
+	size_t prng( thread$ & th ) __attribute__(( warn_unused_result )) { return PRNG_NAME( th.random_state ); } // [0,UINT_MAX]
+	size_t prng( thread$ & th, size_t u ) __attribute__(( warn_unused_result )) { return prng( th ) % u; } // [0,u)
+	size_t prng( thread$ & th, size_t l, size_t u ) __attribute__(( warn_unused_result )) { return prng( th, u - l + 1 ) + l; } // [l,u]
 	forall( T & | is_thread(T) ) {
-		uint64_t prng( T & th ) __attribute__(( warn_unused_result )) { return prng( (thread &)th ); } // [0,UINT_MAX]
-		uint64_t prng( T & th, uint64_t u ) __attribute__(( warn_unused_result )) { return prng( th ) % u; } // [0,u)
-		uint64_t prng( T & th, uint64_t l, uint64_t u ) __attribute__(( warn_unused_result )) { return prng( th, u - l + 1 ) + l; } // [l,u]
+	 	size_t prng( T & th ) __attribute__(( warn_unused_result )) { return prng( (thread &)th ); } // [0,UINT_MAX]
+		size_t prng( T & th, size_t u ) __attribute__(( warn_unused_result )) { return prng( th ) % u; } // [0,u)
+		size_t prng( T & th, size_t l, size_t u ) __attribute__(( warn_unused_result )) { return prng( th, u - l + 1 ) + l; } // [l,u]
 	} // distribution
 } // distribution
Index: libcfa/src/stdlib.cfa
===================================================================
--- libcfa/src/stdlib.cfa	(revision 29702ad1e351b5bb998c5b18e96a209401abf2b4)
+++ libcfa/src/stdlib.cfa	(revision 20cf96d2ae36584a53804df284c094c30c96763b)
@@ -10,6 +10,6 @@
 // Created On       : Thu Jan 28 17:10:29 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Nov 19 16:42:26 2022
-// Update Count     : 612
+// Last Modified On : Tue Nov 22 22:18:36 2022
+// Update Count     : 613
 //
 
@@ -229,7 +229,7 @@
 __attribute__((visibility("hidden"))) PRNG_ARG_T __global_random_state; // sequential only
 
-void set_seed( uint64_t seed ) { __global_random_state = __global_random_seed = seed; PRNG_NAME( __global_random_state ); }
-uint64_t get_seed() { return __global_random_seed; }
-uint64_t prng( void ) { return PRNG_NAME( __global_random_state ); } // [0,UINT_MAX]
+void set_seed( size_t seed ) { __global_random_state = __global_random_seed = seed; PRNG_NAME( __global_random_state ); }
+size_t get_seed() { return __global_random_seed; }
+size_t prng( void ) { return PRNG_NAME( __global_random_state ); } // [0,UINT_MAX]
 
 //---------------------------------------
Index: libcfa/src/stdlib.hfa
===================================================================
--- libcfa/src/stdlib.hfa	(revision 29702ad1e351b5bb998c5b18e96a209401abf2b4)
+++ libcfa/src/stdlib.hfa	(revision 20cf96d2ae36584a53804df284c094c30c96763b)
@@ -10,6 +10,6 @@
 // Created On       : Thu Jan 28 17:12:35 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Nov 20 17:12:37 2022
-// Update Count     : 730
+// Last Modified On : Tue Nov 22 22:48:59 2022
+// Update Count     : 736
 //
 
@@ -404,16 +404,16 @@
 //   calls( sprng );
 
-trait basic_prng( PRNG &, S, R ) {
-	void set_seed( PRNG & prng, S seed );				// set seed
-	S get_seed( PRNG & prng );							// get seed
+trait basic_prng( PRNG &, R ) {
+	void set_seed( PRNG & prng, R seed );				// set seed
+	R get_seed( PRNG & prng );							// get seed
 	R prng( PRNG & prng );
 	void ?{}( PRNG & prng );							// random seed
-	void ?{}( PRNG & prng, S seed );					// fixed seed
+	void ?{}( PRNG & prng, R seed );					// fixed seed
 }; // basic_prng
 
-static inline forall( PRNG &, S, R | basic_prng( PRNG, S, R ) | { R ?%?( R, R ); } ) {
+static inline forall( PRNG &, R | basic_prng( PRNG, R ) | { R ?%?( R, R ); } ) {
 	R prng( PRNG & prng, R u ) { return prng( prng ) % u; } // [0,u)
 }
-static inline forall( PRNG &, S, R | basic_prng( PRNG, S, R ) | { R ?+?( R, R ); R ?-?( R, R ); R ?%?( R, R ); void ?{}( R &, one_t ); } ) {
+static inline forall( PRNG &, R | basic_prng( PRNG, R ) | { R ?+?( R, R ); R ?-?( R, R ); R ?%?( R, R ); void ?{}( R &, one_t ); } ) {
 	R prng( PRNG & prng, R l, R u ) { return prng( prng, u - l + (R){1} ) + l; } // [l,u]
 }
@@ -429,4 +429,6 @@
 	uint32_t get_seed( PRNG32 & prng ) __attribute__(( warn_unused_result )) with( prng ) { return seed; } // get seed
 	uint32_t prng( PRNG32 & prng ) __attribute__(( warn_unused_result )) with( prng ) { callcnt += 1; return PRNG_NAME( state ); } // [0,UINT_MAX]
+	uint32_t prng( PRNG32 & prng, size_t u ) __attribute__(( warn_unused_result )) { return prng( prng ) % u; } // [0,u)
+	uint32_t prng( PRNG32 & prng, size_t l, size_t u ) __attribute__(( warn_unused_result )) { return prng( prng, u - l + 1 ) + l; } // [l,u]
 	uint32_t calls( PRNG32 & prng ) __attribute__(( warn_unused_result )) with( prng ) { return callcnt; }
 	void ?{}( PRNG32 & prng ) with( prng ) { callcnt = 0; set_seed( prng, rdtscl() ); } // random seed
@@ -444,4 +446,6 @@
 	uint64_t get_seed( PRNG64 & prng ) __attribute__(( warn_unused_result )) with( prng ) { return seed; } // get seed
 	uint64_t prng( PRNG64 & prng ) __attribute__(( warn_unused_result )) with( prng ) { callcnt += 1; return PRNG_NAME( state ); } // [0,UINT_MAX]
+	uint64_t prng( PRNG64 & prng, size_t u ) __attribute__(( warn_unused_result )) { return prng( prng ) % u; } // [0,u)
+	uint64_t prng( PRNG64 & prng, size_t l, size_t u ) __attribute__(( warn_unused_result )) { return prng( prng, u - l + 1 ) + l; } // [l,u]
 	uint64_t calls( PRNG64 & prng ) __attribute__(( warn_unused_result )) with( prng ) { return callcnt; }
 	void ?{}( PRNG64 & prng ) with( prng ) { callcnt = 0; set_seed( prng, rdtscl() ); } // random seed
@@ -464,10 +468,10 @@
 
 // Harmonize with concurrency/thread.hfa.
-void set_seed( uint64_t seed_ ) OPTIONAL_THREAD;
-uint64_t get_seed() __attribute__(( warn_unused_result ));
-uint64_t prng( void ) __attribute__(( warn_unused_result )) OPTIONAL_THREAD; // [0,UINT_MAX]
-static inline {
-	uint64_t prng( uint64_t u ) __attribute__(( warn_unused_result )) { return prng() % u; } // [0,u)
-	uint64_t prng( uint64_t l, uint64_t u ) __attribute__(( warn_unused_result )) { return prng( u - l + 1 ) + l; } // [l,u]
+void set_seed( size_t seed_ ) OPTIONAL_THREAD;
+size_t get_seed() __attribute__(( warn_unused_result ));
+size_t prng( void ) __attribute__(( warn_unused_result )) OPTIONAL_THREAD; // [0,UINT_MAX]
+static inline {
+	size_t prng( size_t u ) __attribute__(( warn_unused_result )) { return prng() % u; } // [0,u)
+	size_t prng( size_t l, size_t u ) __attribute__(( warn_unused_result )) { return prng( u - l + 1 ) + l; } // [l,u]
 } // distribution
 
Index: tests/PRNG.cfa
===================================================================
--- tests/PRNG.cfa	(revision 29702ad1e351b5bb998c5b18e96a209401abf2b4)
+++ tests/PRNG.cfa	(revision 20cf96d2ae36584a53804df284c094c30c96763b)
@@ -8,6 +8,6 @@
 // Created On       : Wed Dec 29 09:38:12 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Nov 20 22:17:35 2022
-// Update Count     : 377
+// Last Modified On : Tue Nov 22 22:51:12 2022
+// Update Count     : 381
 // 
 
@@ -171,6 +171,6 @@
 	for ( 20 ) {
 		sout | wd(13, prng( prng )) | nonl;				// cascading => side-effect functions called in arbitary order
-		sout | wd(10, prng( prng, 5z )) | nonl;
-		sout | wd(13, prng( prng, 0, 5z ));
+		sout | wd(10, prng( prng, 5 )) | nonl;
+		sout | wd(13, prng( prng, 0, 5 ));
 	} // for
 	sout | sepEnable;
@@ -206,6 +206,6 @@
 	for ( 20 ) {
 		sout | wd(13, prng()) | nonl;					// cascading => side-effect functions called in arbitary order
-		sout | wd(10, prng( 5z )) | nonl;
-		sout | wd(13, prng( 0, 5z ));
+		sout | wd(10, prng( 5 )) | nonl;
+		sout | wd(13, prng( 0, 5 ));
 	} // for
 	sout | sepEnable;
@@ -242,6 +242,6 @@
 	for ( 20 ) {
 		sout | wd(13, prng( th )) | nonl;				// cascading => side-effect functions called in arbitary order
-		sout | wd(10, prng( th, 5z )) | nonl;
-		sout | wd(13, prng( th, 0, 5z ));
+		sout | wd(10, prng( th, 5 )) | nonl;
+		sout | wd(13, prng( th, 0, 5 ));
 	} // for
 	sout | sepEnable;
