-/* This type should be added to a type that is to be used in such a swag */
-/* Whenever a new object with this struct is created, all fields have to be swag to NULL */
+#ifndef _XBT_SWAG_H
+#define _XBT_SWAG_H
+
+#include "xbt/misc.h"
+#include "xbt/sysdep.h"
+
+
+/**
+ * @addtogroup XBT_swag
+ * @brief a O(1) set based on linked lists
+ *
+ * <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]
+ * <tr><td><b>Prev</b> <td> [\ref XBT_fifo]
+ * <tr><td><b>Next</b> <td> [\ref XBT_heap]
+ * <tr><td><b>Down</b> <td> [\ref XBT_swag_type] </table></center>
+ *
+ * Warning, this module is done to be efficient and performs tons of
+ * cast and dirty things. So make sure you know what you are doing while using it.
+ * It is basically a fifo but with restrictions so that
+ * it can be used as a set. Any operation (add, remove, belongs) is O(1) and
+ * no call to malloc/free is done.
+ *
+ */
+
+/** @defgroup XBT_swag_type Swag types
+ @ingroup XBT_swag
+
+ <center><table><tr><td><b>Top</b> <td> [\ref index]::[\ref XBT_API]::[\ref XBT_swag]
+ <tr><td> Prev <td>
+ <tr><td><b>Next</b> <td> [\ref XBT_swag_func] </table></center>
+
+ Specific set.