XQuery!: An XML query language with side effects