Index: doc/papers/general/evaluation/c-stack.c
===================================================================
--- doc/papers/general/evaluation/c-stack.c	(revision 29db7239b8192d870e72ad96c020f2db4b40c2bc)
+++ doc/papers/general/evaluation/c-stack.c	(revision e59f0bf1e2bd92c1edd775285840d853f5900983)
@@ -17,4 +17,12 @@
 	}
 	*crnt = NULL;
+}
+
+struct stack* assign_stack(struct stack* s, const struct stack* t, 
+		void* (*copy_el)(const void*), void (*free_el)(void*)) {
+	if ( s->head == t->head ) return s;
+	clear_stack( s, free_el ); /***/
+	copy_stack( s, t, copy_el ); /***/
+	return s;
 }
 
Index: doc/papers/general/evaluation/c-stack.h
===================================================================
--- doc/papers/general/evaluation/c-stack.h	(revision 29db7239b8192d870e72ad96c020f2db4b40c2bc)
+++ doc/papers/general/evaluation/c-stack.h	(revision e59f0bf1e2bd92c1edd775285840d853f5900983)
@@ -8,4 +8,6 @@
 struct stack new_stack();
 void copy_stack(struct stack* dst, const struct stack* src, void* (*copy)(const void*));
+struct stack* assign_stack(struct stack* dst, const struct stack* src, 
+	void* (*copy_el)(const void*), void (*free_el)(void*));
 void clear_stack(struct stack* s, void (*free_el)(void*));
 
