Type-safe access to the XML formats. See: http://0install.net/interface-spec.html http://0install.net/selections-spec.html
Internally, all _ t types are just Support.Qdom.element, but we add a
phantom type parameter to avoid mix-ups. e.g. a [`command] t is an element
that we know is a <command>.
The type parameter is a polymorphic variant because many commands work on
multiple element types. For example, many elements have an 'interface'
attribute, so the interface function accepts multiple types.
Copy element with a new interface. Used to make relative paths absolute.
raise_elem "Problem with" elem raises a Safe_exception with the message "Problem with <element> at ..."
Like raise_elem, but writing a log record rather than raising an exception.