int set_replace(Set *s, void *value);
void *set_get(Set *s, void *value);
void *set_remove(Set *s, void *value);
+int set_remove_and_put(Set *s, void *old_value, void *new_value);
int set_merge(Set *s, Set *other);
+void set_move(Set *s, Set *other);
+int set_move_one(Set *s, Set *other, void *value);
unsigned set_size(Set *s);
bool set_isempty(Set *s);