+/**
+ * Inserts an element into a set, zero-terminate it and returns its set_entry.
+ *
+ * @param set the set to insert in
+ * @param key a pointer to the element to be inserted. Element is copied!
+ * @param size the size of the element that should be inserted
+ * @param hash the hash-value of the element
+ *
+ * @return a pointer to the set_entry of the inserted element
+ *
+ * @note
+ * It is not possible to insert on element more than once. If an element
+ * that should be inserted is already in the set, this functions does
+ * nothing but returning its set_entry.
+ */
+set_entry *set_hinsert0 (set *set, const void *key, size_t size, unsigned hash);
+
+/**
+ * Returns the first element of a set.
+ *
+ * @param set the set to iterate
+ *
+ * @return a pointer to the element or NULL if the set is empty
+ */