Index: libcfa/src/bits/weakso_locks.cfa
===================================================================
--- libcfa/src/bits/weakso_locks.cfa	(revision 8ffee9abdf3fe72a98ec14a6a08c693c14a9995e)
+++ libcfa/src/bits/weakso_locks.cfa	(revision fbaea97009f70b67f476a193ca6b049a1100402d)
@@ -28,6 +28,6 @@
 void on_wakeup( blocking_lock &, size_t ) {}
 size_t wait_count( blocking_lock & ) { return 0; }
-bool register_select( blocking_lock & this, select_node & node ) { return false; }
-bool unregister_select( blocking_lock & this, select_node & node ) { return false; }
-bool on_selected( blocking_lock & this, select_node & node ) { return true; }
+bool register_select$( blocking_lock & this, select_node & node ) { return false; }
+bool unregister_select$( blocking_lock & this, select_node & node ) { return false; }
+bool on_selected$( blocking_lock & this, select_node & node ) { return true; }
 
Index: libcfa/src/bits/weakso_locks.hfa
===================================================================
--- libcfa/src/bits/weakso_locks.hfa	(revision 8ffee9abdf3fe72a98ec14a6a08c693c14a9995e)
+++ libcfa/src/bits/weakso_locks.hfa	(revision fbaea97009f70b67f476a193ca6b049a1100402d)
@@ -59,7 +59,7 @@
 void on_wakeup( blocking_lock & this, size_t ) OPTIONAL_THREAD;
 size_t wait_count( blocking_lock & this ) OPTIONAL_THREAD;
-bool register_select( blocking_lock & this, select_node & node ) OPTIONAL_THREAD;
-bool unregister_select( blocking_lock & this, select_node & node ) OPTIONAL_THREAD;
-bool on_selected( blocking_lock & this, select_node & node ) OPTIONAL_THREAD;
+bool register_select$( blocking_lock & this, select_node & node ) OPTIONAL_THREAD;
+bool unregister_select$( blocking_lock & this, select_node & node ) OPTIONAL_THREAD;
+bool on_selected$( blocking_lock & this, select_node & node ) OPTIONAL_THREAD;
 blocking_lock __CFA_select_get_type( blocking_lock this ) OPTIONAL_THREAD;
 
@@ -78,6 +78,6 @@
 static inline void   on_wakeup( multiple_acquisition_lock & this, size_t v ) { on_wakeup ( (blocking_lock &)this, v ); }
 static inline void   on_notify( multiple_acquisition_lock & this, struct thread$ * t ){ on_notify( (blocking_lock &)this, t ); }
-static inline bool   register_select( multiple_acquisition_lock & this, select_node & node ) { return register_select( (blocking_lock &)this, node ); }
-static inline bool   unregister_select( multiple_acquisition_lock & this, select_node & node ) { return unregister_select( (blocking_lock &)this, node ); }
-static inline bool   on_selected( multiple_acquisition_lock & this, select_node & node ) { return on_selected( (blocking_lock &)this, node ); }
+static inline bool   register_select$( multiple_acquisition_lock & this, select_node & node ) { return register_select$( (blocking_lock &)this, node ); }
+static inline bool   unregister_select$( multiple_acquisition_lock & this, select_node & node ) { return unregister_select$( (blocking_lock &)this, node ); }
+static inline bool   on_selected$( multiple_acquisition_lock & this, select_node & node ) { return on_selected$( (blocking_lock &)this, node ); }
 multiple_acquisition_lock __CFA_select_get_type( multiple_acquisition_lock this );
Index: libcfa/src/concurrency/channel.hfa
===================================================================
--- libcfa/src/concurrency/channel.hfa	(revision 8ffee9abdf3fe72a98ec14a6a08c693c14a9995e)
+++ libcfa/src/concurrency/channel.hfa	(revision fbaea97009f70b67f476a193ca6b049a1100402d)
@@ -411,5 +411,5 @@
 	}
 
