sig
  type update_holder
  type delta =
      Insert of Dm.node * Dm.node option * Dm.node list
    | Delete of Dm.node * Dm.node
    | ReplaceValue of Dm.node * Dm.text
    | Replace of Dm.node * Dm.node * Dm.node list
    | Rename of Dm.node * Datatypes.xs_QName
  val allocate_update_holder :
    Update_ordering.update_holder -> Update_ordering.update_holder
  val add_concrete_update :
    Update_ordering.update_holder -> Update_ordering.delta -> unit
  val collect_all_updates :
    Update_ordering.update_holder -> Update_ordering.delta list
  val make_fresh_place_holder : unit -> Update_ordering.update_holder
end