Make_with_wrapped_functions.XmlUnderlying XML data-structure
The type variables in elt and attrib are know as phantom types. The implementation, defined here, is actually monomorphic.
In particular, tyxml doesn't impose any overhead over the underlying representation. The tot and toelt functions allows to convert between the typed and the untyped representation without any cost.
Note that some implementation may not be iterable or printable, such as the Dom representation exposed by js_of_ocaml.
module W : Xml_wrap.T with type 'a t = 'a Xml.W.t with type 'a tlist = 'a Xml.W.tlist with type ('a, 'b) ft = ('a, 'b) Xml.W.fttype 'a wrap = 'a W.ttype 'a list_wrap = 'a W.tlisttype uri = Xml.uritype event_handler = Xml.event_handlertype mouse_event_handler = Xml.mouse_event_handlertype keyboard_event_handler = Xml.keyboard_event_handlertype touch_event_handler = Xml.touch_event_handlertype attrib = Xml.attribval event_handler_attrib : aname -> event_handler -> attribval mouse_event_handler_attrib : aname -> mouse_event_handler -> attribval keyboard_event_handler_attrib : aname -> keyboard_event_handler -> attribval touch_event_handler_attrib : aname -> touch_event_handler -> attribtype elt = Xml.eltval empty : unit -> eltval comment : string -> eltval entity : string -> eltval cdata : string -> eltval cdata_script : string -> eltval cdata_style : string -> elt