-	bool register_select( chan_read(T) & this, select_node & node ) with(*this.chan, this) {
+	bool register_select$( chan_read(T) & this, select_node & node ) with(*this.chan, this) {
 	    lock( mutex_lock );
 	    node.extra = ret; // set .extra so that if it == 0p later in on_selected it is due to channel close
@@ -476,6 +476,6 @@
 	    return true;
 	}
-	bool unregister_select( chan_read(T) & this, select_node & node ) { return unregister_chan( *this.chan, node ); }
-	bool on_selected( chan_read(T) & this, select_node & node ) with(this) {
+	bool unregister_select$( chan_read(T) & this, select_node & node ) { return unregister_chan( *this.chan, node ); }
+	bool on_selected$( chan_read(T) & this, select_node & node ) with(this) {
 	    if ( unlikely(node.extra == 0p) ) {
 	        if ( ! exception_in_flight() ) __closed_remove( *chan, *ret ); // check if woken up due to closed channel
@@ -491,10 +491,10 @@
 
 	chan_read_no_ret(T) remove( channel(T) & chan ) { chan_read_no_ret(T) c_read{ chan }; return c_read; }
-	bool register_select( chan_read_no_ret(T) & this, select_node & node ) { 
+	bool register_select$( chan_read_no_ret(T) & this, select_node & node ) { 
 	    this.c_read.ret = &this.retval;
-	    return register_select( this.c_read, node );
-	}
-	bool unregister_select( chan_read_no_ret(T) & this, select_node & node ) { return unregister_select( this.c_read, node ); }
-	bool on_selected( chan_read_no_ret(T) & this, select_node & node ) { return on_selected( this.c_read, node ); }
+	    return register_select$( this.c_read, node );
+	}
+	bool unregister_select$( chan_read_no_ret(T) & this, select_node & node ) { return unregister_select$( this.c_read, node ); }
+	bool on_selected$( chan_read_no_ret(T) & this, select_node & node ) { return on_selected$( this.c_read, node ); }
 
 	void ?{}( chan_write(T) & cw, channel(T) * chan, T elem ) {
@@ -511,5 +511,5 @@
 	}
 
-	bool register_select( chan_write(T) & this, select_node & node ) with(*this.chan, this) {
+	bool register_select$( chan_write(T) & this, select_node & node ) with(*this.chan, this) {
 	    lock( mutex_lock );
 	    node.extra = &elem; // set .extra so that if it == 0p later in on_selected it is due to channel close
@@ -577,7 +577,7 @@
 		return true;
 	}
-	bool unregister_select( chan_write(T) & this, select_node & node ) { return unregister_chan( *this.chan, node ); }
-
-	bool on_selected( chan_write(T) & this, select_node & node ) with(this) { 
+	bool unregister_select$( chan_write(T) & this, select_node & node ) { return unregister_chan( *this.chan, node ); }
+
+	bool on_selected$( chan_write(T) & this, select_node & node ) with(this) { 
 		if ( unlikely(node.extra == 0p) ) {
 			if ( ! exception_in_flight() ) __closed_insert( *chan, elem ); // check if woken up due to closed channel
Index: libcfa/src/concurrency/future.hfa
===================================================================
--- libcfa/src/concurrency/future.hfa	(revision 8ffee9abdf3fe72a98ec14a6a08c693c14a9995e)
+++ libcfa/src/concurrency/future.hfa	(revision fbaea97009f70b67f476a193ca6b049a1100402d)
@@ -10,6 +10,6 @@
 // Created On       : Wed Jan 06 17:33:18 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Nov 19 09:26:38 2025
-// Update Count     : 204
+// Last Modified On : Sun Nov 23 22:48:08 2025
+// Update Count     : 208
 //
 
@@ -55,5 +55,5 @@
 		// PRIVATE
 
-		bool register_select( future(T) & fut, select_node & s ) with( fut ) { // for waituntil statement
+		bool register_select$( future(T) & fut, select_node & s ) with( fut ) { // for waituntil statement
 			lock( lock );
 
@@ -78,5 +78,5 @@
 		}
 
-		bool unregister_select( future(T) & fut, select_node & s ) with( fut ) { // for waituntil statement
+		bool unregister_select$( future(T) & fut, select_node & s ) with( fut ) { // for waituntil statement
 		  if ( ! isListed( s ) ) return false;
 			lock( lock );
@@ -86,5 +86,5 @@
 		}
 
-		bool on_selected( future(T) &, select_node & ) { return true; } // for waituntil statement
+		bool on_selected$( future(T) &, select_node & ) { return true; } // for waituntil statement
 
 		// PUBLIC
@@ -98,5 +98,4 @@
 
  		void ?{}( future(T) & fut ) with( fut ) {
-// 			waiters{};
  			except = 0p;
  			state = FUTURE_EMPTY$;
@@ -260,13 +259,13 @@
 		// PRIVATE
 
-		bool register_select( future_rc(T) & frc, select_node & s ) with( frc ) { // for waituntil statement
-			return register_select( frc.impl->fut, s );
-		}
-
-		bool unregister_select( future_rc(T) & frc, select_node & s ) with( frc ) { // for waituntil statement
-			return unregister_select( frc.impl->fut, s );
-		}
-
-		bool on_selected( future_rc(T) &, select_node & ) { return true; } // for waituntil statement
+		bool register_select$( future_rc(T) & frc, select_node & s ) with( frc ) { // for waituntil statement
+			return register_select$( frc.impl->fut, s );
+		}
+
+		bool unregister_select$( future_rc(T) & frc, select_node & s ) with( frc ) { // for waituntil statement
+			return unregister_select$( frc.impl->fut, s );
+		}
+
+		bool on_selected$( future_rc(T) &, select_node & ) { return true; } // for waituntil statement
 
 		// PUBLIC
Index: libcfa/src/concurrency/locks.cfa
===================================================================
--- libcfa/src/concurrency/locks.cfa	(revision 8ffee9abdf3fe72a98ec14a6a08c693c14a9995e)
+++ libcfa/src/concurrency/locks.cfa	(revision fbaea97009f70b67f476a193ca6b049a1100402d)
@@ -186,5 +186,5 @@
 
 // waituntil() support
-bool register_select( blocking_lock & this, select_node & node ) with(this) {
+bool register_select$( blocking_lock & this, select_node & node ) with(this) {
 	lock( lock __cfaabi_dbg_ctx2 );
 	thread$ * thrd = active_thread();
@@ -218,5 +218,5 @@
 }
 
-bool unregister_select( blocking_lock & this, select_node & node ) with(this) {
+bool unregister_select$( blocking_lock & this, select_node & node ) with(this) {
 	lock( lock __cfaabi_dbg_ctx2 );
 	if ( isListed( node ) ) {
@@ -239,5 +239,5 @@
 }
 
-bool on_selected( blocking_lock & this, select_node & node ) { return true; }
+bool on_selected$( blocking_lock & this, select_node & node ) { return true; }
 
 //-----------------------------------------------------------------------------
Index: libcfa/src/concurrency/locks.hfa
===================================================================
--- libcfa/src/concurrency/locks.hfa	(revision 8ffee9abdf3fe72a98ec14a6a08c693c14a9995e)
+++ libcfa/src/concurrency/locks.hfa	(revision fbaea97009f70b67f476a193ca6b049a1100402d)
@@ -11,6 +11,6 @@
 // Created On       : Thu Jan 21 19:46:50 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Nov 17 20:48:55 2025
-// Update Count     : 63
+// Last Modified On : Sun Nov 23 22:38:45 2025
+// Update Count     : 67
 //
 
@@ -127,7 +127,7 @@
 static inline void on_wakeup( single_acquisition_lock & this, size_t v ) { on_wakeup ( (blocking_lock &)this, v ); }
 static inline void on_notify( single_acquisition_lock & this, struct thread$ * t ) { on_notify( (blocking_lock &)this, t ); }
-static inline bool register_select( single_acquisition_lock & this, select_node & node ) { return register_select( (blocking_lock &)this, node ); }
-static inline bool unregister_select( single_acquisition_lock & this, select_node & node ) { return unregister_select( (blocking_lock &)this, node ); }
-static inline bool on_selected( single_acquisition_lock & this, select_node & node ) { return on_selected( (blocking_lock &)this, node ); }
+static inline bool register_select$( single_acquisition_lock & this, select_node & node ) { return register_select$( (blocking_lock &)this, node ); }
+static inline bool unregister_select$( single_acquisition_lock & this, select_node & node ) { return unregister_select$( (blocking_lock &)this, node ); }
+static inline bool on_selected$( single_acquisition_lock & this, select_node & node ) { return on_selected$( (blocking_lock &)this, node ); }
 __CFA_SELECT_GET_TYPE( single_acquisition_lock );
 
@@ -145,7 +145,7 @@
 static inline void on_wakeup( owner_lock & this, size_t v ) { on_wakeup ( (blocking_lock &)this, v ); }
 static inline void on_notify( owner_lock & this, struct thread$ * t ) { on_notify( (blocking_lock &)this, t ); }
-static inline bool register_select( owner_lock & this, select_node & node ) { return register_select( (blocking_lock &)this, node ); }
-static inline bool unregister_select( owner_lock & this, select_node & node ) { return unregister_select( (blocking_lock &)this, node ); }
-static inline bool on_selected( owner_lock & this, select_node & node ) { return on_selected( (blocking_lock &)this, node ); }
+static inline bool register_select$( owner_lock & this, select_node & node ) { return register_select$( (blocking_lock &)this, node ); }
+static inline bool unregister_select$( owner_lock & this, select_node & node ) { return unregister_select$( (blocking_lock &)this, node ); }
+static inline bool on_selected$( owner_lock & this, select_node & node ) { return on_selected$( (blocking_lock &)this, node ); }
 __CFA_SELECT_GET_TYPE( owner_lock );
 
@@ -611,5 +611,5 @@
 
 // waituntil() support
-static inline bool register_select( simple_owner_lock & this, select_node & node ) with( this ) {
+static inline bool register_select$( simple_owner_lock & this, select_node & node ) with( this ) {
 	lock( lock __cfaabi_dbg_ctx2 );
 
@@ -643,5 +643,5 @@
 }
 
-static inline bool unregister_select( simple_owner_lock & this, select_node & node ) with( this ) {
+static inline bool unregister_select$( simple_owner_lock & this, select_node & node ) with( this ) {
 	lock( lock __cfaabi_dbg_ctx2 );
 	if ( isListed( node ) ) {
@@ -661,5 +661,5 @@
 }
 
-static inline bool on_selected( simple_owner_lock & /*this*/, select_node & /*node*/ ) { return true; }
+static inline bool on_selected$( simple_owner_lock & /*this*/, select_node & /*node*/ ) { return true; }
 __CFA_SELECT_GET_TYPE( simple_owner_lock );
 
Index: libcfa/src/concurrency/select.cfa
===================================================================
--- libcfa/src/concurrency/select.cfa	(revision 8ffee9abdf3fe72a98ec14a6a08c693c14a9995e)
+++ libcfa/src/concurrency/select.cfa	(revision fbaea97009f70b67f476a193ca6b049a1100402d)
@@ -10,7 +10,7 @@
 // Author           : Colby Alexander Parsons
 // Created On       : Thu Apr 21 19:46:50 2023
-// Last Modified By : Kyoung Seo
-// Last Modified On : Wed Mar 19 12:00:00 2025
-// Update Count     : 1
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Sun Nov 23 22:38:53 2025
+// Update Count     : 4
 //
 
@@ -39,5 +39,5 @@
 
 // Selectable trait routines
-bool register_select( select_timeout_node & this, select_node & node ) {
+bool register_select$( select_timeout_node & this, select_node & node ) {
     this.s_node = &node;
     node.extra = 0p;
@@ -45,8 +45,8 @@
     return false;
 }
-bool unregister_select( select_timeout_node & this, select_node & node ) {
+bool unregister_select$( select_timeout_node & this, select_node & node ) {
     unregister_self( &this.a_node );
     return false;
 }
-bool on_selected( select_timeout_node & this, select_node & node ) { return true; }
+bool on_selected$( select_timeout_node & this, select_node & node ) { return true; }
 
Index: libcfa/src/concurrency/select.hfa
===================================================================
--- libcfa/src/concurrency/select.hfa	(revision 8ffee9abdf3fe72a98ec14a6a08c693c14a9995e)
+++ libcfa/src/concurrency/select.hfa	(revision fbaea97009f70b67f476a193ca6b049a1100402d)
@@ -11,6 +11,6 @@
 // Created On       : Thu Jan 21 19:46:50 2023
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Apr 25 07:31:26 2025
-// Update Count     : 5
+// Last Modified On : Sun Nov 23 22:38:36 2025
+// Update Count     : 8
 //
 
@@ -87,13 +87,13 @@
 	// For registering a select stmt on a selectable concurrency primitive
 	// Returns bool that indicates if operation is already SAT
-	bool register_select( T &, select_node & );
+	bool register_select$( T &, select_node & );
 
 	// For unregistering a select stmt on a selectable concurrency primitive
 	// If true is returned then the corresponding code block is run (only in non-special OR case and only if node status is not RUN)
-	bool unregister_select( T &, select_node & );
+	bool unregister_select$( T &, select_node & );
 
 	// This routine is run on the selecting thread prior to executing the statement corresponding to the select_node
 	//	passed as an arg to this routine. If true is returned proceed as normal, if false is returned the statement is skipped
-	bool on_selected( T &, select_node & );
+	bool on_selected$( T &, select_node & );
 };
 // Used inside the compiler to allow for overloading on return type for operations such as '?<<?' for channels
@@ -209,7 +209,7 @@
 
 // Selectable trait routines
-bool register_select( select_timeout_node & this, select_node & node );
-bool unregister_select( select_timeout_node & this, select_node & node );
-bool on_selected( select_timeout_node & this, select_node & node );
+bool register_select$( select_timeout_node & this, select_node & node );
+bool unregister_select$( select_timeout_node & this, select_node & node );
+bool on_selected$( select_timeout_node & this, select_node & node );
 select_timeout_node __CFA_select_get_type( select_timeout_node this );
 
