Index: libcfa/src/containers/stackLockFree.hfa
===================================================================
--- libcfa/src/containers/stackLockFree.hfa	(revision d6d1f80435878c773e2c58c98dede3a28b9ea068)
+++ libcfa/src/containers/stackLockFree.hfa	(revision c45d2fa939ce2de2a4151d729272ee7d48599f87)
@@ -9,6 +9,6 @@
 // Created On       : Wed May 13 20:58:58 2020
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon May 18 13:30:08 2020
-// Update Count     : 55
+// Last Modified On : Sat Jun 13 12:24:37 2020
+// Update Count     : 62
 // 
 
@@ -19,17 +19,17 @@
 forall( dtype T )
 union Link {
-	struct {									// 32/64-bit x 2
-		T * top;								// pointer to stack top
-		uintptr_t count;						// count each push
+	struct {											// 32/64-bit x 2
+		T * top;										// pointer to stack top
+		uintptr_t count;								// count each push
 	};
 	#if __SIZEOF_INT128__ == 16
-	__int128									// gcc, 128-bit integer
+	__int128											// gcc, 128-bit integer
 	#else
-	uint64_t									// 64-bit integer
+	uint64_t											// 64-bit integer
 	#endif // __SIZEOF_INT128__ == 16
 	atom;
 }; // Link
 
-forall( otype T | { Link(T) * getNext( T * ); } ) {
+forall( dtype T | sized(T) | { Link(T) * getNext( T * ); } ) {
     struct StackLF {
 		Link(T) stack;
@@ -42,6 +42,6 @@
 
 		void push( StackLF(T) & this, T & n ) with(this) {
+			*getNext( &n ) = stack;						// atomic assignment unnecessary, or use CAA
 			for () {									// busy wait
-				*getNext( &n ) = stack;					// atomic assignment unnecessary, or use CAA
 			  if ( __atomic_compare_exchange_n( &stack.atom, &getNext( &n )->atom, (Link(T))@{ {&n, getNext( &n )->count + 1} }.atom, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST ) ) break; // attempt to update top node
 			} // for
@@ -50,6 +50,6 @@
 		T * pop( StackLF(T) & this ) with(this) {
 			Link(T) t @= {};
+			t = stack;									// atomic assignment unnecessary, or use CAA
 			for () {									// busy wait
-				t = stack;								// atomic assignment unnecessary, or use CAA
 			  if ( t.top == 0p ) return 0p;				// empty stack ?
 			  if ( __atomic_compare_exchange_n( &stack.atom, &t.atom, (Link(T))@{ {getNext( t.top )->top, t.count} }.atom, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST ) ) return t.top; // attempt to update top node
