+struct user_rec* gom_get_user_rec_by_xref(const char *xref);
+struct user_rec* gom_new_user_rec(const char* xrefstr, const char* tag);
+int gom_delete_user_rec(struct user_rec* obj);
+
+char* gom_get_string(char* data);
+char* gom_set_string(char** data, const char* utf8_str);
+
+char* gom_get_string_for_locale(char* data, int* conversion_failures);
+char* gom_set_string_for_locale(char** data, const char* locale_str);
+void gom_set_unknown(const char* unknown);
+
+typedef enum _DIR {
+ MOVE_UP,
+ MOVE_DOWN
+} Gom_direction;
+
+struct xref_value* gom_set_xref(struct xref_value** data, const char* xref);
+struct xref_list* gom_add_xref(struct xref_list** data, const char* xref);
+int gom_remove_xref(struct xref_list** data, const char* xref);
+int gom_move_xref(Gom_direction dir, struct xref_list** data,
+ const char* xref);
+
+struct address* gom_set_new_address(struct address** obj);
+int gom_delete_address(struct address** obj);
+
+struct place* gom_set_new_place(struct place** obj);
+int gom_delete_place(struct place** obj);
+
+struct change_date* gom_set_new_change_date(struct change_date** obj);
+int gom_delete_change_date(struct change_date** obj);
+int gom_update_timestamp(struct change_date** obj, time_t t);
+
+#ifdef __cplusplus
+}
+#endif