--- /dev/null
+
+#ifndef ml_minidom_h
+#define ml_minidom_h
+
+#define Val_ptr(p) ((value) (p))
+#ifndef Val_option
+#define Val_option(p,f) ((p != NULL) ? ml_some(f(p)) : Val_unit)
+#endif /* Val_option */
+#define Val_mDOMString(s) (copy_string((char*) (s)))
+#define mDOMString_val(v) ((mDOMStringRef) String_val(v))
+#define mDOMNode_val(v) ((mDOMNodeRef) v)
+
+#define mDOMNode_option_mDOMNodeRef(p) (((p) != NULL) ? ml_some((value) (p)) : Val_unit)
+#define mDOMNodeRef_mDOMNode_option(v) ((v == Val_unit) ? NULL : (mDOMNodeRef)Field((v),0))
+#define Val_mDOMNodeRef(p) (mDOMNode_option_mDOMNodeRef(p))
+#define mDOMNodeRef_val(v) (mDOMNodeRef_mDOMNode_option(v))
+
+#endif /* ml_minidom_h */