diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -3,15 +3,14 @@
 HXT_HOME	= .
 
 software	= hxt
+VERSION		= 7.5
 dist		= $(software)-$(VERSION)
+DIST		= $(software)-$(VERSION)
 DIST_FILES	= Makefile README LICENCE Setup.lhs hxt.cabal
 DIST_TAR	= $(dist).tar.gz
 
-SOFTWARE	= hxt
-VERSION		= 7.4
-VERSIONTAG	= $(software)-7-04				# use: make tag for creating darcs tag
-LASTVERSION	= 7.3
-DIST		= $(SOFTWARE)-$(VERSION)
+VERSIONTAG	= $(software)-7-05				# use: make tag for creating darcs tag
+LASTVERSION	= 7.4
 PUBDATE		:= $(shell date +%Y-%m-%d)
 
 EDIT_VERSION	= sed 's/%DISTFILE%/$(DIST)/g' \
@@ -68,6 +67,11 @@
 
 uninstall		:
 		$(MAKE) -C src uninstall
+
+distdate	= $(shell date -r $(DIST_TAR) +%Y-%m-%d.%R)
+
+distcopy	: $(DIST_TAR)
+		scp $(DIST_TAR) hxt@darcs.fh-wedel.de:/home/hxt/hxt/hxt-head-$(distdate).tar.gz
 
 # --------------------------------------------------
 
diff --git a/doc/hdoc/Control-Arrow-ArrowIO.html b/doc/hdoc/Control-Arrow-ArrowIO.html
--- a/doc/hdoc/Control-Arrow-ArrowIO.html
+++ b/doc/hdoc/Control-Arrow-ArrowIO.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowIO.hs"
 >Source code</A
diff --git a/doc/hdoc/Control-Arrow-ArrowIf.html b/doc/hdoc/Control-Arrow-ArrowIf.html
--- a/doc/hdoc/Control-Arrow-ArrowIf.html
+++ b/doc/hdoc/Control-Arrow-ArrowIf.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowIf.hs"
 >Source code</A
diff --git a/doc/hdoc/Control-Arrow-ArrowList.html b/doc/hdoc/Control-Arrow-ArrowList.html
--- a/doc/hdoc/Control-Arrow-ArrowList.html
+++ b/doc/hdoc/Control-Arrow-ArrowList.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowList.hs"
 >Source code</A
@@ -202,6 +202,12 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AunlistA"
+>unlistA</A
+> :: a [b] b</TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Athis"
 >this</A
 > :: a b b</TD
@@ -262,6 +268,12 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AmergeA"
+>mergeA</A
+> :: (a (a1, b1) a1 -&gt; a (a1, b1) b1 -&gt; a (a1, b1) c) -&gt; a (a1, b1) c</TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Aperform"
 >perform</A
 > :: a b c -&gt; a b b</TD
@@ -590,6 +602,36 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3AunlistA"
+></A
+><B
+>unlistA</B
+> :: a [b] b</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>the inverse of <TT
+><A HREF="Control-Arrow-ArrowList.html#v%3AlistA"
+>listA</A
+></TT
+>
+</P
+><PRE
+> listA af &gt;&gt;&gt; unlistA = af </PRE
+><P
+>unlistA is defined as <TT
+> arrL id </TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Athis"
 ></A
 ><B
@@ -1034,6 +1076,57 @@
 >, <TT
 ><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"
 >$&lt;</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmergeA"
+></A
+><B
+>mergeA</B
+> :: (a (a1, b1) a1 -&gt; a (a1, b1) b1 -&gt; a (a1, b1) c) -&gt; a (a1, b1) c</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>merge the result pairs of an arrow with type <TT
+>a a1 (b1, b2)</TT
+>
+ by combining the tuple components with the <TT
+>op</TT
+> arrow
+</P
+><P
+>examples with simple list arrows working on strings and XmlTrees
+</P
+><PRE
+>     a1 :: a String (XmlTree, XmlTree)
+     a1 = selem &quot;foo&quot; [this &gt;&gt;&gt; mkText]
+ 	  &amp;&amp;&amp;
+ 	  selem &quot;bar&quot; [arr (++&quot;0&quot;) &gt;&gt;&gt; mkText]
+ 
+     runLA (a1 &gt;&gt;&gt; mergeA (&lt;+&gt;) &gt;&gt;&gt; xshow this) &quot;42&quot; == [&quot;&lt;foo&gt;42&lt;/foo&gt;&quot;,&quot;&lt;bar&gt;420&lt;/bar&gt;&quot;]
+     runLA (a1 &gt;&gt;&gt; mergeA (+=)  &gt;&gt;&gt; xshow this) &quot;42&quot; == [&quot;&lt;foo&gt;42&lt;bar&gt;420&lt;/bar&gt;&lt;/foo&gt;&quot;]
+</PRE
+><P
+>see also: <TT
+><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"
+>applyA</A
+></TT
+>, <TT
+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"
+>$&lt;</A
+></TT
+> and += in class <TT
+><A HREF="Text-XML-HXT-Arrow.html#t%3AArrowXml"
+>ArrowXml</A
 ></TT
 >
 </P
diff --git a/doc/hdoc/Control-Arrow-ArrowState.html b/doc/hdoc/Control-Arrow-ArrowState.html
--- a/doc/hdoc/Control-Arrow-ArrowState.html
+++ b/doc/hdoc/Control-Arrow-ArrowState.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowState.hs"
 >Source code</A
diff --git a/doc/hdoc/Control-Arrow-ArrowStrict.html b/doc/hdoc/Control-Arrow-ArrowStrict.html
--- a/doc/hdoc/Control-Arrow-ArrowStrict.html
+++ b/doc/hdoc/Control-Arrow-ArrowStrict.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowStrict.hs"
 >Source code</A
diff --git a/doc/hdoc/Control-Arrow-ArrowTree.html b/doc/hdoc/Control-Arrow-ArrowTree.html
--- a/doc/hdoc/Control-Arrow-ArrowTree.html
+++ b/doc/hdoc/Control-Arrow-ArrowTree.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowTree.hs"
 >Source code</A
diff --git a/doc/hdoc/Control-Arrow-IOListArrow.html b/doc/hdoc/Control-Arrow-IOListArrow.html
--- a/doc/hdoc/Control-Arrow-IOListArrow.html
+++ b/doc/hdoc/Control-Arrow-IOListArrow.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/IOListArrow.hs"
 >Source code</A
diff --git a/doc/hdoc/Control-Arrow-IOStateListArrow.html b/doc/hdoc/Control-Arrow-IOStateListArrow.html
--- a/doc/hdoc/Control-Arrow-IOStateListArrow.html
+++ b/doc/hdoc/Control-Arrow-IOStateListArrow.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/IOStateListArrow.hs"
 >Source code</A
diff --git a/doc/hdoc/Control-Arrow-ListArrow.html b/doc/hdoc/Control-Arrow-ListArrow.html
--- a/doc/hdoc/Control-Arrow-ListArrow.html
+++ b/doc/hdoc/Control-Arrow-ListArrow.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ListArrow.hs"
 >Source code</A
diff --git a/doc/hdoc/Control-Arrow-ListArrows.html b/doc/hdoc/Control-Arrow-ListArrows.html
--- a/doc/hdoc/Control-Arrow-ListArrows.html
+++ b/doc/hdoc/Control-Arrow-ListArrows.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ListArrows.hs"
 >Source code</A
diff --git a/doc/hdoc/Control-Arrow-StateListArrow.html b/doc/hdoc/Control-Arrow-StateListArrow.html
--- a/doc/hdoc/Control-Arrow-StateListArrow.html
+++ b/doc/hdoc/Control-Arrow-StateListArrow.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/StateListArrow.hs"
 >Source code</A
diff --git a/doc/hdoc/Control-Monad-MonadStateIO.html b/doc/hdoc/Control-Monad-MonadStateIO.html
--- a/doc/hdoc/Control-Monad-MonadStateIO.html
+++ b/doc/hdoc/Control-Monad-MonadStateIO.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Monad/MonadStateIO.hs"
 >Source code</A
diff --git a/doc/hdoc/Control-Strategies-DeepSeq.html b/doc/hdoc/Control-Strategies-DeepSeq.html
--- a/doc/hdoc/Control-Strategies-DeepSeq.html
+++ b/doc/hdoc/Control-Strategies-DeepSeq.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Strategies/DeepSeq.hs"
 >Source code</A
@@ -212,7 +212,7 @@
 ><TD CLASS="decl"
 ><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
 >DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
diff --git a/doc/hdoc/Data-AssocList.html b/doc/hdoc/Data-AssocList.html
--- a/doc/hdoc/Data-AssocList.html
+++ b/doc/hdoc/Data-AssocList.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/AssocList.hs"
 >Source code</A
diff --git a/doc/hdoc/Data-Char-UTF8.html b/doc/hdoc/Data-Char-UTF8.html
--- a/doc/hdoc/Data-Char-UTF8.html
+++ b/doc/hdoc/Data-Char-UTF8.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Char/UTF8.hs"
 >Source code</A
diff --git a/doc/hdoc/Data-NavTree.html b/doc/hdoc/Data-NavTree.html
--- a/doc/hdoc/Data-NavTree.html
+++ b/doc/hdoc/Data-NavTree.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/NavTree.hs"
 >Source code</A
diff --git a/doc/hdoc/Data-Tree-Class.html b/doc/hdoc/Data-Tree-Class.html
--- a/doc/hdoc/Data-Tree-Class.html
+++ b/doc/hdoc/Data-Tree-Class.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/Class.hs"
 >Source code</A
diff --git a/doc/hdoc/Data-Tree-NTree-Filter.html b/doc/hdoc/Data-Tree-NTree-Filter.html
--- a/doc/hdoc/Data-Tree-NTree-Filter.html
+++ b/doc/hdoc/Data-Tree-NTree-Filter.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/Filter.hs"
 >Source code</A
diff --git a/doc/hdoc/Data-Tree-NTree-TypeDefs.html b/doc/hdoc/Data-Tree-NTree-TypeDefs.html
--- a/doc/hdoc/Data-Tree-NTree-TypeDefs.html
+++ b/doc/hdoc/Data-Tree-NTree-TypeDefs.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/TypeDefs.hs"
 >Source code</A
diff --git a/doc/hdoc/System-PipeOpen.html b/doc/hdoc/System-PipeOpen.html
--- a/doc/hdoc/System-PipeOpen.html
+++ b/doc/hdoc/System-PipeOpen.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./System/PipeOpen.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-DOMInterface.html b/doc/hdoc/Text-XML-HXT-Arrow-DOMInterface.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-DOMInterface.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-DOMInterface.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DOMInterface.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-DTDProcessing.html b/doc/hdoc/Text-XML-HXT-Arrow-DTDProcessing.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-DTDProcessing.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-DTDProcessing.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DTDProcessing.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-DocumentInput.html b/doc/hdoc/Text-XML-HXT-Arrow-DocumentInput.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-DocumentInput.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-DocumentInput.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DocumentInput.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-DocumentOutput.html b/doc/hdoc/Text-XML-HXT-Arrow-DocumentOutput.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-DocumentOutput.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-DocumentOutput.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DocumentOutput.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-Edit.html b/doc/hdoc/Text-XML-HXT-Arrow-Edit.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-Edit.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-Edit.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Edit.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html b/doc/hdoc/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-Namespace.html b/doc/hdoc/Text-XML-HXT-Arrow-Namespace.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-Namespace.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-Namespace.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Namespace.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-ParserInterface.html b/doc/hdoc/Text-XML-HXT-Arrow-ParserInterface.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-ParserInterface.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-ParserInterface.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ParserInterface.hs"
 >Source code</A
@@ -285,6 +285,20 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AparseHtmlTagSoup"
+>parseHtmlTagSoup</A
+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
+>ArrowList</A
+> a =&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3AvalidateDoc"
 >validateDoc</A
 > :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
@@ -593,6 +607,22 @@
 > :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
 >ArrowList</A
 > a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AparseHtmlTagSoup"
+></A
+><B
+>parseHtmlTagSoup</B
+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
+>ArrowList</A
+> a =&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
 ></TR
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-Pickle-DTD.html b/doc/hdoc/Text-XML-HXT-Arrow-Pickle-DTD.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-Pickle-DTD.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-Pickle-DTD.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle/DTD.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-Pickle-Schema.html b/doc/hdoc/Text-XML-HXT-Arrow-Pickle-Schema.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-Pickle-Schema.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-Pickle-Schema.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle/Schema.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-Pickle-Xml.html b/doc/hdoc/Text-XML-HXT-Arrow-Pickle-Xml.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-Pickle-Xml.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-Pickle-Xml.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle/Xml.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-Pickle.html b/doc/hdoc/Text-XML-HXT-Arrow-Pickle.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-Pickle.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-Pickle.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-ProcessDocument.html b/doc/hdoc/Text-XML-HXT-Arrow-ProcessDocument.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-ProcessDocument.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-ProcessDocument.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ProcessDocument.hs"
 >Source code</A
@@ -128,7 +128,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AparseHtmlDocument"
 >parseHtmlDocument</A
-> :: Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
+> :: Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -249,7 +249,7 @@
 ></A
 ><B
 >parseHtmlDocument</B
-> :: Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
+> :: Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-ReadDocument.html b/doc/hdoc/Text-XML-HXT-Arrow-ReadDocument.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-ReadDocument.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-ReadDocument.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ReadDocument.hs"
 >Source code</A
@@ -245,6 +245,31 @@
 </LI
 ><LI
 > <TT
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_tagsoup"
+>a_tagsoup</A
+></TT
+> : use light weight and lasy parser based on tagsoup lib
+</LI
+><LI
+> <TT
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_by_mimetype"
+>a_parse_by_mimetype</A
+></TT
+> : select the parser by the mime type of the document
+                          (pulled out of the HTTP header). When the mime type is set to &quot;text/html&quot;
+			  the HTML parser (parsec or tagsoup) is taken, when it's set to
+			  &quot;text/xml&quot; or &quot;text/xhtml&quot; the XML parser (parsec or tagsoup) is taken.
+			  If the mime type is something else no further processing is performed,
+			  the contents is given back to the application in form of a single text node.
+			  If the default document encoding (<TT
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"
+>a_encoding</A
+></TT
+>) is set to isoLatin1, this even enables processing
+			  of arbitray binary data.
+</LI
+><LI
+> <TT
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"
 >a_validate</A
 ></TT
@@ -394,6 +419,7 @@
 ><PRE
 > readDocument [ (a_parse_html, &quot;1&quot;)
               , (a_encoding, isoLatin1)
+              , (a_tagsoup,    &quot;1&quot;)
               ] &quot;&quot;
 </PRE
 ><P
@@ -401,7 +427,8 @@
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"
 >isoLatin1</A
 ></TT
->
+>,
+parsing is done with tagsoup parser
 </P
 ><PRE
 > readDocument [ (a_parse_html,     &quot;1&quot;)
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-WriteDocument.html b/doc/hdoc/Text-XML-HXT-Arrow-WriteDocument.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-WriteDocument.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-WriteDocument.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/WriteDocument.hs"
 >Source code</A
@@ -135,6 +135,24 @@
 >XmlTree</A
 > String</TD
 ></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprepareContents"
+>prepareContents</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
+>IOStateArrow</A
+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -339,6 +357,31 @@
 >writeDocument</A
 ></TT
 >.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AprepareContents"
+></A
+><B
+>prepareContents</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
+>IOStateArrow</A
+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>indent and format output
 </TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-XPath.html b/doc/hdoc/Text-XML-HXT-Arrow-XPath.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-Arrow-XPath.html
@@ -0,0 +1,745 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Text.XML.HXT.Arrow.XPath</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>Haskell Xml Toolbox 7.5: The complete API</TD
+><TD CLASS="topbut"
+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XPath.hs"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Text.XML.HXT.Arrow.XPath</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Arrows for working with XPath and XmlNodeSets.
+</P
+><P
+>Most of the XPath arrows come in two versions,
+   one without dealing with namespaces, element and attribute names
+   in XPath expressions are taken as they ar ignoring any prefix:localname structure.
+</P
+><P
+>The second variant uses a namespace environment for associating the right
+   namespace for the appropriate prefix. an entry for the empty prefix
+   defines the default namespace for the expression.
+</P
+><P
+>The second variant should be used, when in the application namespaces
+   are significant, that means when namespace propagation is done for
+   the documents to be processed.
+</P
+><P
+>NodeSets are sets of &quot;pointer&quot; into an XML tree to reference
+   subnodes. These nodesets can be computed by XPath expressions or
+   normal arrows. The nodesets can then be used later for selecting
+   or modifying subtrees of this tree in an efficient way.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Synopsis</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTreesInDoc"
+>getXPathTreesInDoc</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTreesInDocWithNsEnv"
+>getXPathTreesInDocWithNsEnv</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTrees"
+>getXPathTrees</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTreesWithNsEnv"
+>getXPathTreesWithNsEnv</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetElemNodeSet"
+>getElemNodeSet</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetElemAndAttrNodeSet"
+>getElemAndAttrNodeSet</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathNodeSet"
+>getXPathNodeSet</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetFromNodeSet"
+>getFromNodeSet</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessXPathTrees"
+>processXPathTrees</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessXPathTreesWithNsEnv"
+>processXPathTreesWithNsEnv</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessFromNodeSet"
+>processFromNodeSet</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTreesInDoc"
+></A
+><B
+>getXPathTreesInDoc</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Select parts of a whole XML document with root node by a XPath expression.
+</P
+><P
+>The main filter for selecting parts of a document via XPath.
+</P
+><P
+>The string argument must be a XPath expression with an absolute location path,
+ the argument tree must be a complete document tree.
+</P
+><P
+>Before evaluating the xpath query, the document is canonicalized
+ with <TT
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeForXPath"
+>canonicalizeForXPath</A
+></TT
+>
+</P
+><P
+>Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
+ XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
+ are convertet to text nodes.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTreesInDocWithNsEnv"
+></A
+><B
+>getXPathTreesInDocWithNsEnv</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Same as <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDoc"
+>getXPathTreesInDoc</A
+></TT
+> but with namespace environment for the XPath names
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTrees"
+></A
+><B
+>getXPathTrees</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Select parts of an arbitrary XML tree by a XPath expression.
+</P
+><P
+>The main filter for selecting parts of an arbitrary XML tree via XPath.
+ The string argument must be a XPath expression with an absolute location path,
+ There are no restrictions on the argument tree.
+</P
+><P
+>No canonicalization is performed before evaluating the query
+</P
+><P
+>Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
+ XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
+ are convertet to text nodes.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTreesWithNsEnv"
+></A
+><B
+>getXPathTreesWithNsEnv</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Same as <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTrees"
+>getXPathTrees</A
+></TT
+> but with namespace environment for the XPath names
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetElemNodeSet"
+></A
+><B
+>getElemNodeSet</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>compute a node set from a tree, containing all nodes selected by the predicate arrow
+</P
+><P
+>computation of the set of element nodes with name &quot;a&quot; is done with
+</P
+><PRE
+> getElemNodeSet (hasName &quot;a&quot;)
+</PRE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetElemAndAttrNodeSet"
+></A
+><B
+>getElemAndAttrNodeSet</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>compute a node set from a tree, containing all nodes including attribute nodes
+ elected by the predicate arrow
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathNodeSet"
+></A
+><B
+>getXPathNodeSet</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Select a set of nodes via an XPath expression from an arbitray XML tree
+</P
+><P
+>The result is a set of &quot;pointers&quot; to nodes. This set can be used to
+ access or modify the values of the subnodes in subsequent calls to <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetFromNodeSet"
+>getFromNodeSet</A
+></TT
+> or <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessFromNodeSet"
+>processFromNodeSet</A
+></TT
+>.
+</P
+><P
+>This function enables for parsing an XPath expressions and traversing the tree for node selection once
+ and reuse this result possibly many times for later selection and modification operations.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetFromNodeSet"
+></A
+><B
+>getFromNodeSet</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>select all subtrees specified by a previously computed node set
+</P
+><P
+>the following law holds:
+</P
+><PRE
+> getFromNodeSet $&lt; getElemNodeSet f == multi f
+</PRE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AprocessXPathTrees"
+></A
+><B
+>processXPathTrees</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>process all subtrees selected by an XPath expression
+</P
+><P
+>the following law holds:
+</P
+><PRE
+> processXPathTrees p xpathExpr == processFromNodeSet p $&lt; getXPathNodeSet xpathExpr
+</PRE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AprocessXPathTreesWithNsEnv"
+></A
+><B
+>processXPathTreesWithNsEnv</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Same as <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessXPathTrees"
+>processXPathTrees</A
+></TT
+> but with namespace environment for the XPath names
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AprocessFromNodeSet"
+></A
+><B
+>processFromNodeSet</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>process all subtrees specified by a previously computed node set in bottom up manner
+</P
+><P
+>the follwoing law holds:
+</P
+><PRE
+> processFromNodeSet g $&lt; getElemNodeSet f == processBottomUp (g `when` f)
+</PRE
+><P
+>when attributes are contained in the node set (see <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetElemAndAttrNodeSet"
+>getElemAndAttrNodeSet</A
+></TT
+>), these are processed
+ after the children and before the node itself
+</P
+><P
+>the advantage of processFromNodeSet is the separation of the selection of set of nodes to be processed (e.g. modified)
+ from the real proccessing. The selection sometimes can be done once, the processing possibly many times.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-XPathSimple.html b/doc/hdoc/Text-XML-HXT-Arrow-XPathSimple.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-Arrow-XPathSimple.html
@@ -0,0 +1,2001 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Text.XML.HXT.Arrow.XPathSimple</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>Haskell Xml Toolbox 7.5: The complete API</TD
+><TD CLASS="topbut"
+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XPathSimple.hs"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Text.XML.HXT.Arrow.XPathSimple</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>XPath selection for simple XPath expressions with list arrows
+   instead of navigatable trees.
+</P
+><P
+>It is recomended, that this module is imported qualified,
+   e.g like <TT
+>Text.XML.HXT.Arrow.XPathSimple as XS</TT
+>.
+</P
+><P
+>The arrows defined in this module have the same
+   functionality as the functions in <TT
+><A HREF="Text-XML-HXT-Arrow.html#t%3AXPath"
+>XPath</A
+></TT
+>.
+</P
+><P
+>The computation modell in XPath is a navigatable tree,
+   that means a tree wicht can be traveresed in arbitrary directions,
+   not only from the root to the leafs. Sometimes this modell
+   leads to inefficent XPath processing for simple queries, which
+   only need a top down tree traversal.
+</P
+><P
+>When evaluating an XPath expression with these functions, first an attempt is made
+   to map the XPath expression to a pure arrow. If this is possible
+   due to the siplicity of the XPath expressions, the result is computed
+   directly, else the query is processed by the corresponding
+   function in <TT
+><A HREF="Text-XML-HXT-Arrow.html#t%3AXPath"
+>XPath</A
+></TT
+>.
+</P
+><P
+>The simple evaluation is possible, when in the XPath expression
+   only the top down axis (self, child, descendant, descendant or self are used,
+   when no builtin functions concerning the position of a node are used,
+   and no comparison of nodes e.g. in node set union is required.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Synopsis</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTreesInDoc"
+>getXPathTreesInDoc</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTreesInDocWithNsEnv"
+>getXPathTreesInDocWithNsEnv</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTrees"
+>getXPathTrees</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTreesWithNsEnv"
+>getXPathTreesWithNsEnv</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtryGetXPath"
+>tryGetXPath</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTreesWithNsEnvSimple"
+>getXPathTreesWithNsEnvSimple</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXP"
+>getXP</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A HREF="#t%3AXPArrow"
+>XPArrow</A
+> b c = Maybe (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> b c)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Amk"
+>mk</A
+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> b c -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b c</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aunwrap"
+>unwrap</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%3E%3E%3E%3E"
+>(&gt;&gt;&gt;&gt;)</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%26%26%26%26"
+>(&amp;&amp;&amp;&amp;)</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b (b, b)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%3C%2B%3E%3E"
+>(&lt;+&gt;&gt;)</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aguards%27"
+>guards'</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Athis%27"
+>this'</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Athis%27%27"
+>this''</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtoThis"
+>toThis</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetChildren%27"
+>getChildren'</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetAttrl%27"
+>getAttrl'</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Amulti%27"
+>multi'</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Adeep%27"
+>deep'</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AxIndex"
+>xIndex</A
+> :: Int -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> [b] b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AxString"
+>xString</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AxNumber%27"
+>xNumber'</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
+>XPNumber</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AdeadEndStreet"
+>deadEndStreet</A
+> :: Monad m =&gt; m a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompXPath"
+>compXPath</A
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompXP"
+>compXP</A
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompFP"
+>compFP</A
+> :: MonadPlus m =&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+>] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompLP"
+>compLP</A
+> :: MonadPlus m =&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"
+>XStep</A
+>] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompXS"
+>compXS</A
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"
+>XStep</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompNTE"
+>compNTE</A
+> :: Monad m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
+>NodeTest</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompNTA"
+>compNTA</A
+> :: Monad m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
+>NodeTest</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompNameT"
+>compNameT</A
+> :: Monad m =&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompNT"
+>compNT</A
+> :: Monad m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
+>NodeTest</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompPred"
+>compPred</A
+> :: MonadPlus m =&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+>] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompPred1"
+>compPred1</A
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompRelPathExpr"
+>compRelPathExpr</A
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompStringExpr"
+>compStringExpr</A
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompNumberExpr"
+>compNumberExpr</A
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
+>XPNumber</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompIntExpr"
+>compIntExpr</A
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m Int</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompBoolExpr"
+>compBoolExpr</A
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompGenExpr"
+>compGenExpr</A
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompString"
+>compString</A
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
+>Op</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompNumber"
+>compNumber</A
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
+>Op</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompBool"
+>compBool</A
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
+>Op</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompPath"
+>compPath</A
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
+>Op</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtoNumber"
+>toNumber</A
+> :: String -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
+>XPNumber</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequalNodeSet"
+>equalNodeSet</A
+> :: Eq a =&gt; [a] -&gt; [a] -&gt; [a]</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTreesInDoc"
+></A
+><B
+>getXPathTreesInDoc</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Same Functionality as <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDoc"
+>getXPathTreesInDoc</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTreesInDocWithNsEnv"
+></A
+><B
+>getXPathTreesInDocWithNsEnv</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Same Functionality as <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDocWithNsEnv"
+>getXPathTreesInDocWithNsEnv</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTrees"
+></A
+><B
+>getXPathTrees</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Same Functionality as <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTrees"
+>getXPathTrees</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTreesWithNsEnv"
+></A
+><B
+>getXPathTreesWithNsEnv</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Same Functionality as <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesWithNsEnv"
+>getXPathTreesWithNsEnv</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AtryGetXPath"
+></A
+><B
+>tryGetXPath</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTreesWithNsEnvSimple"
+></A
+><B
+>getXPathTreesWithNsEnvSimple</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>The xpath interpreter for simple xpath expressions.
+</P
+><P
+>In case of a too complicated or illegal xpath expression an error
+ node is returned, else the list of selected XML trees
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXP"
+></A
+><B
+>getXP</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3AXPArrow"
+></A
+><B
+>XPArrow</B
+> b c = Maybe (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> b c)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Amk"
+></A
+><B
+>mk</B
+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> b c -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b c</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aunwrap"
+></A
+><B
+>unwrap</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3A%3E%3E%3E%3E"
+></A
+><B
+>(&gt;&gt;&gt;&gt;)</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3A%26%26%26%26"
+></A
+><B
+>(&amp;&amp;&amp;&amp;)</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b (b, b)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3A%3C%2B%3E%3E"
+></A
+><B
+>(&lt;+&gt;&gt;)</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aguards%27"
+></A
+><B
+>guards'</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Athis%27"
+></A
+><B
+>this'</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Athis%27%27"
+></A
+><B
+>this''</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AtoThis"
+></A
+><B
+>toThis</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetChildren%27"
+></A
+><B
+>getChildren'</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetAttrl%27"
+></A
+><B
+>getAttrl'</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Amulti%27"
+></A
+><B
+>multi'</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Adeep%27"
+></A
+><B
+>deep'</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AxIndex"
+></A
+><B
+>xIndex</B
+> :: Int -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> [b] b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AxString"
+></A
+><B
+>xString</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AxNumber%27"
+></A
+><B
+>xNumber'</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
+>XPNumber</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AdeadEndStreet"
+></A
+><B
+>deadEndStreet</B
+> :: Monad m =&gt; m a</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompXPath"
+></A
+><B
+>compXPath</B
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompXP"
+></A
+><B
+>compXP</B
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompFP"
+></A
+><B
+>compFP</B
+> :: MonadPlus m =&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+>] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompLP"
+></A
+><B
+>compLP</B
+> :: MonadPlus m =&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"
+>XStep</A
+>] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompXS"
+></A
+><B
+>compXS</B
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXStep"
+>XStep</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompNTE"
+></A
+><B
+>compNTE</B
+> :: Monad m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
+>NodeTest</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompNTA"
+></A
+><B
+>compNTA</B
+> :: Monad m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
+>NodeTest</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompNameT"
+></A
+><B
+>compNameT</B
+> :: Monad m =&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompNT"
+></A
+><B
+>compNT</B
+> :: Monad m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANodeTest"
+>NodeTest</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompPred"
+></A
+><B
+>compPred</B
+> :: MonadPlus m =&gt; [<A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+>] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompPred1"
+></A
+><B
+>compPred1</B
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompRelPathExpr"
+></A
+><B
+>compRelPathExpr</B
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompStringExpr"
+></A
+><B
+>compStringExpr</B
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompNumberExpr"
+></A
+><B
+>compNumberExpr</B
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
+>XPNumber</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompIntExpr"
+></A
+><B
+>compIntExpr</B
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m Int</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompBoolExpr"
+></A
+><B
+>compBoolExpr</B
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m Bool</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompGenExpr"
+></A
+><B
+>compGenExpr</B
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompString"
+></A
+><B
+>compString</B
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
+>Op</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompNumber"
+></A
+><B
+>compNumber</B
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
+>Op</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompBool"
+></A
+><B
+>compBool</B
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
+>Op</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompPath"
+></A
+><B
+>compPath</B
+> :: MonadPlus m =&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AOp"
+>Op</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AExpr"
+>Expr</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AtoNumber"
+></A
+><B
+>toNumber</B
+> :: String -&gt; <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3AXPNumber"
+>XPNumber</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AequalNodeSet"
+></A
+><B
+>equalNodeSet</B
+> :: Eq a =&gt; [a] -&gt; [a] -&gt; [a]</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-XmlArrow.html b/doc/hdoc/Text-XML-HXT-Arrow-XmlArrow.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-XmlArrow.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-XmlArrow.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlArrow.hs"
 >Source code</A
@@ -269,7 +269,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AhasNameWith"
 >hasNameWith</A
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -281,7 +281,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AhasQName"
 >hasQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -343,7 +343,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AhasQAttr"
 >hasQAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -365,7 +365,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AhasQAttrValue"
 >hasQAttrValue</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -425,7 +425,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkElement"
 >mkElement</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -439,7 +439,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkAttr"
 >mkAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -451,7 +451,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkPi"
 >mkPi</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -463,7 +463,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Amkqelem"
 >mkqelem</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -529,7 +529,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Aqattr"
 >qattr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -615,7 +615,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Asqattr"
 >sqattr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -675,7 +675,7 @@
 >getPiName</A
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -695,7 +695,7 @@
 >getElemName</A
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -735,7 +735,7 @@
 >getAttrName</A
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -761,7 +761,7 @@
 >getQName</A
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -833,7 +833,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetQAttrValue"
 >getQAttrValue</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -843,7 +843,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetQAttrValue0"
 >getQAttrValue0</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -873,9 +873,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AchangeQName"
 >changeQName</A
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -887,9 +887,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AchangeElemName"
 >changeElemName</A
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -901,9 +901,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AchangeAttrName"
 >changeAttrName</A
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -915,9 +915,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AchangePiName"
 >changePiName</A
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -959,7 +959,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AsetQName"
 >setQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -971,7 +971,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AsetElemName"
 >setElemName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -983,7 +983,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AsetAttrName"
 >setAttrName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -995,7 +995,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AsetPiName"
 >setPiName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -1055,7 +1055,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AremoveQAttr"
 >removeQAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -1677,7 +1677,7 @@
 ></A
 ><B
 >hasNameWith</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -1700,7 +1700,7 @@
 ></A
 ><B
 >hasQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -1833,7 +1833,7 @@
 ></A
 ><B
 >hasQAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -1877,7 +1877,7 @@
 ></A
 ><B
 >hasQAttrValue</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -2014,7 +2014,7 @@
 ></A
 ><B
 >mkElement</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -2041,7 +2041,7 @@
 ></A
 ><B
 >mkAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -2065,7 +2065,7 @@
 ></A
 ><B
 >mkPi</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -2089,7 +2089,7 @@
 ></A
 ><B
 >mkqelem</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -2275,7 +2275,7 @@
 ></A
 ><B
 >qattr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -2483,7 +2483,7 @@
 ></A
 ><B
 >sqattr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -2638,7 +2638,7 @@
 >getPiName</B
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -2680,7 +2680,7 @@
 >getElemName</B
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -2764,7 +2764,7 @@
 >getAttrName</B
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -2823,7 +2823,7 @@
 >getQName</B
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -2999,7 +2999,7 @@
 ></A
 ><B
 >getQAttrValue</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3025,7 +3025,7 @@
 ></A
 ><B
 >getQAttrValue0</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3092,9 +3092,9 @@
 ></A
 ><B
 >changeQName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3117,9 +3117,9 @@
 ></A
 ><B
 >changeElemName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3142,9 +3142,9 @@
 ></A
 ><B
 >changeAttrName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3167,9 +3167,9 @@
 ></A
 ><B
 >changePiName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3244,7 +3244,7 @@
 ></A
 ><B
 >setQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3267,7 +3267,7 @@
 ></A
 ><B
 >setElemName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3290,7 +3290,7 @@
 ></A
 ><B
 >setAttrName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3313,7 +3313,7 @@
 ></A
 ><B
 >setPiName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3428,7 +3428,7 @@
 ></A
 ><B
 >removeQAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-XmlIOStateArrow.html b/doc/hdoc/Text-XML-HXT-Arrow-XmlIOStateArrow.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-XmlIOStateArrow.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-XmlIOStateArrow.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlIOStateArrow.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-XmlNode.html b/doc/hdoc/Text-XML-HXT-Arrow-XmlNode.html
--- a/doc/hdoc/Text-XML-HXT-Arrow-XmlNode.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow-XmlNode.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlNode.hs"
 >Source code</A
@@ -330,7 +330,7 @@
 ></A
 ><B
 >mkPi</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -418,7 +418,7 @@
 ></A
 ><B
 >getPiName</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -446,7 +446,7 @@
 ></A
 ><B
 >getElemName</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -502,7 +502,7 @@
 ></A
 ><B
 >getAttrName</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -540,7 +540,7 @@
 ></A
 ><B
 >getName</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -650,9 +650,9 @@
 ></A
 ><B
 >changeName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a -&gt; a</TD
 ></TR
@@ -666,9 +666,9 @@
 ></A
 ><B
 >changeElemName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a -&gt; a</TD
 ></TR
@@ -698,9 +698,9 @@
 ></A
 ><B
 >changeAttrName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a -&gt; a</TD
 ></TR
@@ -714,9 +714,9 @@
 ></A
 ><B
 >changePiName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a -&gt; a</TD
 ></TR
@@ -770,7 +770,7 @@
 ></A
 ><B
 >setName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a -&gt; a</TD
 ></TR
@@ -784,7 +784,7 @@
 ></A
 ><B
 >setElemName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a -&gt; a</TD
 ></TR
@@ -812,7 +812,7 @@
 ></A
 ><B
 >setAttrName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a -&gt; a</TD
 ></TR
@@ -826,7 +826,7 @@
 ></A
 ><B
 >setPiName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a -&gt; a</TD
 ></TR
@@ -895,7 +895,7 @@
 ></A
 ><B
 >mkElementNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -913,7 +913,7 @@
 ></A
 ><B
 >mkAttrNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
 >XNode</A
@@ -947,7 +947,7 @@
 ></A
 ><B
 >mkElement</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -985,7 +985,7 @@
 ></A
 ><B
 >mkAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
diff --git a/doc/hdoc/Text-XML-HXT-Arrow-XmlNodeSet.html b/doc/hdoc/Text-XML-HXT-Arrow-XmlNodeSet.html
deleted file mode 100644
--- a/doc/hdoc/Text-XML-HXT-Arrow-XmlNodeSet.html
+++ /dev/null
@@ -1,750 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.XmlNodeSet</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlNodeSet.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.XmlNodeSet</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: XmlNodeSet.hs,v 1.5 2006<EM
->11</EM
->12 14:52:59 hxml Exp $
-</P
-><P
->Arrows for working with XPath and XmlNodeSets.
-</P
-><P
->Most of the XPath arrows come in two versions,
-   one without dealing with namespaces, element and attribute names
-   in XPath expressions are taken as they ar ignoring any prefix:localname structure.
-</P
-><P
->The second variant uses a namespace environment for associating the right
-   namespace for the appropriate prefix. an entry for the empty prefix
-   defines the default namespace for the expression.
-</P
-><P
->The second variant should be used, when in the application namespaces
-   are significant, that means when namespace propagation is done for
-   the documents to be processed.
-</P
-><P
->NodeSets are sets of &quot;pointer&quot; into an XML tree to reference
-   subnodes. These nodesets can be computed by XPath expressions or
-   normal arrows. The nodesets can then be used later for selecting
-   or modifying subtrees of this tree in an efficient way.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Synopsis</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTreesInDoc"
->getXPathTreesInDoc</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTreesInDocWithNsEnv"
->getXPathTreesInDocWithNsEnv</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTrees"
->getXPathTrees</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTreesWithNsEnv"
->getXPathTreesWithNsEnv</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetElemNodeSet"
->getElemNodeSet</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetElemAndAttrNodeSet"
->getElemAndAttrNodeSet</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathNodeSet"
->getXPathNodeSet</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetFromNodeSet"
->getFromNodeSet</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessXPathTrees"
->processXPathTrees</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessXPathTreesWithNsEnv"
->processXPathTreesWithNsEnv</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessFromNodeSet"
->processFromNodeSet</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTreesInDoc"
-></A
-><B
->getXPathTreesInDoc</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Select parts of a whole XML document with root node by a XPath expression.
-</P
-><P
->The main filter for selecting parts of a document via XPath.
-</P
-><P
->The string argument must be a XPath expression with an absolute location path,
- the argument tree must be a complete document tree.
-</P
-><P
->Before evaluating the xpath query, the document is canonicalized
- with <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeForXPath"
->canonicalizeForXPath</A
-></TT
->
-</P
-><P
->Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
- are convertet to text nodes.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTreesInDocWithNsEnv"
-></A
-><B
->getXPathTreesInDocWithNsEnv</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Same as <TT
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesInDoc"
->getXPathTreesInDoc</A
-></TT
-> but with namespace environment for the XPath names
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTrees"
-></A
-><B
->getXPathTrees</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Select parts of an arbitrary XML tree by a XPath expression.
-</P
-><P
->The main filter for selecting parts of an arbitrary XML tree via XPath.
- The string argument must be a XPath expression with an absolute location path,
- There are no restrictions on the argument tree.
-</P
-><P
->No canonicalization is performed before evaluating the query
-</P
-><P
->Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
- are convertet to text nodes.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTreesWithNsEnv"
-></A
-><B
->getXPathTreesWithNsEnv</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Same as <TT
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTrees"
->getXPathTrees</A
-></TT
-> but with namespace environment for the XPath names
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetElemNodeSet"
-></A
-><B
->getElemNodeSet</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->compute a node set from a tree, containing all nodes selected by the predicate arrow
-</P
-><P
->computation of the set of element nodes with name &quot;a&quot; is done with
-</P
-><PRE
-> getElemNodeSet (hasName &quot;a&quot;)
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetElemAndAttrNodeSet"
-></A
-><B
->getElemAndAttrNodeSet</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->compute a node set from a tree, containing all nodes including attribute nodes
- elected by the predicate arrow
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathNodeSet"
-></A
-><B
->getXPathNodeSet</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Select a set of nodes via an XPath expression from an arbitray XML tree
-</P
-><P
->The result is a set of &quot;pointers&quot; to nodes. This set can be used to
- access or modify the values of the subnodes in subsequent calls to <TT
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetFromNodeSet"
->getFromNodeSet</A
-></TT
-> or <TT
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessFromNodeSet"
->processFromNodeSet</A
-></TT
->.
-</P
-><P
->This function enables for parsing an XPath expressions and traversing the tree for node selection once
- and reuse this result possibly many times for later selection and modification operations.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetFromNodeSet"
-></A
-><B
->getFromNodeSet</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->select all subtrees specified by a previously computed node set
-</P
-><P
->the following law holds:
-</P
-><PRE
-> getFromNodeSet $&lt; getElemNodeSet f == multi f
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessXPathTrees"
-></A
-><B
->processXPathTrees</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->process all subtrees selected by an XPath expression
-</P
-><P
->the following law holds:
-</P
-><PRE
-> processXPathTrees p xpathExpr == processFromNodeSet p $&lt; getXPathNodeSet xpathExpr
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessXPathTreesWithNsEnv"
-></A
-><B
->processXPathTreesWithNsEnv</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Same as <TT
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessXPathTrees"
->processXPathTrees</A
-></TT
-> but with namespace environment for the XPath names
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessFromNodeSet"
-></A
-><B
->processFromNodeSet</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->process all subtrees specified by a previously computed node set in bottom up manner
-</P
-><P
->the follwoing law holds:
-</P
-><PRE
-> processFromNodeSet g $&lt; getElemNodeSet f == processBottomUp (g `when` f)
-</PRE
-><P
->when attributes are contained in the node set (see <TT
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetElemAndAttrNodeSet"
->getElemAndAttrNodeSet</A
-></TT
->), these are processed
- after the children and before the node itself
-</P
-><P
->the advantage of processFromNodeSet is the separation of the selection of set of nodes to be processed (e.g. modified)
- from the real proccessing. The selection sometimes can be done once, the processing possibly many times.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc/Text-XML-HXT-Arrow.html b/doc/hdoc/Text-XML-HXT-Arrow.html
--- a/doc/hdoc/Text-XML-HXT-Arrow.html
+++ b/doc/hdoc/Text-XML-HXT-Arrow.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow.hs"
 >Source code</A
@@ -153,8 +153,8 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+>module <A HREF="Text-XML-HXT-Arrow-XPath.html"
+>Text.XML.HXT.Arrow.XPath</A
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-DOM-EditFilters.html b/doc/hdoc/Text-XML-HXT-DOM-EditFilters.html
--- a/doc/hdoc/Text-XML-HXT-DOM-EditFilters.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-EditFilters.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/EditFilters.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-FormatXmlTree.html b/doc/hdoc/Text-XML-HXT-DOM-FormatXmlTree.html
--- a/doc/hdoc/Text-XML-HXT-DOM-FormatXmlTree.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-FormatXmlTree.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/FormatXmlTree.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-IsoLatinTables.html b/doc/hdoc/Text-XML-HXT-DOM-IsoLatinTables.html
--- a/doc/hdoc/Text-XML-HXT-DOM-IsoLatinTables.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-IsoLatinTables.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/IsoLatinTables.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-Namespace.html b/doc/hdoc/Text-XML-HXT-DOM-Namespace.html
--- a/doc/hdoc/Text-XML-HXT-DOM-Namespace.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-Namespace.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Namespace.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-NamespaceFilter.html b/doc/hdoc/Text-XML-HXT-DOM-NamespaceFilter.html
--- a/doc/hdoc/Text-XML-HXT-DOM-NamespaceFilter.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-NamespaceFilter.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespaceFilter.hs"
 >Source code</A
@@ -236,7 +236,7 @@
 ><TD CLASS="doc"
 >Type for the namespace association list, used when propagating namespaces by
  modifying the <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TT
 > values in a tree
diff --git a/doc/hdoc/Text-XML-HXT-DOM-NamespacePredicates.html b/doc/hdoc/Text-XML-HXT-DOM-NamespacePredicates.html
--- a/doc/hdoc/Text-XML-HXT-DOM-NamespacePredicates.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-NamespacePredicates.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespacePredicates.hs"
 >Source code</A
@@ -89,9 +89,9 @@
 >setNamespace</A
 > :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
 >NsEnv</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -103,7 +103,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AxmlnsQN"
 >xmlnsQN</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -135,7 +135,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisWellformedQName"
 >isWellformedQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -147,7 +147,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisWellformedNSDecl"
 >isWellformedNSDecl</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -159,7 +159,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisDeclaredNamespace"
 >isDeclaredNamespace</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -186,9 +186,9 @@
 >setNamespace</B
 > :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
 >NsEnv</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -222,7 +222,7 @@
 ></A
 ><B
 >xmlnsQN</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -271,7 +271,7 @@
 ></A
 ><B
 >isWellformedQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -292,7 +292,7 @@
 ></A
 ><B
 >isWellformedNSDecl</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -313,7 +313,7 @@
 ></A
 ><B
 >isDeclaredNamespace</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
diff --git a/doc/hdoc/Text-XML-HXT-DOM-QualifiedName.html b/doc/hdoc/Text-XML-HXT-DOM-QualifiedName.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-DOM-QualifiedName.html
@@ -0,0 +1,882 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Text.XML.HXT.DOM.QualifiedName</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>Haskell Xml Toolbox 7.5: The complete API</TD
+><TD CLASS="topbut"
+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/QualifiedName.hs"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Text.XML.HXT.DOM.QualifiedName</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+>The core data types of the HXT DOM.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Synopsis</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A HREF="#t%3AQName"
+>QName</A
+>  = <A HREF="#v%3AQN"
+>QN</A
+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="recfield"
+><A HREF="#v%3AnamePrefix"
+>namePrefix</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="recfield"
+><A HREF="#v%3AlocalPart"
+>localPart</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="recfield"
+><A HREF="#v%3AnamespaceUri"
+>namespaceUri</A
+> :: String</TD
+></TR
+></TABLE
+>}</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AqualifiedName"
+>qualifiedName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AuniversalName"
+>universalName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AuniversalUri"
+>universalUri</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AbuildUniversalName"
+>buildUniversalName</A
+> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkQName"
+>mkQName</A
+> :: String -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkName"
+>mkName</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkPrefixLocalPart"
+>mkPrefixLocalPart</A
+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkNsName"
+>mkNsName</A
+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkSNsName"
+>mkSNsName</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnullQName"
+>nullQName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequalQName"
+>equalQName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequivQName"
+>equivQName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequivUri"
+>equivUri</A
+> :: String -&gt; String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequalQNameBy"
+>equalQNameBy</A
+> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnormalizeNsUri"
+>normalizeNsUri</A
+> :: String -&gt; String</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A NAME="t%3AQName"
+></A
+><B
+>QName</B
+> </TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="ndoc"
+><P
+>Namespace support for element and attribute names.
+</P
+><P
+>A qualified name consists of a name prefix, a local name
+ and a namespace uri.
+ All modules, which are not namespace aware, use only the <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"
+>localPart</A
+></TT
+> component.
+ When dealing with namespaces, the document tree must be processed by <A HREF="propagateNamespaces.html"
+>propagateNamespaces</A
+>
+ to split names of structure &quot;prefix:localPart&quot; and label the name with the apropriate namespace uri
+</P
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+>Constructors</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AQN"
+></A
+><B
+>QN</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="body" COLSPAN="2"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AnamePrefix"
+></A
+><B
+>namePrefix</B
+> :: String</TD
+><TD CLASS="rdoc"
+>the name prefix part of a qualified name &quot;namePrefix:localPart&quot;
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AlocalPart"
+></A
+><B
+>localPart</B
+> :: String</TD
+><TD CLASS="rdoc"
+>the local part of a qualified name &quot;namePrefix:localPart&quot;
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AnamespaceUri"
+></A
+><B
+>namespaceUri</B
+> :: String</TD
+><TD CLASS="rdoc"
+>the associated namespace uri
+</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:QName')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:QName" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
+>DeepSeq</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Eq <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Ord <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Read <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Show <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Typeable <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+></TABLE
+></DIV
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AqualifiedName"
+></A
+><B
+>qualifiedName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>builds the full name &quot;prefix:localPart&quot;, if prefix is not null, else the local part is the result
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AuniversalName"
+></A
+><B
+>universalName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>builds the &quot;universal&quot; name, that is the namespace uri surrounded with &quot;{&quot; and &quot;}&quot; followed by the local part
+ (specialisation of <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"
+>buildUniversalName</A
+></TT
+>)
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AuniversalUri"
+></A
+><B
+>universalUri</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>builds an &quot;universal&quot; uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,
+ where the subject, predicate and object often are concatenated from namespace uri and local part
+ (specialisation of <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"
+>buildUniversalName</A
+></TT
+>)
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AbuildUniversalName"
+></A
+><B
+>buildUniversalName</B
+> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else
+ namespace uri and local part are combined with the combining function given by the first parameter
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkQName"
+></A
+><B
+>mkQName</B
+> :: String -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constructs a complete qualified name with <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"
+>namePrefix</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"
+>localPart</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"
+>namespaceUri</A
+></TT
+>.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkName"
+></A
+><B
+>mkName</B
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constructs a simple, namespace unaware name, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"
+>namePrefix</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"
+>namespaceUri</A
+></TT
+> are set to the empty string.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkPrefixLocalPart"
+></A
+><B
+>mkPrefixLocalPart</B
+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>constructs a simple name, with prefix and localPart but without a namespace uri.
+</P
+><P
+>see also <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
+>mkName</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"
+>mkNsName</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkSNsName"
+>mkSNsName</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkNsName"
+></A
+><B
+>mkNsName</B
+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.
+</P
+><P
+>see also <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
+>mkName</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"
+>mkPrefixLocalPart</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkSNsName"
+></A
+><B
+>mkSNsName</B
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter
+</P
+><P
+>see also <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"
+>mkNsName</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"
+>mkPrefixLocalPart</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AnullQName"
+></A
+><B
+>nullQName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Empty QName
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AequalQName"
+></A
+><B
+>equalQName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Equality of QNames: Two QNames are equal, if the local parts are equal
+ and the namespace URIs are equal.
+ The comparison works with and without namespace propagation.
+ If namespaces have been propagated, the name is split into prefix and local part
+ and the namespace uri is set. In this case the prefix is not significant for equality test.
+ If namespaces have not been propagated, the local part contains the full name, prefix
+ and namespace URI are empty. The full name (prefix and local part) is used for comparison.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AequivQName"
+></A
+><B
+>equivQName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Equivalent QNames are defined as follows: The URIs are normalized before comparison.
+ Comparison is done with <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQNameBy"
+>equalQNameBy</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivUri"
+>equivUri</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AequivUri"
+></A
+><B
+>equivUri</B
+> :: String -&gt; String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Comparison of normalized namespace URIs using <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnormalizeNsUri"
+>normalizeNsUri</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AequalQNameBy"
+></A
+><B
+>equalQNameBy</B
+> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Sometimes a weaker equality relation than <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"
+>equalQName</A
+></TT
+> is appropriate, e.g no case significance in names, ...
+ a name normalization function can be applied to the strings before comparing. Called by <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"
+>equalQName</A
+></TT
+> and
+ <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivQName"
+>equivQName</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AnormalizeNsUri"
+></A
+><B
+>normalizeNsUri</B
+> :: String -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing &quot;/&quot; is ignored
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-DOM-TypeDefs.html b/doc/hdoc/Text-XML-HXT-DOM-TypeDefs.html
--- a/doc/hdoc/Text-XML-HXT-DOM-TypeDefs.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-TypeDefs.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/TypeDefs.hs"
 >Source code</A
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.DOM.TypeDefs</FONT
 ></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
 ></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
@@ -58,15 +80,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->The core data types of HDOM.
-</P
-><P
->Version : $Id: TypeDefs.hs,v 1.13 2006<EM
->11</EM
->09 20:27:42 hxml Exp $
-</P
-></TD
+>The core data types of the HXT DOM.
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
@@ -173,7 +188,7 @@
 ><TD CLASS="decl"
 >| <A HREF="#v%3AXPi"
 >XPi</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -183,7 +198,7 @@
 ><TD CLASS="decl"
 >| <A HREF="#v%3AXTag"
 >XTag</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -203,7 +218,7 @@
 ><TD CLASS="decl"
 >| <A HREF="#v%3AXAttr"
 >XAttr</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -324,210 +339,6 @@
 ><TR
 ><TD CLASS="decl"
 ><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AQName"
->QName</A
->  = <A HREF="#v%3AQN"
->QN</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AnamePrefix"
->namePrefix</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AlocalPart"
->localPart</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AnamespaceUri"
->namespaceUri</A
-> :: String</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AqualifiedName"
->qualifiedName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AuniversalName"
->universalName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AuniversalUri"
->universalUri</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AbuildUniversalName"
->buildUniversalName</A
-> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkName"
->mkName</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkNsName"
->mkNsName</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkSNsName"
->mkSNsName</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnullQName"
->nullQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequalQName"
->equalQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequivQName"
->equivQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequivUri"
->equivUri</A
-> :: String -&gt; String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequalQNameBy"
->equalQNameBy</A
-> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeNsUri"
->normalizeNsUri</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
 >type</SPAN
 > <A HREF="#t%3ANsEnv"
 >NsEnv</A
@@ -598,7 +409,7 @@
 ><TD CLASS="recfield"
 ><A HREF="#v%3AattrNodes"
 >attrNodes</A
-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: [<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >]</TD
 ></TR
@@ -627,6 +438,16 @@
 >XmlNodeSet</A
 >)]</TD
 ></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Text-XML-HXT-DOM-QualifiedName.html"
+>Text.XML.HXT.DOM.QualifiedName</A
+></TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -784,7 +605,7 @@
 ></A
 ><B
 >XPi</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -802,7 +623,7 @@
 ></A
 ><B
 >XTag</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -832,7 +653,7 @@
 ></A
 ><B
 >XAttr</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ><TD CLASS="rdoc"
@@ -1190,520 +1011,6 @@
 ><TR
 ><TD CLASS="decl"
 ><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AQName"
-></A
-><B
->QName</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->Namespace support for element and attribute names.
-</P
-><P
->A qualified name consists of a name prefix, a local name
- and a namespace uri.
- All modules, which are not namespace aware, use only the <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AlocalPart"
->localPart</A
-></TT
-> component.
- When dealing with namespaces, the document tree must be processed by <A HREF="propagateNamespaces.html"
->propagateNamespaces</A
->
- to split names of structure &quot;prefix:localPart&quot; and label the name with the apropriate namespace uri
-</P
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AQN"
-></A
-><B
->QN</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="body" COLSPAN="2"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AnamePrefix"
-></A
-><B
->namePrefix</B
-> :: String</TD
-><TD CLASS="rdoc"
->the name prefix part of a qualified name &quot;namePrefix:localPart&quot;
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AlocalPart"
-></A
-><B
->localPart</B
-> :: String</TD
-><TD CLASS="rdoc"
->the local part of a qualified name &quot;namePrefix:localPart&quot;
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AnamespaceUri"
-></A
-><B
->namespaceUri</B
-> :: String</TD
-><TD CLASS="rdoc"
->the associated namespace uri
-</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:QName')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:QName" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AqualifiedName"
-></A
-><B
->qualifiedName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds the full name &quot;prefix:localPart&quot;, if prefix is not null, else the local part is the result
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuniversalName"
-></A
-><B
->universalName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds the &quot;universal&quot; name, that is the namespace uri surrounded with &quot;{&quot; and &quot;}&quot; followed by the local part
- (specialisation of <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"
->buildUniversalName</A
-></TT
->)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuniversalUri"
-></A
-><B
->universalUri</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds an &quot;universal&quot; uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,
- where the subject, predicate and object often are concatenated from namespace uri and local part
- (specialisation of <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"
->buildUniversalName</A
-></TT
->)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AbuildUniversalName"
-></A
-><B
->buildUniversalName</B
-> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else
- namespace uri and local part are combined with the combining function given by the first parameter
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkName"
-></A
-><B
->mkName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructs a simple, namespace unaware name, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamePrefix"
->namePrefix</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamespaceUri"
->namespaceUri</A
-></TT
-> are set to the empty string.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkPrefixLocalPart"
-></A
-><B
->mkPrefixLocalPart</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple name, with prefix and localPart but without a namespace uri.
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"
->mkName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"
->mkNsName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkSNsName"
->mkSNsName</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkNsName"
-></A
-><B
->mkNsName</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"
->mkName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkSNsName"
-></A
-><B
->mkSNsName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"
->mkNsName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnullQName"
-></A
-><B
->nullQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Empty QName
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequalQName"
-></A
-><B
->equalQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Equality of QNames: Two QNames are equal, if the local parts are equal
- and the namespace URIs are equal.
- The comparison works with and without namespace propagation.
- If namespaces have been propagated, the name is split into prefix and local part
- and the namespace uri is set. In this case the prefix is not significant for equality test.
- If namespaces have not been propagated, the local part contains the full name, prefix
- and namespace URI are empty. The full name (prefix and local part) is used for comparison.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequivQName"
-></A
-><B
->equivQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Equivalent QNames are defined as follows: The URIs are normalized before comparison.
- Comparison is done with <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQNameBy"
->equalQNameBy</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivUri"
->equivUri</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequivUri"
-></A
-><B
->equivUri</B
-> :: String -&gt; String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Comparison of normalized namespace URIs using <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnormalizeNsUri"
->normalizeNsUri</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequalQNameBy"
-></A
-><B
->equalQNameBy</B
-> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Sometimes a weaker equality relation than <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"
->equalQName</A
-></TT
-> is appropriate, e.g no case significance in names, ...
- a name normalization function can be applied to the strings before comparing. Called by <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"
->equalQName</A
-></TT
-> and
- <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivQName"
->equivQName</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeNsUri"
-></A
-><B
->normalizeNsUri</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing &quot;/&quot; is ignored
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ANsEnv"
 ></A
@@ -1717,7 +1024,7 @@
 ><TD CLASS="doc"
 >Type for the namespace association list, used when propagating namespaces by
  modifying the <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TT
 > values in a tree
@@ -1857,7 +1164,7 @@
 ></A
 ><B
 >attrNodes</B
-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: [<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >]</TD
 ><TD CLASS="rdoc"
@@ -1932,6 +1239,16 @@
 > = [(Int, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
 >XmlNodeSet</A
 >)]</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Text-XML-HXT-DOM-QualifiedName.html"
+>Text.XML.HXT.DOM.QualifiedName</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-DOM-UTF8Decoding.html b/doc/hdoc/Text-XML-HXT-DOM-UTF8Decoding.html
--- a/doc/hdoc/Text-XML-HXT-DOM-UTF8Decoding.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-UTF8Decoding.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/UTF8Decoding.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-Unicode.html b/doc/hdoc/Text-XML-HXT-DOM-Unicode.html
--- a/doc/hdoc/Text-XML-HXT-DOM-Unicode.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-Unicode.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Unicode.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-Util.html b/doc/hdoc/Text-XML-HXT-DOM-Util.html
--- a/doc/hdoc/Text-XML-HXT-DOM-Util.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-Util.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Util.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlKeywords.html b/doc/hdoc/Text-XML-HXT-DOM-XmlKeywords.html
--- a/doc/hdoc/Text-XML-HXT-DOM-XmlKeywords.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-XmlKeywords.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlKeywords.hs"
 >Source code</A
@@ -458,6 +458,16 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Aa_parse_by_mimetype"
+>a_parse_by_mimetype</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Aa_parse_html"
 >a_parse_html</A
 > :: String</TD
@@ -578,6 +588,16 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Aa_tagsoup"
+>a_tagsoup</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Aa_trace"
 >a_trace</A
 > :: String</TD
@@ -858,8 +878,8 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="#v%3Ak_enitity"
->k_enitity</A
+><A HREF="#v%3Ak_entity"
+>k_entity</A
 > :: String</TD
 ></TR
 ><TR
@@ -1512,6 +1532,96 @@
 >a_do_not_collect_errors</A
 > :: String</TD
 ></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xhtml"
+>application_xhtml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xml"
+>application_xml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xml_external_parsed_entity"
+>application_xml_external_parsed_entity</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xml_dtd"
+>application_xml_dtd</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atext_html"
+>text_html</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atext_xml"
+>text_xml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atext_xml_external_parsed_entity"
+>text_xml_external_parsed_entity</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisHtmlMimeType"
+>isHtmlMimeType</A
+> :: String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisXmlMimeType"
+>isXmlMimeType</A
+> :: String -&gt; Bool</TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -1949,6 +2059,18 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3Aa_parse_by_mimetype"
+></A
+><B
+>a_parse_by_mimetype</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Aa_parse_html"
 ></A
 ><B
@@ -2093,6 +2215,18 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3Aa_tagsoup"
+></A
+><B
+>a_tagsoup</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Aa_trace"
 ></A
 ><B
@@ -2429,10 +2563,10 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3Ak_enitity"
+><A NAME="v%3Ak_entity"
 ></A
 ><B
->k_enitity</B
+>k_entity</B
 > :: String</TD
 ></TR
 ><TR
@@ -3085,7 +3219,7 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
->the predefined namespace uri for xml: &quot;http://www.w3.org/XML/1998/namespaces&quot;
+>the predefined namespace uri for xml: &quot;http://www.w3.org/XML/1998/namespace&quot;
 </TD
 ></TR
 ><TR
@@ -3229,6 +3363,114 @@
 ><B
 >a_do_not_collect_errors</B
 > :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aapplication_xhtml"
+></A
+><B
+>application_xhtml</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aapplication_xml"
+></A
+><B
+>application_xml</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aapplication_xml_external_parsed_entity"
+></A
+><B
+>application_xml_external_parsed_entity</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aapplication_xml_dtd"
+></A
+><B
+>application_xml_dtd</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Atext_html"
+></A
+><B
+>text_html</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Atext_xml"
+></A
+><B
+>text_xml</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Atext_xml_external_parsed_entity"
+></A
+><B
+>text_xml_external_parsed_entity</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AisHtmlMimeType"
+></A
+><B
+>isHtmlMimeType</B
+> :: String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AisXmlMimeType"
+></A
+><B
+>isXmlMimeType</B
+> :: String -&gt; Bool</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlOptions.html b/doc/hdoc/Text-XML-HXT-DOM-XmlOptions.html
--- a/doc/hdoc/Text-XML-HXT-DOM-XmlOptions.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-XmlOptions.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlOptions.hs"
 >Source code</A
@@ -241,6 +241,14 @@
 >a_parse_html</A
 ></TT
 >, <TT
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_by_mimetype"
+>a_parse_by_mimetype</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_tagsoup"
+>a_tagsoup</A
+></TT
+> <TT
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"
 >a_issue_warnings</A
 ></TT
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlState.html b/doc/hdoc/Text-XML-HXT-DOM-XmlState.html
--- a/doc/hdoc/Text-XML-HXT-DOM-XmlState.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-XmlState.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlState.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlTree.html b/doc/hdoc/Text-XML-HXT-DOM-XmlTree.html
--- a/doc/hdoc/Text-XML-HXT-DOM-XmlTree.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-XmlTree.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTree.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlTreeFilter.html b/doc/hdoc/Text-XML-HXT-DOM-XmlTreeFilter.html
--- a/doc/hdoc/Text-XML-HXT-DOM-XmlTreeFilter.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-XmlTreeFilter.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeFilter.hs"
 >Source code</A
@@ -793,7 +793,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkQTag"
 >mkQTag</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -841,7 +841,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkQAttr"
 >mkQAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -1345,7 +1345,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Aqetag"
 >qetag</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -1359,7 +1359,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Aqtag"
 >qtag</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -1407,7 +1407,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Aqattr"
 >qattr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -2737,7 +2737,7 @@
 ></A
 ><B
 >mkQTag</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -2833,7 +2833,7 @@
 ></A
 ><B
 >mkQAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -3927,7 +3927,7 @@
 ></A
 ><B
 >qetag</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -3948,7 +3948,7 @@
 ></A
 ><B
 >qtag</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -4030,7 +4030,7 @@
 ></A
 ><B
 >qattr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlTreeFunctions.html b/doc/hdoc/Text-XML-HXT-DOM-XmlTreeFunctions.html
--- a/doc/hdoc/Text-XML-HXT-DOM-XmlTreeFunctions.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-XmlTreeFunctions.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeFunctions.hs"
 >Source code</A
@@ -345,6 +345,18 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AtextOfXNode"
+>textOfXNode</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3AmkXTagTree"
 >mkXTagTree</A
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
@@ -363,7 +375,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkQTagTree"
 >mkQTagTree</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -545,7 +557,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkQAttrTree"
 >mkQAttrTree</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -783,7 +795,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AshowQName"
 >showQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String -&gt; String</TD
 ></TR
@@ -1564,6 +1576,20 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3AtextOfXNode"
+></A
+><B
+>textOfXNode</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3AmkXTagTree"
 ></A
 ><B
@@ -1607,7 +1633,7 @@
 ></A
 ><B
 >mkQTagTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -2026,7 +2052,7 @@
 ></A
 ><B
 >mkQAttrTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -2456,7 +2482,7 @@
 ></A
 ><B
 >showQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String -&gt; String</TD
 ></TR
diff --git a/doc/hdoc/Text-XML-HXT-DOM-XmlTreeTypes.html b/doc/hdoc/Text-XML-HXT-DOM-XmlTreeTypes.html
--- a/doc/hdoc/Text-XML-HXT-DOM-XmlTreeTypes.html
+++ b/doc/hdoc/Text-XML-HXT-DOM-XmlTreeTypes.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeTypes.hs"
 >Source code</A
@@ -231,7 +231,7 @@
 >type</SPAN
 > <A HREF="#t%3ATagName"
 >TagName</A
-> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> = <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -245,7 +245,7 @@
 >type</SPAN
 > <A HREF="#t%3AAttrName"
 >AttrName</A
-> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> = <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -257,7 +257,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AtName"
 >tName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</TD
 ></TR
@@ -269,7 +269,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AaName"
 >aName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</TD
 ></TR
@@ -464,7 +464,7 @@
 ></A
 ><B
 >TagName</B
-> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> = <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -485,7 +485,7 @@
 ></A
 ><B
 >AttrName</B
-> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> = <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -504,14 +504,14 @@
 ></A
 ><B
 >tName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</TD
 ></TR
 ><TR
 ><TD CLASS="doc"
 >shortcut for <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AqualifiedName"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"
 >qualifiedName</A
 ></TT
 >
@@ -527,14 +527,14 @@
 ></A
 ><B
 >aName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</TD
 ></TR
 ><TR
 ><TD CLASS="doc"
 >shortcut for <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AqualifiedName"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"
 >qualifiedName</A
 ></TT
 >
diff --git a/doc/hdoc/Text-XML-HXT-DOM.html b/doc/hdoc/Text-XML-HXT-DOM.html
--- a/doc/hdoc/Text-XML-HXT-DOM.html
+++ b/doc/hdoc/Text-XML-HXT-DOM.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-IO-GetFILE.html b/doc/hdoc/Text-XML-HXT-IO-GetFILE.html
--- a/doc/hdoc/Text-XML-HXT-IO-GetFILE.html
+++ b/doc/hdoc/Text-XML-HXT-IO-GetFILE.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/IO/GetFILE.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-IO-GetHTTPCurl.html b/doc/hdoc/Text-XML-HXT-IO-GetHTTPCurl.html
--- a/doc/hdoc/Text-XML-HXT-IO-GetHTTPCurl.html
+++ b/doc/hdoc/Text-XML-HXT-IO-GetHTTPCurl.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/IO/GetHTTPCurl.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-IO-GetHTTPNative.html b/doc/hdoc/Text-XML-HXT-IO-GetHTTPNative.html
--- a/doc/hdoc/Text-XML-HXT-IO-GetHTTPNative.html
+++ b/doc/hdoc/Text-XML-HXT-IO-GetHTTPNative.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/IO/GetHTTPNative.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-DTDProcessing.html b/doc/hdoc/Text-XML-HXT-Parser-DTDProcessing.html
--- a/doc/hdoc/Text-XML-HXT-Parser-DTDProcessing.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-DTDProcessing.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/DTDProcessing.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-DefaultURI.html b/doc/hdoc/Text-XML-HXT-Parser-DefaultURI.html
--- a/doc/hdoc/Text-XML-HXT-Parser-DefaultURI.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-DefaultURI.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/DefaultURI.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-HtmlParsec.html b/doc/hdoc/Text-XML-HXT-Parser-HtmlParsec.html
--- a/doc/hdoc/Text-XML-HXT-Parser-HtmlParsec.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-HtmlParsec.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/HtmlParsec.hs"
 >Source code</A
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.Parser.HtmlParsec</FONT
 ></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
 ></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
@@ -59,26 +81,18 @@
 ><TR
 ><TD CLASS="doc"
 ><P
->HTML Parsec Parser
-</P
-><P
->Version : $Id: HtmlParsec.hs,v 1.11 2006<EM
->12</EM
->08 11:48:20 hxml Exp $
-</P
-><P
 >This parser tries to interprete everything as HTML
- no errors are emitted during parsing. If something looks
- weired, warning messages are inserted in the document tree
+   no errors are emitted during parsing. If something looks
+   weired, warning messages are inserted in the document tree.
 </P
 ><P
->all filter are pure XmlFilter,
- errror handling and IO is done in <TT
+>All filter are pure XmlFilter,
+   errror handling and IO is done in <TT
 ><A HREF="Text-XML-HXT-Parser.html#t%3AHtmlParser"
 >HtmlParser</A
 ></TT
 >
- or other modules
+   or other modules
 </P
 ></TD
 ></TR
@@ -172,6 +186,18 @@
 ></A
 ><B
 >isInnerHtmlTagOf</B
+> :: String -&gt; String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AclosesHtmlTag"
+></A
+><B
+>closesHtmlTag</B
 > :: String -&gt; String -&gt; Bool</TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-Parser-HtmlParser.html b/doc/hdoc/Text-XML-HXT-Parser-HtmlParser.html
--- a/doc/hdoc/Text-XML-HXT-Parser-HtmlParser.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-HtmlParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/HtmlParser.hs"
 >Source code</A
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.Parser.HtmlParser</FONT
 ></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
 ></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
@@ -59,21 +81,13 @@
 ><TR
 ><TD CLASS="doc"
 ><P
->HTML Parser
-</P
-><P
->Version : $Id: HtmlParser.hs,v 1.4 2006<EM
->11</EM
->12 14:53:00 hxml Exp $
-</P
-><P
 >This parser tries to interprete everything as HTML
- no errors are emitted during parsing. If something looks
- weired, warning messages are inserted in the document tree
+   no errors are emitted during parsing. If something looks
+   weired, warning messages are inserted in the document tree.
 </P
 ><P
->module contains state filter for easy parsing and error handling
- real work is done in <TT
+>Module contains state filter for easy parsing and error handling
+   real work is done in <TT
 ><A HREF="Text-XML-HXT-Parser.html#t%3AHtmlParsec"
 >HtmlParsec</A
 ></TT
diff --git a/doc/hdoc/Text-XML-HXT-Parser-MainFunctions.html b/doc/hdoc/Text-XML-HXT-Parser-MainFunctions.html
--- a/doc/hdoc/Text-XML-HXT-Parser-MainFunctions.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-MainFunctions.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/MainFunctions.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandler.html b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandler.html
--- a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandler.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandler.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandler.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerFile.html b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerFile.html
--- a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerFile.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerFile.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerFile.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
--- a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpCurl.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
--- a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpNative.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
--- a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpNativeOrCurl.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerUtil.html b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerUtil.html
--- a/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerUtil.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerUtil.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerUtil.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-TagSoup.html b/doc/hdoc/Text-XML-HXT-Parser-TagSoup.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/Text-XML-HXT-Parser-TagSoup.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Text.XML.HXT.Parser.TagSoup</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>Haskell Xml Toolbox 7.5: The complete API</TD
+><TD CLASS="topbut"
+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/TagSoup.hs"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Text.XML.HXT.Parser.TagSoup</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+>lasy HTML and simpe XML parser implemented with tagsoup
+   parsing is done with a very simple monadic top down parser
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AparseHtmlTagSoup"
+></A
+><B
+>parseHtmlTagSoup</B
+> :: Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/Text-XML-HXT-Parser-XhtmlEntities.html b/doc/hdoc/Text-XML-HXT-Parser-XhtmlEntities.html
--- a/doc/hdoc/Text-XML-HXT-Parser-XhtmlEntities.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-XhtmlEntities.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XhtmlEntities.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-XmlCharParser.html b/doc/hdoc/Text-XML-HXT-Parser-XmlCharParser.html
--- a/doc/hdoc/Text-XML-HXT-Parser-XmlCharParser.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-XmlCharParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlCharParser.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-XmlDTDParser.html b/doc/hdoc/Text-XML-HXT-Parser-XmlDTDParser.html
--- a/doc/hdoc/Text-XML-HXT-Parser-XmlDTDParser.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-XmlDTDParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlDTDParser.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-XmlDTDTokenParser.html b/doc/hdoc/Text-XML-HXT-Parser-XmlDTDTokenParser.html
--- a/doc/hdoc/Text-XML-HXT-Parser-XmlDTDTokenParser.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-XmlDTDTokenParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlDTDTokenParser.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-XmlEntities.html b/doc/hdoc/Text-XML-HXT-Parser-XmlEntities.html
--- a/doc/hdoc/Text-XML-HXT-Parser-XmlEntities.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-XmlEntities.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlEntities.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-XmlInput.html b/doc/hdoc/Text-XML-HXT-Parser-XmlInput.html
--- a/doc/hdoc/Text-XML-HXT-Parser-XmlInput.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-XmlInput.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlInput.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-XmlOutput.html b/doc/hdoc/Text-XML-HXT-Parser-XmlOutput.html
--- a/doc/hdoc/Text-XML-HXT-Parser-XmlOutput.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-XmlOutput.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlOutput.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-XmlParsec.html b/doc/hdoc/Text-XML-HXT-Parser-XmlParsec.html
--- a/doc/hdoc/Text-XML-HXT-Parser-XmlParsec.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-XmlParsec.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlParsec.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-XmlParser.html b/doc/hdoc/Text-XML-HXT-Parser-XmlParser.html
--- a/doc/hdoc/Text-XML-HXT-Parser-XmlParser.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-XmlParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlParser.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser-XmlTokenParser.html b/doc/hdoc/Text-XML-HXT-Parser-XmlTokenParser.html
--- a/doc/hdoc/Text-XML-HXT-Parser-XmlTokenParser.html
+++ b/doc/hdoc/Text-XML-HXT-Parser-XmlTokenParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlTokenParser.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Parser.html b/doc/hdoc/Text-XML-HXT-Parser.html
--- a/doc/hdoc/Text-XML-HXT-Parser.html
+++ b/doc/hdoc/Text-XML-HXT-Parser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-BasicArrows.html b/doc/hdoc/Text-XML-HXT-RelaxNG-BasicArrows.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-BasicArrows.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-BasicArrows.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/BasicArrows.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-CreatePattern.html b/doc/hdoc/Text-XML-HXT-RelaxNG-CreatePattern.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-CreatePattern.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-CreatePattern.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/CreatePattern.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html b/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibMysql.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html b/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibUtils.hs"
 >Source code</A
@@ -92,7 +92,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AerrorMsgDataTypeNotAllowed"
 >errorMsgDataTypeNotAllowed</A
-> :: String -&gt; [(String, String)] -&gt; String -&gt; String -&gt; String</TD
+> :: String -&gt; String -&gt; [(String, String)] -&gt; String -&gt; String</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -130,6 +130,18 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AerrorMsgParam"
+>errorMsgParam</A
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
+>LocalName</A
+> -&gt; String -&gt; String -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Arng_length"
 >rng_length</A
 > :: String</TD
@@ -230,9 +242,11 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="#v%3AalwaysOK"
->alwaysOK</A
-> :: Check a</TD
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A HREF="#t%3AFunctionTable"
+>FunctionTable</A
+> = [(String, String -&gt; String -&gt; Bool)]</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -240,29 +254,29 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="#v%3AalwaysErr"
->alwaysErr</A
-> :: (a -&gt; String) -&gt; Check a</TD
-></TR
-><TR
-><TD CLASS="s8"
+><A HREF="#v%3AstringValidFT"
+>stringValidFT</A
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
+>FunctionTable</A
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
+>DatatypeName</A
+> -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
+>ParamList</A
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
+>CheckString</A
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
-><A HREF="#v%3AorErr"
->orErr</A
-> :: (a -&gt; Bool) -&gt; (a -&gt; String) -&gt; Check a</TD
-></TR
-><TR
 ><TD CLASS="s8"
 ></TD
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="#v%3AandCheck"
->andCheck</A
-> :: Check a -&gt; Check a -&gt; Check a</TD
+><A HREF="#v%3AfctTableString"
+>fctTableString</A
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
+>FunctionTable</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -270,9 +284,11 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="#v%3AwithVal"
->withVal</A
-> :: Check a -&gt; (b -&gt; a) -&gt; Check b</TD
+><A HREF="#v%3AfctTableList"
+>fctTableList</A
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
+>FunctionTable</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -286,7 +302,9 @@
 >DatatypeName</A
 > -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
 >ParamList</A
-> -&gt; Check String</TD
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
+>CheckString</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -300,8 +318,134 @@
 >DatatypeName</A
 > -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
 >ParamList</A
-> -&gt; Check String</TD
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
+>CheckString</A
+></TD
 ></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnumParamValid"
+>numParamValid</A
+> :: (Integer -&gt; Integer -&gt; Bool) -&gt; String -&gt; String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A HREF="#t%3ACheckA"
+>CheckA</A
+> a b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A HREF="#t%3ACheckString"
+>CheckString</A
+> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> String String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A HREF="#t%3ACheckInteger"
+>CheckInteger</A
+> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> Integer Integer</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AperformCheck"
+>performCheck</A
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a b -&gt; a -&gt; Maybe String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aok"
+>ok</A
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Afailure"
+>failure</A
+> :: (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aassert"
+>assert</A
+> :: (a -&gt; Bool) -&gt; (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AassertMaybe"
+>assertMaybe</A
+> :: (a -&gt; Maybe b) -&gt; (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcheckWith"
+>checkWith</A
+> :: (a -&gt; b) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> b c -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a a</TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -337,7 +481,7 @@
 ></A
 ><B
 >errorMsgDataTypeNotAllowed</B
-> :: String -&gt; [(String, String)] -&gt; String -&gt; String -&gt; String</TD
+> :: String -&gt; String -&gt; [(String, String)] -&gt; String -&gt; String</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
@@ -381,6 +525,44 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3AerrorMsgParam"
+></A
+><B
+>errorMsgParam</B
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
+>LocalName</A
+> -&gt; String -&gt; String -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Error Message for the equality test of two datatype values
+</P
+><UL
+><LI
+> 1.parameter  :  datatype
+</LI
+><LI
+> 2.parameter  :  datatype value
+</LI
+><LI
+> 3.parameter  :  datatype value
+</LI
+></UL
+><P
+>example:
+</P
+><PRE
+> errorMsgEqual &quot;Int&quot; &quot;21&quot; &quot;42&quot; -&gt; &quot;Datatype Int with value = 21 expected, but value = 42 found&quot;
+</PRE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Arng_length"
 ></A
 ><B
@@ -495,15 +677,17 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3AalwaysOK"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3AFunctionTable"
 ></A
 ><B
->alwaysOK</B
-> :: Check a</TD
+>FunctionTable</B
+> = [(String, String -&gt; String -&gt; Bool)]</TD
 ></TR
 ><TR
 ><TD CLASS="doc"
->Unit for checks
+>Function table type
 </TD
 ></TR
 ><TR
@@ -512,16 +696,19 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3AalwaysErr"
+><A NAME="v%3AstringValidFT"
 ></A
 ><B
->alwaysErr</B
-> :: (a -&gt; String) -&gt; Check a</TD
-></TR
-><TR
-><TD CLASS="doc"
->Zero for checks: Create an error message for an illegal value
-</TD
+>stringValidFT</B
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
+>FunctionTable</A
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
+>DatatypeName</A
+> -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
+>ParamList</A
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
+>CheckString</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
@@ -529,15 +716,18 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3AorErr"
+><A NAME="v%3AfctTableString"
 ></A
 ><B
->orErr</B
-> :: (a -&gt; Bool) -&gt; (a -&gt; String) -&gt; Check a</TD
+>fctTableString</B
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
+>FunctionTable</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
->Perform check and generate error message on failure
+>Function table for string tests,
+ XML document value is first operand, schema value second
 </TD
 ></TR
 ><TR
@@ -546,15 +736,18 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3AandCheck"
+><A NAME="v%3AfctTableList"
 ></A
 ><B
->andCheck</B
-> :: Check a -&gt; Check a -&gt; Check a</TD
+>fctTableList</B
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
+>FunctionTable</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
->Combine two checks
+>Function table for list tests,
+ XML document value is first operand, schema value second
 </TD
 ></TR
 ><TR
@@ -563,18 +756,6 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3AwithVal"
-></A
-><B
->withVal</B
-> :: Check a -&gt; (b -&gt; a) -&gt; Check b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
 ><A NAME="v%3AstringValid"
 ></A
 ><B
@@ -583,7 +764,9 @@
 >DatatypeName</A
 > -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
 >ParamList</A
-> -&gt; Check String</TD
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
+>CheckString</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
@@ -630,7 +813,9 @@
 >DatatypeName</A
 > -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
 >ParamList</A
-> -&gt; Check String</TD
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
+>CheckString</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
@@ -663,6 +848,238 @@
 </LI
 ></UL
 ></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AnumParamValid"
+></A
+><B
+>numParamValid</B
+> :: (Integer -&gt; Integer -&gt; Bool) -&gt; String -&gt; String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>tests whether a string value matches a numeric param
+</P
+><P
+>valid example:
+</P
+><PRE
+> &lt;data type=&quot;CHAR&quot;&gt; &lt;param name=&quot;maxLength&quot;&gt;5&lt;/param&gt; &lt;/data&gt;
+</PRE
+><P
+>invalid example:
+</P
+><PRE
+> &lt;data type=&quot;CHAR&quot;&gt; &lt;param name=&quot;minLength&quot;&gt;foo&lt;/param&gt; &lt;/data&gt;
+</PRE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A NAME="t%3ACheckA"
+></A
+><B
+>CheckA</B
+> a b</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CheckA')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:CheckA" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>Arrow <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>ArrowPlus <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>ArrowZero <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+></TD
+></TR
+></TABLE
+></DIV
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3ACheckString"
+></A
+><B
+>CheckString</B
+> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> String String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3ACheckInteger"
+></A
+><B
+>CheckInteger</B
+> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> Integer Integer</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AperformCheck"
+></A
+><B
+>performCheck</B
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a b -&gt; a -&gt; Maybe String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>run a check and deliver Just an error message or Nothing
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aok"
+></A
+><B
+>ok</B
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a a</TD
+></TR
+><TR
+><TD CLASS="doc"
+>every thing is fine
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Afailure"
+></A
+><B
+>failure</B
+> :: (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a b</TD
+></TR
+><TR
+><TD CLASS="doc"
+>always failure
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aassert"
+></A
+><B
+>assert</B
+> :: (a -&gt; Bool) -&gt; (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a a</TD
+></TR
+><TR
+><TD CLASS="doc"
+>perform a simple check with a predicate p,
+   when the predicate holds, assert acts as identity,
+   else an error message is generated
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AassertMaybe"
+></A
+><B
+>assertMaybe</B
+> :: (a -&gt; Maybe b) -&gt; (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a b</TD
+></TR
+><TR
+><TD CLASS="doc"
+>perform a simple check with a Maybe function, Nothing indicates error
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcheckWith"
+></A
+><B
+>checkWith</B
+> :: (a -&gt; b) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> b c -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a a</TD
+></TR
+><TR
+><TD CLASS="doc"
+>perform a check, but convert the value before checking
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibraries.html b/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibraries.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibraries.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibraries.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibraries.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypes.html b/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypes.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypes.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-DataTypes.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypes.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-PatternFunctions.html b/doc/hdoc/Text-XML-HXT-RelaxNG-PatternFunctions.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-PatternFunctions.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-PatternFunctions.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/PatternFunctions.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-PatternToString.html b/doc/hdoc/Text-XML-HXT-RelaxNG-PatternToString.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-PatternToString.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-PatternToString.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/PatternToString.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-Schema.html b/doc/hdoc/Text-XML-HXT-RelaxNG-Schema.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-Schema.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-Schema.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Schema.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-SchemaGrammar.html b/doc/hdoc/Text-XML-HXT-RelaxNG-SchemaGrammar.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-SchemaGrammar.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-SchemaGrammar.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/SchemaGrammar.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-Simplification.html b/doc/hdoc/Text-XML-HXT-RelaxNG-Simplification.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-Simplification.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-Simplification.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Simplification.hs"
 >Source code</A
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.RelaxNG.Simplification</FONT
 ></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
 ></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
@@ -59,7 +81,7 @@
 ><TR
 ><TD CLASS="doc"
 >The modul creates the simplified form of a Relax NG schema.
- See also chapter 4 of the Relax NG specification.
+   See also chapter 4 of the Relax NG specification.
 </TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-Blocks.html b/doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Unicode/Blocks.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-CharProps.html b/doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-CharProps.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-CharProps.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-CharProps.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Unicode/CharProps.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-Utils.html b/doc/hdoc/Text-XML-HXT-RelaxNG-Utils.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-Utils.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-Utils.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Utils.hs"
 >Source code</A
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.RelaxNG.Utils</FONT
 ></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
 ></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
@@ -58,7 +80,7 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
->Some helper functions
+>Helper functions for RelaxNG validation
 </TD
 ></TR
 ><TR
@@ -192,18 +214,6 @@
 >formatStringListArr</A
 > :: [String] -&gt; String</TD
 ></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aqn2String"
->qn2String</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
 ></TABLE
 ></TD
 ></TR
@@ -398,25 +408,6 @@
 ><B
 >formatStringListArr</B
 > :: [String] -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3Aqn2String"
-></A
-><B
->qn2String</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Formats a qualified name, e.g. &quot;{namespace}localName&quot;
-</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-Validation.html b/doc/hdoc/Text-XML-HXT-RelaxNG-Validation.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-Validation.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-Validation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Validation.hs"
 >Source code</A
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.RelaxNG.Validation</FONT
 ></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
 ></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
@@ -59,8 +81,8 @@
 ><TR
 ><TD CLASS="doc"
 >Validation of a XML document with respect to a valid Relax NG schema in simple form.
- Copied and modified from &quot;An algorithm for RELAX NG validation&quot; by James Clark
- (<A HREF="http://www.thaiopensource.com/relaxng/derivative.html"
+   Copied and modified from &quot;An algorithm for RELAX NG validation&quot; by James Clark
+   (<A HREF="http://www.thaiopensource.com/relaxng/derivative.html"
 >http://www.thaiopensource.com/relaxng/derivative.html</A
 >).
 </TD
@@ -200,7 +222,7 @@
 >contains</A
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
 >NameClass</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -409,7 +431,7 @@
 >contains</B
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
 >NameClass</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -420,7 +442,7 @@
 >NameClass</A
 ></TT
 > contains a particular <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TT
 >
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-Validator.html b/doc/hdoc/Text-XML-HXT-RelaxNG-Validator.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-Validator.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-Validator.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Validator.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html b/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/XmlSchema/DataTypeLibW3C.hs"
 >Source code</A
@@ -127,6 +127,76 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Axsd_string"
+>xsd_string</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_normalizedString"
+>xsd_normalizedString</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_token"
+>xsd_token</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_language"
+>xsd_language</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_NMTOKEN"
+>xsd_NMTOKEN</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_NMTOKENS"
+>xsd_NMTOKENS</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_Name"
+>xsd_Name</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Axsd_NCName"
 >xsd_NCName</A
 > :: String</TD
@@ -137,6 +207,56 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Axsd_ID"
+>xsd_ID</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_IDREF"
+>xsd_IDREF</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_IDREFS"
+>xsd_IDREFS</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_ENTITY"
+>xsd_ENTITY</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_ENTITIES"
+>xsd_ENTITIES</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Axsd_anyURI"
 >xsd_anyURI</A
 > :: String</TD
@@ -157,8 +277,8 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="#v%3Axsd_string"
->xsd_string</A
+><A HREF="#v%3Axsd_NOTATION"
+>xsd_NOTATION</A
 > :: String</TD
 ></TR
 ><TR
@@ -167,6 +287,36 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Axsd_hexBinary"
+>xsd_hexBinary</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_base64Binary"
+>xsd_base64Binary</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_decimal"
+>xsd_decimal</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Axsd_length"
 >xsd_length</A
 > :: String</TD
@@ -197,6 +347,66 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Axsd_maxExclusive"
+>xsd_maxExclusive</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_minExclusive"
+>xsd_minExclusive</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_maxInclusive"
+>xsd_maxInclusive</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_minInclusive"
+>xsd_minInclusive</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_totalDigits"
+>xsd_totalDigits</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_fractionDigits"
+>xsd_fractionDigits</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Axsd_pattern"
 >xsd_pattern</A
 > :: String</TD
@@ -275,6 +485,90 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3Axsd_string"
+></A
+><B
+>xsd_string</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_normalizedString"
+></A
+><B
+>xsd_normalizedString</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_token"
+></A
+><B
+>xsd_token</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_language"
+></A
+><B
+>xsd_language</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_NMTOKEN"
+></A
+><B
+>xsd_NMTOKEN</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_NMTOKENS"
+></A
+><B
+>xsd_NMTOKENS</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_Name"
+></A
+><B
+>xsd_Name</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Axsd_NCName"
 ></A
 ><B
@@ -287,6 +581,66 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3Axsd_ID"
+></A
+><B
+>xsd_ID</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_IDREF"
+></A
+><B
+>xsd_IDREF</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_IDREFS"
+></A
+><B
+>xsd_IDREFS</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_ENTITY"
+></A
+><B
+>xsd_ENTITY</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_ENTITIES"
+></A
+><B
+>xsd_ENTITIES</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Axsd_anyURI"
 ></A
 ><B
@@ -311,10 +665,10 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3Axsd_string"
+><A NAME="v%3Axsd_NOTATION"
 ></A
 ><B
->xsd_string</B
+>xsd_NOTATION</B
 > :: String</TD
 ></TR
 ><TR
@@ -323,6 +677,42 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3Axsd_hexBinary"
+></A
+><B
+>xsd_hexBinary</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_base64Binary"
+></A
+><B
+>xsd_base64Binary</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_decimal"
+></A
+><B
+>xsd_decimal</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Axsd_length"
 ></A
 ><B
@@ -351,6 +741,78 @@
 ></A
 ><B
 >xsd_minLength</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_maxExclusive"
+></A
+><B
+>xsd_maxExclusive</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_minExclusive"
+></A
+><B
+>xsd_minExclusive</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_maxInclusive"
+></A
+><B
+>xsd_maxInclusive</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_minInclusive"
+></A
+><B
+>xsd_minInclusive</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_totalDigits"
+></A
+><B
+>xsd_totalDigits</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_fractionDigits"
+></A
+><B
+>xsd_fractionDigits</B
 > :: String</TD
 ></TR
 ><TR
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html b/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/XmlSchema/Regex.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html b/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/XmlSchema/RegexParser.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-RelaxNG.html b/doc/hdoc/Text-XML-HXT-RelaxNG.html
--- a/doc/hdoc/Text-XML-HXT-RelaxNG.html
+++ b/doc/hdoc/Text-XML-HXT-RelaxNG.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Validator-AttributeValueValidation.html b/doc/hdoc/Text-XML-HXT-Validator-AttributeValueValidation.html
--- a/doc/hdoc/Text-XML-HXT-Validator-AttributeValueValidation.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-AttributeValueValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/AttributeValueValidation.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Validator-DTDValidation.html b/doc/hdoc/Text-XML-HXT-Validator-DTDValidation.html
--- a/doc/hdoc/Text-XML-HXT-Validator-DTDValidation.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-DTDValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DTDValidation.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Validator-DocTransformation.html b/doc/hdoc/Text-XML-HXT-Validator-DocTransformation.html
--- a/doc/hdoc/Text-XML-HXT-Validator-DocTransformation.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-DocTransformation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DocTransformation.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Validator-DocValidation.html b/doc/hdoc/Text-XML-HXT-Validator-DocValidation.html
--- a/doc/hdoc/Text-XML-HXT-Validator-DocValidation.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-DocValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DocValidation.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Validator-IdValidation.html b/doc/hdoc/Text-XML-HXT-Validator-IdValidation.html
--- a/doc/hdoc/Text-XML-HXT-Validator-IdValidation.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-IdValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/IdValidation.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Validator-RE.html b/doc/hdoc/Text-XML-HXT-Validator-RE.html
--- a/doc/hdoc/Text-XML-HXT-Validator-RE.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-RE.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/RE.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Validator-Validation.html b/doc/hdoc/Text-XML-HXT-Validator-Validation.html
--- a/doc/hdoc/Text-XML-HXT-Validator-Validation.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-Validation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/Validation.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Validator-ValidationFilter.html b/doc/hdoc/Text-XML-HXT-Validator-ValidationFilter.html
--- a/doc/hdoc/Text-XML-HXT-Validator-ValidationFilter.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-ValidationFilter.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/ValidationFilter.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-Validator-XmlRE.html b/doc/hdoc/Text-XML-HXT-Validator-XmlRE.html
--- a/doc/hdoc/Text-XML-HXT-Validator-XmlRE.html
+++ b/doc/hdoc/Text-XML-HXT-Validator-XmlRE.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/XmlRE.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-XPath-NavTree.html b/doc/hdoc/Text-XML-HXT-XPath-NavTree.html
--- a/doc/hdoc/Text-XML-HXT-XPath-NavTree.html
+++ b/doc/hdoc/Text-XML-HXT-XPath-NavTree.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/NavTree.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-XPath-XPathArithmetic.html b/doc/hdoc/Text-XML-HXT-XPath-XPathArithmetic.html
--- a/doc/hdoc/Text-XML-HXT-XPath-XPathArithmetic.html
+++ b/doc/hdoc/Text-XML-HXT-XPath-XPathArithmetic.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathArithmetic.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-XPath-XPathDataTypes.html b/doc/hdoc/Text-XML-HXT-XPath-XPathDataTypes.html
--- a/doc/hdoc/Text-XML-HXT-XPath-XPathDataTypes.html
+++ b/doc/hdoc/Text-XML-HXT-XPath-XPathDataTypes.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathDataTypes.hs"
 >Source code</A
@@ -536,7 +536,7 @@
 ><TD CLASS="decl"
 >= <A HREF="#v%3ANameTest"
 >NameTest</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -900,7 +900,7 @@
 >type</SPAN
 > <A HREF="#t%3AKeyTab"
 >KeyTab</A
-> = [(<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> = [(<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >, String, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
 >NavXmlTree</A
@@ -1927,7 +1927,7 @@
 ></A
 ><B
 >NameTest</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ><TD CLASS="rdoc"
@@ -2558,7 +2558,7 @@
 ></A
 ><B
 >KeyTab</B
-> = [(<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> = [(<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >, String, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
 >NavXmlTree</A
diff --git a/doc/hdoc/Text-XML-HXT-XPath-XPathEval.html b/doc/hdoc/Text-XML-HXT-XPath-XPathEval.html
--- a/doc/hdoc/Text-XML-HXT-XPath-XPathEval.html
+++ b/doc/hdoc/Text-XML-HXT-XPath-XPathEval.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathEval.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-XPath-XPathFct.html b/doc/hdoc/Text-XML-HXT-XPath-XPathFct.html
--- a/doc/hdoc/Text-XML-HXT-XPath-XPathFct.html
+++ b/doc/hdoc/Text-XML-HXT-XPath-XPathFct.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathFct.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-XPath-XPathKeywords.html b/doc/hdoc/Text-XML-HXT-XPath-XPathKeywords.html
--- a/doc/hdoc/Text-XML-HXT-XPath-XPathKeywords.html
+++ b/doc/hdoc/Text-XML-HXT-XPath-XPathKeywords.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathKeywords.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-XPath-XPathParser.html b/doc/hdoc/Text-XML-HXT-XPath-XPathParser.html
--- a/doc/hdoc/Text-XML-HXT-XPath-XPathParser.html
+++ b/doc/hdoc/Text-XML-HXT-XPath-XPathParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathParser.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-XPath-XPathToNodeSet.html b/doc/hdoc/Text-XML-HXT-XPath-XPathToNodeSet.html
--- a/doc/hdoc/Text-XML-HXT-XPath-XPathToNodeSet.html
+++ b/doc/hdoc/Text-XML-HXT-XPath-XPathToNodeSet.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathToNodeSet.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-XPath-XPathToString.html b/doc/hdoc/Text-XML-HXT-XPath-XPathToString.html
--- a/doc/hdoc/Text-XML-HXT-XPath-XPathToString.html
+++ b/doc/hdoc/Text-XML-HXT-XPath-XPathToString.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathToString.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-XPath.html b/doc/hdoc/Text-XML-HXT-XPath.html
--- a/doc/hdoc/Text-XML-HXT-XPath.html
+++ b/doc/hdoc/Text-XML-HXT-XPath.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-XSLT-Application.html b/doc/hdoc/Text-XML-HXT-XSLT-Application.html
--- a/doc/hdoc/Text-XML-HXT-XSLT-Application.html
+++ b/doc/hdoc/Text-XML-HXT-XSLT-Application.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Application.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-XSLT-Common.html b/doc/hdoc/Text-XML-HXT-XSLT-Common.html
--- a/doc/hdoc/Text-XML-HXT-XSLT-Common.html
+++ b/doc/hdoc/Text-XML-HXT-XSLT-Common.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Common.hs"
 >Source code</A
@@ -320,7 +320,7 @@
 >isElemType</B
 > :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> n =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> n =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; n -&gt; Bool</TD
 ></TR
@@ -336,7 +336,7 @@
 >isAttrType</B
 > :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> n =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> n =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; n -&gt; Bool</TD
 ></TR
@@ -380,7 +380,7 @@
 >tryFetchAttribute</B
 > :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Maybe String</TD
 ></TR
@@ -396,7 +396,7 @@
 >fetchAttributeWDefault</B
 > :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String -&gt; String</TD
 ></TR
@@ -412,7 +412,7 @@
 >fetchAttribute</B
 > :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</TD
 ></TR
@@ -428,7 +428,7 @@
 >hasAttribute</B
 > :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -444,7 +444,7 @@
 >setAttribute</B
 > :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> n =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> n =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String -&gt; n -&gt; n</TD
 ></TR
@@ -454,20 +454,6 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3AmkQName"
-></A
-><B
->mkQName</B
-> :: String -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AExName"
@@ -543,7 +529,7 @@
 ></A
 ><B
 >mkExName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
 >ExName</A
diff --git a/doc/hdoc/Text-XML-HXT-XSLT-Compilation.html b/doc/hdoc/Text-XML-HXT-XSLT-Compilation.html
--- a/doc/hdoc/Text-XML-HXT-XSLT-Compilation.html
+++ b/doc/hdoc/Text-XML-HXT-XSLT-Compilation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Compilation.hs"
 >Source code</A
diff --git a/doc/hdoc/Text-XML-HXT-XSLT-CompiledStylesheet.html b/doc/hdoc/Text-XML-HXT-XSLT-CompiledStylesheet.html
--- a/doc/hdoc/Text-XML-HXT-XSLT-CompiledStylesheet.html
+++ b/doc/hdoc/Text-XML-HXT-XSLT-CompiledStylesheet.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/CompiledStylesheet.hs"
 >Source code</A
@@ -928,9 +928,9 @@
 >lookupAlias</B
 > :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"
 >NSAliasing</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -1375,7 +1375,7 @@
 ></A
 ><B
 >LiteralQName</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ><TD CLASS="rdoc"
diff --git a/doc/hdoc/Text-XML-HXT-XSLT-Names.html b/doc/hdoc/Text-XML-HXT-XSLT-Names.html
--- a/doc/hdoc/Text-XML-HXT-XSLT-Names.html
+++ b/doc/hdoc/Text-XML-HXT-XSLT-Names.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Names.hs"
 >Source code</A
@@ -136,7 +136,7 @@
 ></A
 ><B
 >mkXsltName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -150,7 +150,7 @@
 ></A
 ><B
 >mkXsltAttribName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -164,7 +164,7 @@
 ></A
 ><B
 >xsltTransform</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -178,7 +178,7 @@
 ></A
 ><B
 >xsltStylesheet</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -192,7 +192,7 @@
 ></A
 ><B
 >xsltMessage</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -206,7 +206,7 @@
 ></A
 ><B
 >xsltForEach</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -220,7 +220,7 @@
 ></A
 ><B
 >xsltChoose</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -234,7 +234,7 @@
 ></A
 ><B
 >xsltWhen</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -248,7 +248,7 @@
 ></A
 ><B
 >xsltOtherwise</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -262,7 +262,7 @@
 ></A
 ><B
 >xsltIf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -276,7 +276,7 @@
 ></A
 ><B
 >xsltElement</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -290,7 +290,7 @@
 ></A
 ><B
 >xsltAttribute</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -304,7 +304,7 @@
 ></A
 ><B
 >xsltText</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -318,7 +318,7 @@
 ></A
 ><B
 >xsltValueOf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -332,7 +332,7 @@
 ></A
 ><B
 >xsltComment</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -346,7 +346,7 @@
 ></A
 ><B
 >xsltProcInstr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -360,7 +360,7 @@
 ></A
 ><B
 >xsltInclude</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -374,7 +374,7 @@
 ></A
 ><B
 >xsltImport</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -388,7 +388,7 @@
 ></A
 ><B
 >xsltTemplate</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -402,7 +402,7 @@
 ></A
 ><B
 >xsltApplyTemplates</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -416,7 +416,7 @@
 ></A
 ><B
 >xsltApplyImports</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -430,7 +430,7 @@
 ></A
 ><B
 >xsltCallTemplate</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -444,7 +444,7 @@
 ></A
 ><B
 >xsltVariable</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -458,7 +458,7 @@
 ></A
 ><B
 >xsltParam</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -472,7 +472,7 @@
 ></A
 ><B
 >xsltWithParam</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -486,7 +486,7 @@
 ></A
 ><B
 >xsltAttributeSet</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -500,7 +500,7 @@
 ></A
 ><B
 >xsltCopy</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -514,7 +514,7 @@
 ></A
 ><B
 >xsltCopyOf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -528,7 +528,7 @@
 ></A
 ><B
 >xsltSort</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -542,7 +542,7 @@
 ></A
 ><B
 >xsltStripSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -556,7 +556,7 @@
 ></A
 ><B
 >xsltPreserveSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -570,7 +570,7 @@
 ></A
 ><B
 >xsltNamespaceAlias</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -584,7 +584,7 @@
 ></A
 ><B
 >xsltTerminate</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -598,7 +598,7 @@
 ></A
 ><B
 >xsltSelect</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -612,7 +612,7 @@
 ></A
 ><B
 >xsltTest</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -626,7 +626,7 @@
 ></A
 ><B
 >xsltName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -640,7 +640,7 @@
 ></A
 ><B
 >xsltNamespace</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -654,7 +654,7 @@
 ></A
 ><B
 >xsltUseAttributeSets</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -668,7 +668,7 @@
 ></A
 ><B
 >xsltHRef</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -682,7 +682,7 @@
 ></A
 ><B
 >xsltMatch</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -696,7 +696,7 @@
 ></A
 ><B
 >xsltPriority</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -710,7 +710,7 @@
 ></A
 ><B
 >xsltMode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -724,7 +724,7 @@
 ></A
 ><B
 >xsltDataType</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -738,7 +738,7 @@
 ></A
 ><B
 >xsltOrder</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -752,7 +752,7 @@
 ></A
 ><B
 >xsltElements</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -766,7 +766,7 @@
 ></A
 ><B
 >xsltStylesheetPrefix</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -780,7 +780,7 @@
 ></A
 ><B
 >xsltResultPrefix</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -794,7 +794,7 @@
 ></A
 ><B
 >xsltVersion</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -808,7 +808,7 @@
 ></A
 ><B
 >xsltExlcudeResultPrefixes</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -822,7 +822,7 @@
 ></A
 ><B
 >xsltExtensionElementPrefixes</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -836,7 +836,7 @@
 ></A
 ><B
 >xsltUseAttributeSetsLRE</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -850,7 +850,7 @@
 ></A
 ><B
 >xsltVersionLRE</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -864,7 +864,7 @@
 ></A
 ><B
 >xsltExlcudeResultPrefixesLRE</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -878,7 +878,7 @@
 ></A
 ><B
 >xsltExtensionElementPrefixesLRE</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -892,7 +892,7 @@
 ></A
 ><B
 >xmlSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
diff --git a/doc/hdoc/Text-XML-HXT-XSLT-XsltArrows.html b/doc/hdoc/Text-XML-HXT-XSLT-XsltArrows.html
--- a/doc/hdoc/Text-XML-HXT-XSLT-XsltArrows.html
+++ b/doc/hdoc/Text-XML-HXT-XSLT-XsltArrows.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/XsltArrows.hs"
 >Source code</A
diff --git a/doc/hdoc/doc-index-36.html b/doc/hdoc/doc-index-36.html
--- a/doc/hdoc/doc-index-36.html
+++ b/doc/hdoc/doc-index-36.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc/doc-index-38.html b/doc/hdoc/doc-index-38.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc/doc-index-38.html
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>Haskell Xml Toolbox 7.5: The complete API</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-A.html"
+>A</A
+></TD
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-P.html"
+>P</A
+></TD
+><TD
+><A HREF="doc-index-Q.html"
+>Q</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-X.html"
+>X</A
+></TD
+><TD
+><A HREF="doc-index-Z.html"
+>Z</A
+></TD
+><TD
+><A HREF="doc-index-58.html"
+>:</A
+></TD
+><TD
+><A HREF="doc-index-36.html"
+>$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
+><A HREF="doc-index-43.html"
+>+</A
+></TD
+><TD
+><A HREF="doc-index-46.html"
+>.</A
+></TD
+><TD
+><A HREF="doc-index-47.html"
+>/</A
+></TD
+><TD
+><A HREF="doc-index-60.html"
+>&lt;</A
+></TD
+><TD
+><A HREF="doc-index-62.html"
+>&gt;</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (&amp;)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>&amp;&amp;&amp;&amp;</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3A%26%26%26%26"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc/doc-index-43.html b/doc/hdoc/doc-index-43.html
--- a/doc/hdoc/doc-index-43.html
+++ b/doc/hdoc/doc-index-43.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc/doc-index-46.html b/doc/hdoc/doc-index-46.html
--- a/doc/hdoc/doc-index-46.html
+++ b/doc/hdoc/doc-index-46.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc/doc-index-47.html b/doc/hdoc/doc-index-47.html
--- a/doc/hdoc/doc-index-47.html
+++ b/doc/hdoc/doc-index-47.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc/doc-index-58.html b/doc/hdoc/doc-index-58.html
--- a/doc/hdoc/doc-index-58.html
+++ b/doc/hdoc/doc-index-58.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc/doc-index-60.html b/doc/hdoc/doc-index-60.html
--- a/doc/hdoc/doc-index-60.html
+++ b/doc/hdoc/doc-index-60.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -169,6 +173,14 @@
 ><TR
 ><TD
 ><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>&lt;+&gt;&gt;</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3A%3C%2B%3E%3E"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >&lt;/</TD
diff --git a/doc/hdoc/doc-index-62.html b/doc/hdoc/doc-index-62.html
--- a/doc/hdoc/doc-index-62.html
+++ b/doc/hdoc/doc-index-62.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -184,6 +188,14 @@
 ><A HREF="Control-Arrow-ArrowList.html#v%3A%3E%3E."
 >Control.Arrow.ArrowList</A
 >, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>&gt;&gt;&gt;&gt;</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3A%3E%3E%3E%3E"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-A.html b/doc/hdoc/doc-index-A.html
--- a/doc/hdoc/doc-index-A.html
+++ b/doc/hdoc/doc-index-A.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -823,6 +827,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>a_parse_by_mimetype</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_by_mimetype"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >a_parse_html</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"
@@ -959,6 +971,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>a_tagsoup</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_tagsoup"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >a_trace</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"
@@ -1299,22 +1319,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->alwaysErr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AalwaysErr"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->alwaysOK</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AalwaysOK"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >ancestorAxis</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AancestorAxis"
@@ -1331,14 +1335,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->andCheck</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AandCheck"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >appPickle</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AappPickle"
@@ -1359,6 +1355,38 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>application_xhtml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xhtml"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>application_xml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>application_xml_dtd</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml_dtd"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>application_xml_external_parsed_entity</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml_external_parsed_entity"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >applyA</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"
@@ -1483,6 +1511,22 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XSLT-Compilation.html#v%3AassembleStylesheet"
 >Text.XML.HXT.XSLT.Compilation</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>assert</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Aassert"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>assertMaybe</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AassertMaybe"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/doc-index-B.html b/doc/hdoc/doc-index-B.html
--- a/doc/hdoc/doc-index-B.html
+++ b/doc/hdoc/doc-index-B.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -181,9 +185,9 @@
 ><TD CLASS="indexentry"
 >buildUniversalName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc/doc-index-C.html b/doc/hdoc/doc-index-C.html
--- a/doc/hdoc/doc-index-C.html
+++ b/doc/hdoc/doc-index-C.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -227,6 +231,30 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>CheckA</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>CheckInteger</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckInteger"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>CheckString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >Child</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AChild"
@@ -923,6 +951,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>checkWith</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AcheckWith"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >childAxis</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AchildAxis"
@@ -998,6 +1034,14 @@
 >, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
+><TD CLASS="indexentry"
+>closesHtmlTag</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AclosesHtmlTag"
+>Text.XML.HXT.Parser.HtmlParsec</A
+>, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
+></TR
+><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >cmt</TD
 ></TR
@@ -1104,6 +1148,174 @@
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3Acomment"
 >Text.XML.HXT.Parser.XmlParsec</A
 >, Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compBool</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompBool"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compBoolExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompBoolExpr"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compFP</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompFP"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compGenExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompGenExpr"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compIntExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompIntExpr"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compLP</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompLP"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compNT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNT"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compNTA</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNTA"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compNTE</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNTE"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compNameT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNameT"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compNumber</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNumber"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compNumberExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNumberExpr"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compPath</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompPath"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compPred</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompPred"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compPred1</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompPred1"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compRelPathExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompRelPathExpr"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompString"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compStringExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompStringExpr"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compXP</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompXP"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compXPath</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompXPath"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compXS</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompXS"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-D.html b/doc/hdoc/doc-index-D.html
--- a/doc/hdoc/doc-index-D.html
+++ b/doc/hdoc/doc-index-D.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -385,6 +389,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>deadEndStreet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AdeadEndStreet"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >decimalStringToInt</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AdecimalStringToInt"
@@ -458,6 +470,14 @@
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Adeep"
 >Data.Tree.NTree.Filter</A
 >, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>deep'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Adeep%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-E.html b/doc/hdoc/doc-index-E.html
--- a/doc/hdoc/doc-index-E.html
+++ b/doc/hdoc/doc-index-E.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -523,35 +527,43 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>equalNodeSet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AequalNodeSet"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >equalQName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >equalQNameBy</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQNameBy"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQNameBy"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >equivQName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivQName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >equivUri</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivUri"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivUri"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -660,6 +672,14 @@
 ><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AerrorMsgLoggingAndToStderr"
 >Text.XML.HXT.DOM.XmlState</A
 >, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>errorMsgParam</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgParam"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-F.html b/doc/hdoc/doc-index-F.html
--- a/doc/hdoc/doc-index-F.html
+++ b/doc/hdoc/doc-index-F.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -226,6 +230,22 @@
 ></TD
 ></TR
 ><TR
+><TD CLASS="indexentry"
+>FunctionTable</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>failure</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Afailure"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >fatal</TD
 ></TR
@@ -244,6 +264,22 @@
 ><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Afatal"
 >Text.XML.HXT.DOM.XmlTreeFilter</A
 >, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>fctTableList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AfctTableList"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>fctTableString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AfctTableString"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-G.html b/doc/hdoc/doc-index-G.html
--- a/doc/hdoc/doc-index-G.html
+++ b/doc/hdoc/doc-index-G.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -314,6 +318,14 @@
 >, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
+><TD CLASS="indexentry"
+>getAttrl'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetAttrl%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
 ><TD CLASS="indexentry" COLSPAN="2"
 >getBaseURI</TD
 ></TR
@@ -395,6 +407,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>getChildren'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetChildren%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >getChildrenNT</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Data-NavTree.html#v%3AgetChildrenNT"
@@ -581,8 +601,8 @@
 ><TD CLASS="indexentry"
 >getElemAndAttrNodeSet</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetElemAndAttrNodeSet"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetElemAndAttrNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
@@ -609,8 +629,8 @@
 ><TD CLASS="indexentry"
 >getElemNodeSet</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetElemNodeSet"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetElemNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
@@ -733,8 +753,8 @@
 ><TD CLASS="indexentry"
 >getFromNodeSet</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetFromNodeSet"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetFromNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
@@ -1479,6 +1499,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>getXP</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXP"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >getXPath</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPath"
@@ -1493,8 +1521,8 @@
 ><TD CLASS="indexannot"
 >1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathNodeSet"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
@@ -1530,39 +1558,95 @@
 >, Text.XML.HXT.XPath</TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
+><TD CLASS="indexentry" COLSPAN="2"
 >getXPathTrees</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTrees"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTrees"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTrees"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry" COLSPAN="2"
 >getXPathTreesInDoc</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesInDoc"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDoc"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesInDoc"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry" COLSPAN="2"
 >getXPathTreesInDocWithNsEnv</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesInDocWithNsEnv"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDocWithNsEnv"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesInDocWithNsEnv"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry" COLSPAN="2"
 >getXPathTreesWithNsEnv</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesWithNsEnv"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesWithNsEnv"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesWithNsEnv"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
 ><TD CLASS="indexentry"
+>getXPathTreesWithNsEnvSimple</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesWithNsEnvSimple"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >getXPathWithNsEnv</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XPath-XPathEval.html#v%3AgetXPathWithNsEnv"
@@ -1652,6 +1736,14 @@
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"
 >Data.Tree.NTree.Filter</A
 >, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>guards'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Aguards%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-H.html b/doc/hdoc/doc-index-H.html
--- a/doc/hdoc/doc-index-H.html
+++ b/doc/hdoc/doc-index-H.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc/doc-index-I.html b/doc/hdoc/doc-index-I.html
--- a/doc/hdoc/doc-index-I.html
+++ b/doc/hdoc/doc-index-I.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -975,6 +979,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>isHtmlMimeType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisHtmlMimeType"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >isIOA</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIO.html#v%3AisIOA"
@@ -2512,6 +2524,14 @@
 ><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlLetter"
 >Text.XML.HXT.DOM.Unicode</A
 ></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>isXmlMimeType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisXmlMimeType"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-K.html b/doc/hdoc/doc-index-K.html
--- a/doc/hdoc/doc-index-K.html
+++ b/doc/hdoc/doc-index-K.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -211,17 +215,17 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->k_enitity</TD
+>k_entities</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_enitity"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entities"
 >Text.XML.HXT.DOM.XmlKeywords</A
 >, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->k_entities</TD
+>k_entity</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entities"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entity"
 >Text.XML.HXT.DOM.XmlKeywords</A
 >, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
diff --git a/doc/hdoc/doc-index-L.html b/doc/hdoc/doc-index-L.html
--- a/doc/hdoc/doc-index-L.html
+++ b/doc/hdoc/doc-index-L.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -333,9 +337,9 @@
 ><TD CLASS="indexentry"
 >localPart</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AlocalPart"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-M.html b/doc/hdoc/doc-index-M.html
--- a/doc/hdoc/doc-index-M.html
+++ b/doc/hdoc/doc-index-M.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -315,6 +319,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>mergeA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AmergeA"
+>Control.Arrow.ArrowList</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >mergeAttrl</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmergeAttrl"
@@ -339,6 +351,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>mk</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Amk"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >mkAbsURI</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AmkAbsURI"
@@ -645,9 +665,9 @@
 ><TD CLASS="indexentry"
 >mkName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -661,9 +681,9 @@
 ><TD CLASS="indexentry"
 >mkNsName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -697,9 +717,9 @@
 ><TD CLASS="indexentry"
 >mkPrefixLocalPart</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -721,9 +741,9 @@
 ><TD CLASS="indexentry"
 >mkQName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkQName"
->Text.XML.HXT.XSLT.Common</A
-></TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -889,9 +909,9 @@
 ><TD CLASS="indexentry"
 >mkSNsName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkSNsName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkSNsName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -1300,6 +1320,14 @@
 ><A HREF="Data-Tree-NTree-Filter.html#v%3Amulti"
 >Data.Tree.NTree.Filter</A
 >, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>multi'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Amulti%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-N.html b/doc/hdoc/doc-index-N.html
--- a/doc/hdoc/doc-index-N.html
+++ b/doc/hdoc/doc-index-N.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -533,9 +537,9 @@
 ><TD CLASS="indexentry"
 >namePrefix</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamePrefix"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -565,9 +569,9 @@
 ><TD CLASS="indexentry"
 >namespaceUri</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamespaceUri"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -741,9 +745,9 @@
 ><TD CLASS="indexentry"
 >normalizeNsUri</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnormalizeNsUri"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnormalizeNsUri"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -849,9 +853,9 @@
 ><TD CLASS="indexentry"
 >nullQName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnullQName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnullQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -871,6 +875,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Validator-RE.html#v%3Anullable"
 >Text.XML.HXT.Validator.RE</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>numParamValid</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AnumParamValid"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/doc-index-O.html b/doc/hdoc/doc-index-O.html
--- a/doc/hdoc/doc-index-O.html
+++ b/doc/hdoc/doc-index-O.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -227,6 +231,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>ok</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Aok"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >oneOrMore</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AoneOrMore"
@@ -260,14 +272,6 @@
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AorElse"
 >Data.Tree.NTree.Filter</A
 >, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->orErr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AorErr"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-P.html b/doc/hdoc/doc-index-P.html
--- a/doc/hdoc/doc-index-P.html
+++ b/doc/hdoc/doc-index-P.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -414,6 +418,26 @@
 >, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
+><TD CLASS="indexentry" COLSPAN="2"
+>parseHtmlTagSoup</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlTagSoup"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-TagSoup.html#v%3AparseHtmlTagSoup"
+>Text.XML.HXT.Parser.TagSoup</A
+></TD
+></TR
+><TR
 ><TD CLASS="indexentry"
 >parseHtmlText</TD
 ><TD CLASS="indexlinks"
@@ -799,6 +823,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>performCheck</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AperformCheck"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >pickleDoc</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3ApickleDoc"
@@ -857,6 +889,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>prepareContents</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AprepareContents"
+>Text.XML.HXT.Arrow.WriteDocument</A
+>, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >prepareXSLTDocument</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XSLT-Compilation.html#v%3AprepareXSLTDocument"
@@ -1005,8 +1045,8 @@
 ><TD CLASS="indexentry"
 >processFromNodeSet</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessFromNodeSet"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessFromNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
@@ -1105,16 +1145,16 @@
 ><TD CLASS="indexentry"
 >processXPathTrees</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessXPathTrees"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessXPathTrees"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >processXPathTreesWithNsEnv</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessXPathTreesWithNsEnv"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessXPathTreesWithNsEnv"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
diff --git a/doc/hdoc/doc-index-Q.html b/doc/hdoc/doc-index-Q.html
--- a/doc/hdoc/doc-index-Q.html
+++ b/doc/hdoc/doc-index-Q.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -173,17 +177,17 @@
 ><TD CLASS="indexentry"
 >QN</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AQN"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AQN"
+>Text.XML.HXT.DOM.QualifiedName</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >QName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -223,14 +227,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->qn2String</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-Utils.html#v%3Aqn2String"
->Text.XML.HXT.RelaxNG.Utils</A
->, Text.XML.HXT.RelaxNG.DataTypeLibUtils</TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >qtag</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3Aqtag"
@@ -241,9 +237,9 @@
 ><TD CLASS="indexentry"
 >qualifiedName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AqualifiedName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-R.html b/doc/hdoc/doc-index-R.html
--- a/doc/hdoc/doc-index-R.html
+++ b/doc/hdoc/doc-index-R.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc/doc-index-S.html b/doc/hdoc/doc-index-S.html
--- a/doc/hdoc/doc-index-S.html
+++ b/doc/hdoc/doc-index-S.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -1622,6 +1626,14 @@
 >stringValid</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AstringValid"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>stringValidFT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AstringValidFT"
 >Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
 ></TD
 ></TR
diff --git a/doc/hdoc/doc-index-T.html b/doc/hdoc/doc-index-T.html
--- a/doc/hdoc/doc-index-T.html
+++ b/doc/hdoc/doc-index-T.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -433,6 +437,38 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>textOfXNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AtextOfXNode"
+>Text.XML.HXT.DOM.XmlTreeFunctions</A
+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>text_html</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_html"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>text_xml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_xml"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>text_xml_external_parsed_entity</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_xml_external_parsed_entity"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >thePicklerDTD</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AthePicklerDTD"
@@ -471,6 +507,22 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>this'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Athis%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>this''</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Athis%27%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >thisM</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Data-Tree-NTree-Filter.html#v%3AthisM"
@@ -503,6 +555,22 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>toNumber</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AtoNumber"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>toThis</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AtoThis"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >toTreel</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AtoTreel"
@@ -895,6 +963,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AtryFetchAttribute"
 >Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>tryGetXPath</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AtryGetXPath"
+>Text.XML.HXT.Arrow.XPathSimple</A
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc/doc-index-U.html b/doc/hdoc/doc-index-U.html
--- a/doc/hdoc/doc-index-U.html
+++ b/doc/hdoc/doc-index-U.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -393,9 +397,9 @@
 ><TD CLASS="indexentry"
 >universalName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AuniversalName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AuniversalName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -409,12 +413,20 @@
 ><TD CLASS="indexentry"
 >universalUri</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AuniversalUri"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AuniversalUri"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>unlistA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AunlistA"
+>Control.Arrow.ArrowList</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >unparseXmlDoc</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-EditFilters.html#v%3AunparseXmlDoc"
@@ -438,6 +450,14 @@
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AunsetParam"
 >Text.XML.HXT.Arrow.XmlIOStateArrow</A
 >, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>unwrap</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Aunwrap"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc/doc-index-V.html b/doc/hdoc/doc-index-V.html
--- a/doc/hdoc/doc-index-V.html
+++ b/doc/hdoc/doc-index-V.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc/doc-index-W.html b/doc/hdoc/doc-index-W.html
--- a/doc/hdoc/doc-index-W.html
+++ b/doc/hdoc/doc-index-W.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -324,14 +328,6 @@
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AwithTraceLevel"
 >Text.XML.HXT.Arrow.XmlIOStateArrow</A
 >, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->withVal</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AwithVal"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry" COLSPAN="2"
diff --git a/doc/hdoc/doc-index-X.html b/doc/hdoc/doc-index-X.html
--- a/doc/hdoc/doc-index-X.html
+++ b/doc/hdoc/doc-index-X.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -287,6 +291,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>XPArrow</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >XPCommentNode</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#v%3AXPCommentNode"
@@ -525,6 +537,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xIndex</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AxIndex"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xMLDecl</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Parser-XmlParsec.html#v%3AxMLDecl"
@@ -541,6 +561,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xNumber'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AxNumber%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xPValue2NodeSet</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XPath-XPathToNodeSet.html#v%3AxPValue2NodeSet"
@@ -605,6 +633,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AxString"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xattr</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3Axattr"
@@ -1235,6 +1271,46 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xsd_ENTITIES</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_ENTITIES"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_ENTITY</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_ENTITY"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_ID</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_ID"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_IDREF</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_IDREF"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_IDREFS</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_IDREFS"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xsd_NCName</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NCName"
@@ -1243,6 +1319,38 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xsd_NMTOKEN</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NMTOKEN"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_NMTOKENS</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NMTOKENS"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_NOTATION</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NOTATION"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_Name</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_Name"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xsd_QName</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_QName"
@@ -1259,6 +1367,22 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xsd_base64Binary</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_base64Binary"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_decimal</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_decimal"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xsd_enumeration</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_enumeration"
@@ -1267,6 +1391,30 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xsd_fractionDigits</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_fractionDigits"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_hexBinary</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_hexBinary"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_language</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_language"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xsd_length</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_length"
@@ -1275,6 +1423,22 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xsd_maxExclusive</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_maxExclusive"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_maxInclusive</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_maxInclusive"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xsd_maxLength</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_maxLength"
@@ -1283,6 +1447,22 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xsd_minExclusive</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_minExclusive"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_minInclusive</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_minInclusive"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xsd_minLength</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_minLength"
@@ -1291,6 +1471,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xsd_normalizedString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_normalizedString"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xsd_pattern</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_pattern"
@@ -1302,6 +1490,22 @@
 >xsd_string</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_string"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_token</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_token"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_totalDigits</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_totalDigits"
 >Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
 ></TD
 ></TR
diff --git a/doc/hdoc/doc-index-Z.html b/doc/hdoc/doc-index-Z.html
--- a/doc/hdoc/doc-index-Z.html
+++ b/doc/hdoc/doc-index-Z.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc/doc-index.html b/doc/hdoc/doc-index.html
--- a/doc/hdoc/doc-index.html
+++ b/doc/hdoc/doc-index.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The complete API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -141,6 +141,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc/index.html b/doc/hdoc/index.html
--- a/doc/hdoc/index.html
+++ b/doc/hdoc/index.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The complete API</TITLE
+>Haskell Xml Toolbox 7.5: The complete API</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
 ></SCRIPT
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The complete API</TD
+>Haskell Xml Toolbox 7.5: The complete API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -583,8 +583,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html"
->Text.XML.HXT.Arrow.XmlArrow</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html"
+>Text.XML.HXT.Arrow.XPath</A
 ></TD
 ><TD
 ></TD
@@ -593,8 +593,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html"
+>Text.XML.HXT.Arrow.XPathSimple</A
 ></TD
 ><TD
 ></TD
@@ -603,8 +603,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html"
+>Text.XML.HXT.Arrow.XmlArrow</A
 ></TD
 ><TD
 ></TD
@@ -613,14 +613,24 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
 ></TD
 ><TD
 ></TD
 ><TD
 ></TD
 ></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 42em"
+><A HREF="Text-XML-HXT-Arrow-XmlNode.html"
+>Text.XML.HXT.Arrow.XmlNode</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -700,6 +710,16 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html"
+>Text.XML.HXT.DOM.QualifiedName</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-DOM-TypeDefs.html"
 >Text.XML.HXT.DOM.TypeDefs</A
 ></TD
@@ -974,6 +994,16 @@
 ><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-Parser-ProtocolHandlerUtil.html"
 >Text.XML.HXT.Parser.ProtocolHandlerUtil</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 42em"
+><A HREF="Text-XML-HXT-Parser-TagSoup.html"
+>Text.XML.HXT.Parser.TagSoup</A
 ></TD
 ><TD
 ></TD
diff --git a/doc/hdoc_arrow/Control-Arrow-ArrowIO.html b/doc/hdoc_arrow/Control-Arrow-ArrowIO.html
--- a/doc/hdoc_arrow/Control-Arrow-ArrowIO.html
+++ b/doc/hdoc_arrow/Control-Arrow-ArrowIO.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowIO.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Control-Arrow-ArrowIf.html b/doc/hdoc_arrow/Control-Arrow-ArrowIf.html
--- a/doc/hdoc_arrow/Control-Arrow-ArrowIf.html
+++ b/doc/hdoc_arrow/Control-Arrow-ArrowIf.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowIf.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Control-Arrow-ArrowList.html b/doc/hdoc_arrow/Control-Arrow-ArrowList.html
--- a/doc/hdoc_arrow/Control-Arrow-ArrowList.html
+++ b/doc/hdoc_arrow/Control-Arrow-ArrowList.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowList.hs"
 >Source code</A
@@ -202,6 +202,12 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AunlistA"
+>unlistA</A
+> :: a [b] b</TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Athis"
 >this</A
 > :: a b b</TD
@@ -262,6 +268,12 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AmergeA"
+>mergeA</A
+> :: (a (a1, b1) a1 -&gt; a (a1, b1) b1 -&gt; a (a1, b1) c) -&gt; a (a1, b1) c</TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Aperform"
 >perform</A
 > :: a b c -&gt; a b b</TD
@@ -590,6 +602,36 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3AunlistA"
+></A
+><B
+>unlistA</B
+> :: a [b] b</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>the inverse of <TT
+><A HREF="Control-Arrow-ArrowList.html#v%3AlistA"
+>listA</A
+></TT
+>
+</P
+><PRE
+> listA af &gt;&gt;&gt; unlistA = af </PRE
+><P
+>unlistA is defined as <TT
+> arrL id </TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Athis"
 ></A
 ><B
@@ -1034,6 +1076,57 @@
 >, <TT
 ><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"
 >$&lt;</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmergeA"
+></A
+><B
+>mergeA</B
+> :: (a (a1, b1) a1 -&gt; a (a1, b1) b1 -&gt; a (a1, b1) c) -&gt; a (a1, b1) c</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>merge the result pairs of an arrow with type <TT
+>a a1 (b1, b2)</TT
+>
+ by combining the tuple components with the <TT
+>op</TT
+> arrow
+</P
+><P
+>examples with simple list arrows working on strings and XmlTrees
+</P
+><PRE
+>     a1 :: a String (XmlTree, XmlTree)
+     a1 = selem &quot;foo&quot; [this &gt;&gt;&gt; mkText]
+ 	  &amp;&amp;&amp;
+ 	  selem &quot;bar&quot; [arr (++&quot;0&quot;) &gt;&gt;&gt; mkText]
+ 
+     runLA (a1 &gt;&gt;&gt; mergeA (&lt;+&gt;) &gt;&gt;&gt; xshow this) &quot;42&quot; == [&quot;&lt;foo&gt;42&lt;/foo&gt;&quot;,&quot;&lt;bar&gt;420&lt;/bar&gt;&quot;]
+     runLA (a1 &gt;&gt;&gt; mergeA (+=)  &gt;&gt;&gt; xshow this) &quot;42&quot; == [&quot;&lt;foo&gt;42&lt;bar&gt;420&lt;/bar&gt;&lt;/foo&gt;&quot;]
+</PRE
+><P
+>see also: <TT
+><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"
+>applyA</A
+></TT
+>, <TT
+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C"
+>$&lt;</A
+></TT
+> and += in class <TT
+><A HREF="Text-XML-HXT-Arrow.html#t%3AArrowXml"
+>ArrowXml</A
 ></TT
 >
 </P
diff --git a/doc/hdoc_arrow/Control-Arrow-ArrowState.html b/doc/hdoc_arrow/Control-Arrow-ArrowState.html
--- a/doc/hdoc_arrow/Control-Arrow-ArrowState.html
+++ b/doc/hdoc_arrow/Control-Arrow-ArrowState.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowState.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Control-Arrow-ArrowStrict.html b/doc/hdoc_arrow/Control-Arrow-ArrowStrict.html
--- a/doc/hdoc_arrow/Control-Arrow-ArrowStrict.html
+++ b/doc/hdoc_arrow/Control-Arrow-ArrowStrict.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowStrict.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Control-Arrow-ArrowTree.html b/doc/hdoc_arrow/Control-Arrow-ArrowTree.html
--- a/doc/hdoc_arrow/Control-Arrow-ArrowTree.html
+++ b/doc/hdoc_arrow/Control-Arrow-ArrowTree.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ArrowTree.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Control-Arrow-IOListArrow.html b/doc/hdoc_arrow/Control-Arrow-IOListArrow.html
--- a/doc/hdoc_arrow/Control-Arrow-IOListArrow.html
+++ b/doc/hdoc_arrow/Control-Arrow-IOListArrow.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/IOListArrow.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Control-Arrow-IOStateListArrow.html b/doc/hdoc_arrow/Control-Arrow-IOStateListArrow.html
--- a/doc/hdoc_arrow/Control-Arrow-IOStateListArrow.html
+++ b/doc/hdoc_arrow/Control-Arrow-IOStateListArrow.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/IOStateListArrow.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Control-Arrow-ListArrow.html b/doc/hdoc_arrow/Control-Arrow-ListArrow.html
--- a/doc/hdoc_arrow/Control-Arrow-ListArrow.html
+++ b/doc/hdoc_arrow/Control-Arrow-ListArrow.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ListArrow.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Control-Arrow-ListArrows.html b/doc/hdoc_arrow/Control-Arrow-ListArrows.html
--- a/doc/hdoc_arrow/Control-Arrow-ListArrows.html
+++ b/doc/hdoc_arrow/Control-Arrow-ListArrows.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/ListArrows.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Control-Arrow-StateListArrow.html b/doc/hdoc_arrow/Control-Arrow-StateListArrow.html
--- a/doc/hdoc_arrow/Control-Arrow-StateListArrow.html
+++ b/doc/hdoc_arrow/Control-Arrow-StateListArrow.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Arrow/StateListArrow.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Control-Monad-MonadStateIO.html b/doc/hdoc_arrow/Control-Monad-MonadStateIO.html
--- a/doc/hdoc_arrow/Control-Monad-MonadStateIO.html
+++ b/doc/hdoc_arrow/Control-Monad-MonadStateIO.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Monad/MonadStateIO.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Control-Strategies-DeepSeq.html b/doc/hdoc_arrow/Control-Strategies-DeepSeq.html
--- a/doc/hdoc_arrow/Control-Strategies-DeepSeq.html
+++ b/doc/hdoc_arrow/Control-Strategies-DeepSeq.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Strategies/DeepSeq.hs"
 >Source code</A
@@ -212,7 +212,7 @@
 ><TD CLASS="decl"
 ><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
 >DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
diff --git a/doc/hdoc_arrow/Data-AssocList.html b/doc/hdoc_arrow/Data-AssocList.html
--- a/doc/hdoc_arrow/Data-AssocList.html
+++ b/doc/hdoc_arrow/Data-AssocList.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/AssocList.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Data-Char-UTF8.html b/doc/hdoc_arrow/Data-Char-UTF8.html
--- a/doc/hdoc_arrow/Data-Char-UTF8.html
+++ b/doc/hdoc_arrow/Data-Char-UTF8.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Char/UTF8.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Data-NavTree.html b/doc/hdoc_arrow/Data-NavTree.html
--- a/doc/hdoc_arrow/Data-NavTree.html
+++ b/doc/hdoc_arrow/Data-NavTree.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/NavTree.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Data-Tree-Class.html b/doc/hdoc_arrow/Data-Tree-Class.html
--- a/doc/hdoc_arrow/Data-Tree-Class.html
+++ b/doc/hdoc_arrow/Data-Tree-Class.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/Class.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Data-Tree-NTree-TypeDefs.html b/doc/hdoc_arrow/Data-Tree-NTree-TypeDefs.html
--- a/doc/hdoc_arrow/Data-Tree-NTree-TypeDefs.html
+++ b/doc/hdoc_arrow/Data-Tree-NTree-TypeDefs.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/TypeDefs.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DOMInterface.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-DOMInterface.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DOMInterface.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-DOMInterface.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DOMInterface.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DTDProcessing.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-DTDProcessing.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DTDProcessing.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-DTDProcessing.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DTDProcessing.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentInput.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentInput.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentInput.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentInput.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DocumentInput.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentOutput.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentOutput.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentOutput.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-DocumentOutput.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/DocumentOutput.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Edit.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Edit.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Edit.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Edit.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Edit.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Namespace.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Namespace.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Namespace.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Namespace.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Namespace.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-ParserInterface.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-ParserInterface.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-ParserInterface.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-ParserInterface.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ParserInterface.hs"
 >Source code</A
@@ -285,6 +285,20 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AparseHtmlTagSoup"
+>parseHtmlTagSoup</A
+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
+>ArrowList</A
+> a =&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3AvalidateDoc"
 >validateDoc</A
 > :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
@@ -593,6 +607,22 @@
 > :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
 >ArrowList</A
 > a =&gt; a String <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AparseHtmlTagSoup"
+></A
+><B
+>parseHtmlTagSoup</B
+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
+>ArrowList</A
+> a =&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; a (String, String) <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
 ></TD
 ></TR
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-DTD.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-DTD.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-DTD.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-DTD.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle/DTD.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-Schema.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-Schema.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-Schema.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-Schema.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle/Schema.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-Xml.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-Xml.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-Xml.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle-Xml.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle/Xml.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-Pickle.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/Pickle.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-ProcessDocument.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-ProcessDocument.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-ProcessDocument.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-ProcessDocument.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ProcessDocument.hs"
 >Source code</A
@@ -128,7 +128,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AparseHtmlDocument"
 >parseHtmlDocument</A
-> :: Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
+> :: Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -249,7 +249,7 @@
 ></A
 ><B
 >parseHtmlDocument</B
-> :: Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
+> :: Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
 >IOStateArrow</A
 > s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-ReadDocument.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-ReadDocument.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-ReadDocument.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-ReadDocument.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/ReadDocument.hs"
 >Source code</A
@@ -245,6 +245,31 @@
 </LI
 ><LI
 > <TT
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_tagsoup"
+>a_tagsoup</A
+></TT
+> : use light weight and lasy parser based on tagsoup lib
+</LI
+><LI
+> <TT
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_by_mimetype"
+>a_parse_by_mimetype</A
+></TT
+> : select the parser by the mime type of the document
+                          (pulled out of the HTTP header). When the mime type is set to &quot;text/html&quot;
+			  the HTML parser (parsec or tagsoup) is taken, when it's set to
+			  &quot;text/xml&quot; or &quot;text/xhtml&quot; the XML parser (parsec or tagsoup) is taken.
+			  If the mime type is something else no further processing is performed,
+			  the contents is given back to the application in form of a single text node.
+			  If the default document encoding (<TT
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_encoding"
+>a_encoding</A
+></TT
+>) is set to isoLatin1, this even enables processing
+			  of arbitray binary data.
+</LI
+><LI
+> <TT
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_validate"
 >a_validate</A
 ></TT
@@ -394,6 +419,7 @@
 ><PRE
 > readDocument [ (a_parse_html, &quot;1&quot;)
               , (a_encoding, isoLatin1)
+              , (a_tagsoup,    &quot;1&quot;)
               ] &quot;&quot;
 </PRE
 ><P
@@ -401,7 +427,8 @@
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisoLatin1"
 >isoLatin1</A
 ></TT
->
+>,
+parsing is done with tagsoup parser
 </P
 ><PRE
 > readDocument [ (a_parse_html,     &quot;1&quot;)
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-WriteDocument.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-WriteDocument.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-WriteDocument.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-WriteDocument.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/WriteDocument.hs"
 >Source code</A
@@ -135,6 +135,24 @@
 >XmlTree</A
 > String</TD
 ></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprepareContents"
+>prepareContents</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
+>IOStateArrow</A
+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -339,6 +357,31 @@
 >writeDocument</A
 ></TT
 >.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AprepareContents"
+></A
+><B
+>prepareContents</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"
+>IOStateArrow</A
+> s <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>indent and format output
 </TD
 ></TR
 ><TR
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XPath.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XPath.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XPath.html
@@ -0,0 +1,745 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Text.XML.HXT.Arrow.XPath</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
+><TD CLASS="topbut"
+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XPath.hs"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Text.XML.HXT.Arrow.XPath</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Arrows for working with XPath and XmlNodeSets.
+</P
+><P
+>Most of the XPath arrows come in two versions,
+   one without dealing with namespaces, element and attribute names
+   in XPath expressions are taken as they ar ignoring any prefix:localname structure.
+</P
+><P
+>The second variant uses a namespace environment for associating the right
+   namespace for the appropriate prefix. an entry for the empty prefix
+   defines the default namespace for the expression.
+</P
+><P
+>The second variant should be used, when in the application namespaces
+   are significant, that means when namespace propagation is done for
+   the documents to be processed.
+</P
+><P
+>NodeSets are sets of &quot;pointer&quot; into an XML tree to reference
+   subnodes. These nodesets can be computed by XPath expressions or
+   normal arrows. The nodesets can then be used later for selecting
+   or modifying subtrees of this tree in an efficient way.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Synopsis</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTreesInDoc"
+>getXPathTreesInDoc</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTreesInDocWithNsEnv"
+>getXPathTreesInDocWithNsEnv</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTrees"
+>getXPathTrees</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTreesWithNsEnv"
+>getXPathTreesWithNsEnv</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetElemNodeSet"
+>getElemNodeSet</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetElemAndAttrNodeSet"
+>getElemAndAttrNodeSet</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathNodeSet"
+>getXPathNodeSet</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetFromNodeSet"
+>getFromNodeSet</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessXPathTrees"
+>processXPathTrees</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessXPathTreesWithNsEnv"
+>processXPathTreesWithNsEnv</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessFromNodeSet"
+>processFromNodeSet</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTreesInDoc"
+></A
+><B
+>getXPathTreesInDoc</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Select parts of a whole XML document with root node by a XPath expression.
+</P
+><P
+>The main filter for selecting parts of a document via XPath.
+</P
+><P
+>The string argument must be a XPath expression with an absolute location path,
+ the argument tree must be a complete document tree.
+</P
+><P
+>Before evaluating the xpath query, the document is canonicalized
+ with <TT
+><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeForXPath"
+>canonicalizeForXPath</A
+></TT
+>
+</P
+><P
+>Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
+ XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
+ are convertet to text nodes.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTreesInDocWithNsEnv"
+></A
+><B
+>getXPathTreesInDocWithNsEnv</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Same as <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDoc"
+>getXPathTreesInDoc</A
+></TT
+> but with namespace environment for the XPath names
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTrees"
+></A
+><B
+>getXPathTrees</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Select parts of an arbitrary XML tree by a XPath expression.
+</P
+><P
+>The main filter for selecting parts of an arbitrary XML tree via XPath.
+ The string argument must be a XPath expression with an absolute location path,
+ There are no restrictions on the argument tree.
+</P
+><P
+>No canonicalization is performed before evaluating the query
+</P
+><P
+>Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
+ XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
+ are convertet to text nodes.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTreesWithNsEnv"
+></A
+><B
+>getXPathTreesWithNsEnv</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Same as <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTrees"
+>getXPathTrees</A
+></TT
+> but with namespace environment for the XPath names
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetElemNodeSet"
+></A
+><B
+>getElemNodeSet</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>compute a node set from a tree, containing all nodes selected by the predicate arrow
+</P
+><P
+>computation of the set of element nodes with name &quot;a&quot; is done with
+</P
+><PRE
+> getElemNodeSet (hasName &quot;a&quot;)
+</PRE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetElemAndAttrNodeSet"
+></A
+><B
+>getElemAndAttrNodeSet</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>compute a node set from a tree, containing all nodes including attribute nodes
+ elected by the predicate arrow
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathNodeSet"
+></A
+><B
+>getXPathNodeSet</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Select a set of nodes via an XPath expression from an arbitray XML tree
+</P
+><P
+>The result is a set of &quot;pointers&quot; to nodes. This set can be used to
+ access or modify the values of the subnodes in subsequent calls to <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetFromNodeSet"
+>getFromNodeSet</A
+></TT
+> or <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessFromNodeSet"
+>processFromNodeSet</A
+></TT
+>.
+</P
+><P
+>This function enables for parsing an XPath expressions and traversing the tree for node selection once
+ and reuse this result possibly many times for later selection and modification operations.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetFromNodeSet"
+></A
+><B
+>getFromNodeSet</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>select all subtrees specified by a previously computed node set
+</P
+><P
+>the following law holds:
+</P
+><PRE
+> getFromNodeSet $&lt; getElemNodeSet f == multi f
+</PRE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AprocessXPathTrees"
+></A
+><B
+>processXPathTrees</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>process all subtrees selected by an XPath expression
+</P
+><P
+>the following law holds:
+</P
+><PRE
+> processXPathTrees p xpathExpr == processFromNodeSet p $&lt; getXPathNodeSet xpathExpr
+</PRE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AprocessXPathTreesWithNsEnv"
+></A
+><B
+>processXPathTreesWithNsEnv</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Same as <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessXPathTrees"
+>processXPathTrees</A
+></TT
+> but with namespace environment for the XPath names
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AprocessFromNodeSet"
+></A
+><B
+>processFromNodeSet</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
+>XmlNodeSet</A
+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>process all subtrees specified by a previously computed node set in bottom up manner
+</P
+><P
+>the follwoing law holds:
+</P
+><PRE
+> processFromNodeSet g $&lt; getElemNodeSet f == processBottomUp (g `when` f)
+</PRE
+><P
+>when attributes are contained in the node set (see <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetElemAndAttrNodeSet"
+>getElemAndAttrNodeSet</A
+></TT
+>), these are processed
+ after the children and before the node itself
+</P
+><P
+>the advantage of processFromNodeSet is the separation of the selection of set of nodes to be processed (e.g. modified)
+ from the real proccessing. The selection sometimes can be done once, the processing possibly many times.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XPathSimple.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XPathSimple.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XPathSimple.html
@@ -0,0 +1,1877 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Text.XML.HXT.Arrow.XPathSimple</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
+><TD CLASS="topbut"
+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XPathSimple.hs"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Text.XML.HXT.Arrow.XPathSimple</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>XPath selection for simple XPath expressions with list arrows
+   instead of navigatable trees.
+</P
+><P
+>It is recomended, that this module is imported qualified,
+   e.g like <TT
+>Text.XML.HXT.Arrow.XPathSimple as XS</TT
+>.
+</P
+><P
+>The arrows defined in this module have the same
+   functionality as the functions in <TT
+><A HREF="Text-XML-HXT-Arrow.html#t%3AXPath"
+>XPath</A
+></TT
+>.
+</P
+><P
+>The computation modell in XPath is a navigatable tree,
+   that means a tree wicht can be traveresed in arbitrary directions,
+   not only from the root to the leafs. Sometimes this modell
+   leads to inefficent XPath processing for simple queries, which
+   only need a top down tree traversal.
+</P
+><P
+>When evaluating an XPath expression with these functions, first an attempt is made
+   to map the XPath expression to a pure arrow. If this is possible
+   due to the siplicity of the XPath expressions, the result is computed
+   directly, else the query is processed by the corresponding
+   function in <TT
+><A HREF="Text-XML-HXT-Arrow.html#t%3AXPath"
+>XPath</A
+></TT
+>.
+</P
+><P
+>The simple evaluation is possible, when in the XPath expression
+   only the top down axis (self, child, descendant, descendant or self are used,
+   when no builtin functions concerning the position of a node are used,
+   and no comparison of nodes e.g. in node set union is required.
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Synopsis</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTreesInDoc"
+>getXPathTreesInDoc</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTreesInDocWithNsEnv"
+>getXPathTreesInDocWithNsEnv</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTrees"
+>getXPathTrees</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTreesWithNsEnv"
+>getXPathTreesWithNsEnv</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtryGetXPath"
+>tryGetXPath</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXPathTreesWithNsEnvSimple"
+>getXPathTreesWithNsEnvSimple</A
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetXP"
+>getXP</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A HREF="#t%3AXPArrow"
+>XPArrow</A
+> b c = Maybe (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> b c)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Amk"
+>mk</A
+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> b c -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b c</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aunwrap"
+>unwrap</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%3E%3E%3E%3E"
+>(&gt;&gt;&gt;&gt;)</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%26%26%26%26"
+>(&amp;&amp;&amp;&amp;)</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b (b, b)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%3C%2B%3E%3E"
+>(&lt;+&gt;&gt;)</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aguards%27"
+>guards'</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Athis%27"
+>this'</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Athis%27%27"
+>this''</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtoThis"
+>toThis</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetChildren%27"
+>getChildren'</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetAttrl%27"
+>getAttrl'</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Amulti%27"
+>multi'</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Adeep%27"
+>deep'</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AxIndex"
+>xIndex</A
+> :: Int -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> [b] b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AxString"
+>xString</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AxNumber%27"
+>xNumber'</A
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> XPNumber</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AdeadEndStreet"
+>deadEndStreet</A
+> :: Monad m =&gt; m a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompXPath"
+>compXPath</A
+> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompXP"
+>compXP</A
+> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompFP"
+>compFP</A
+> :: MonadPlus m =&gt; [Expr] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompLP"
+>compLP</A
+> :: MonadPlus m =&gt; [XStep] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompXS"
+>compXS</A
+> :: MonadPlus m =&gt; XStep -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompNTE"
+>compNTE</A
+> :: Monad m =&gt; NodeTest -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompNTA"
+>compNTA</A
+> :: Monad m =&gt; NodeTest -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompNameT"
+>compNameT</A
+> :: Monad m =&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompNT"
+>compNT</A
+> :: Monad m =&gt; NodeTest -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompPred"
+>compPred</A
+> :: MonadPlus m =&gt; [Expr] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompPred1"
+>compPred1</A
+> :: MonadPlus m =&gt; Expr -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompRelPathExpr"
+>compRelPathExpr</A
+> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompStringExpr"
+>compStringExpr</A
+> :: MonadPlus m =&gt; Expr -&gt; m String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompNumberExpr"
+>compNumberExpr</A
+> :: MonadPlus m =&gt; Expr -&gt; m XPNumber</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompIntExpr"
+>compIntExpr</A
+> :: MonadPlus m =&gt; Expr -&gt; m Int</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompBoolExpr"
+>compBoolExpr</A
+> :: MonadPlus m =&gt; Expr -&gt; m Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompGenExpr"
+>compGenExpr</A
+> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompString"
+>compString</A
+> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompNumber"
+>compNumber</A
+> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompBool"
+>compBool</A
+> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcompPath"
+>compPath</A
+> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AtoNumber"
+>toNumber</A
+> :: String -&gt; XPNumber</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequalNodeSet"
+>equalNodeSet</A
+> :: Eq a =&gt; [a] -&gt; [a] -&gt; [a]</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTreesInDoc"
+></A
+><B
+>getXPathTreesInDoc</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Same Functionality as <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDoc"
+>getXPathTreesInDoc</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTreesInDocWithNsEnv"
+></A
+><B
+>getXPathTreesInDocWithNsEnv</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Same Functionality as <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDocWithNsEnv"
+>getXPathTreesInDocWithNsEnv</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTrees"
+></A
+><B
+>getXPathTrees</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Same Functionality as <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTrees"
+>getXPathTrees</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTreesWithNsEnv"
+></A
+><B
+>getXPathTreesWithNsEnv</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Same Functionality as <TT
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesWithNsEnv"
+>getXPathTreesWithNsEnv</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AtryGetXPath"
+></A
+><B
+>tryGetXPath</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXPathTreesWithNsEnvSimple"
+></A
+><B
+>getXPathTreesWithNsEnvSimple</B
+> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
+>ArrowXml</A
+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>The xpath interpreter for simple xpath expressions.
+</P
+><P
+>In case of a too complicated or illegal xpath expression an error
+ node is returned, else the list of selected XML trees
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetXP"
+></A
+><B
+>getXP</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
+>NsEnv</A
+> -&gt; String -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3AXPArrow"
+></A
+><B
+>XPArrow</B
+> b c = Maybe (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> b c)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Amk"
+></A
+><B
+>mk</B
+> :: <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> b c -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b c</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aunwrap"
+></A
+><B
+>unwrap</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3A%3E%3E%3E%3E"
+></A
+><B
+>(&gt;&gt;&gt;&gt;)</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3A%26%26%26%26"
+></A
+><B
+>(&amp;&amp;&amp;&amp;)</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b (b, b)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3A%3C%2B%3E%3E"
+></A
+><B
+>(&lt;+&gt;&gt;)</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aguards%27"
+></A
+><B
+>guards'</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Athis%27"
+></A
+><B
+>this'</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Athis%27%27"
+></A
+><B
+>this''</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AtoThis"
+></A
+><B
+>toThis</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> b b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetChildren%27"
+></A
+><B
+>getChildren'</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AgetAttrl%27"
+></A
+><B
+>getAttrl'</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Amulti%27"
+></A
+><B
+>multi'</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Adeep%27"
+></A
+><B
+>deep'</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AxIndex"
+></A
+><B
+>xIndex</B
+> :: Int -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> [b] b</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AxString"
+></A
+><B
+>xString</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AxNumber%27"
+></A
+><B
+>xNumber'</B
+> :: <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> XPNumber</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AdeadEndStreet"
+></A
+><B
+>deadEndStreet</B
+> :: Monad m =&gt; m a</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompXPath"
+></A
+><B
+>compXPath</B
+> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompXP"
+></A
+><B
+>compXP</B
+> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompFP"
+></A
+><B
+>compFP</B
+> :: MonadPlus m =&gt; [Expr] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompLP"
+></A
+><B
+>compLP</B
+> :: MonadPlus m =&gt; [XStep] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompXS"
+></A
+><B
+>compXS</B
+> :: MonadPlus m =&gt; XStep -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompNTE"
+></A
+><B
+>compNTE</B
+> :: Monad m =&gt; NodeTest -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompNTA"
+></A
+><B
+>compNTA</B
+> :: Monad m =&gt; NodeTest -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompNameT"
+></A
+><B
+>compNameT</B
+> :: Monad m =&gt; <A HREF="Control-Arrow-ListArrow.html#t%3ALA"
+>LA</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompNT"
+></A
+><B
+>compNT</B
+> :: Monad m =&gt; NodeTest -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompPred"
+></A
+><B
+>compPred</B
+> :: MonadPlus m =&gt; [Expr] -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompPred1"
+></A
+><B
+>compPred1</B
+> :: MonadPlus m =&gt; Expr -&gt; <A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompRelPathExpr"
+></A
+><B
+>compRelPathExpr</B
+> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompStringExpr"
+></A
+><B
+>compStringExpr</B
+> :: MonadPlus m =&gt; Expr -&gt; m String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompNumberExpr"
+></A
+><B
+>compNumberExpr</B
+> :: MonadPlus m =&gt; Expr -&gt; m XPNumber</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompIntExpr"
+></A
+><B
+>compIntExpr</B
+> :: MonadPlus m =&gt; Expr -&gt; m Int</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompBoolExpr"
+></A
+><B
+>compBoolExpr</B
+> :: MonadPlus m =&gt; Expr -&gt; m Bool</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompGenExpr"
+></A
+><B
+>compGenExpr</B
+> :: MonadPlus m =&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompString"
+></A
+><B
+>compString</B
+> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompNumber"
+></A
+><B
+>compNumber</B
+> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompBool"
+></A
+><B
+>compBool</B
+> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcompPath"
+></A
+><B
+>compPath</B
+> :: MonadPlus m =&gt; Op -&gt; Expr -&gt; Expr -&gt; m (<A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>XPArrow</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>)</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AtoNumber"
+></A
+><B
+>toNumber</B
+> :: String -&gt; XPNumber</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AequalNodeSet"
+></A
+><B
+>equalNodeSet</B
+> :: Eq a =&gt; [a] -&gt; [a] -&gt; [a]</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlArrow.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlArrow.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlArrow.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlArrow.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlArrow.hs"
 >Source code</A
@@ -269,7 +269,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AhasNameWith"
 >hasNameWith</A
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -281,7 +281,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AhasQName"
 >hasQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -343,7 +343,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AhasQAttr"
 >hasQAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -365,7 +365,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AhasQAttrValue"
 >hasQAttrValue</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -425,7 +425,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkElement"
 >mkElement</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -439,7 +439,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkAttr"
 >mkAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -451,7 +451,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkPi"
 >mkPi</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -463,7 +463,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Amkqelem"
 >mkqelem</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -529,7 +529,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Aqattr"
 >qattr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -615,7 +615,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Asqattr"
 >sqattr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -675,7 +675,7 @@
 >getPiName</A
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -695,7 +695,7 @@
 >getElemName</A
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -735,7 +735,7 @@
 >getAttrName</A
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -761,7 +761,7 @@
 >getQName</A
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -833,7 +833,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetQAttrValue"
 >getQAttrValue</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -843,7 +843,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetQAttrValue0"
 >getQAttrValue0</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -873,9 +873,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AchangeQName"
 >changeQName</A
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -887,9 +887,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AchangeElemName"
 >changeElemName</A
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -901,9 +901,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AchangeAttrName"
 >changeAttrName</A
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -915,9 +915,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AchangePiName"
 >changePiName</A
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -959,7 +959,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AsetQName"
 >setQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -971,7 +971,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AsetElemName"
 >setElemName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -983,7 +983,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AsetAttrName"
 >setAttrName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -995,7 +995,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AsetPiName"
 >setPiName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -1055,7 +1055,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AremoveQAttr"
 >removeQAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -1677,7 +1677,7 @@
 ></A
 ><B
 >hasNameWith</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -1700,7 +1700,7 @@
 ></A
 ><B
 >hasQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -1833,7 +1833,7 @@
 ></A
 ><B
 >hasQAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -1877,7 +1877,7 @@
 ></A
 ><B
 >hasQAttrValue</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; (String -&gt; Bool) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -2014,7 +2014,7 @@
 ></A
 ><B
 >mkElement</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -2041,7 +2041,7 @@
 ></A
 ><B
 >mkAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -2065,7 +2065,7 @@
 ></A
 ><B
 >mkPi</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -2089,7 +2089,7 @@
 ></A
 ><B
 >mkqelem</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; [a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -2275,7 +2275,7 @@
 ></A
 ><B
 >qattr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -2483,7 +2483,7 @@
 ></A
 ><B
 >sqattr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String -&gt; a n <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -2638,7 +2638,7 @@
 >getPiName</B
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -2680,7 +2680,7 @@
 >getElemName</B
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -2764,7 +2764,7 @@
 >getAttrName</B
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -2823,7 +2823,7 @@
 >getQName</B
 > :: a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -2999,7 +2999,7 @@
 ></A
 ><B
 >getQAttrValue</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3025,7 +3025,7 @@
 ></A
 ><B
 >getQAttrValue0</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3092,9 +3092,9 @@
 ></A
 ><B
 >changeQName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3117,9 +3117,9 @@
 ></A
 ><B
 >changeElemName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3142,9 +3142,9 @@
 ></A
 ><B
 >changeAttrName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3167,9 +3167,9 @@
 ></A
 ><B
 >changePiName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3244,7 +3244,7 @@
 ></A
 ><B
 >setQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3267,7 +3267,7 @@
 ></A
 ><B
 >setElemName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3290,7 +3290,7 @@
 ></A
 ><B
 >setAttrName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3313,7 +3313,7 @@
 ></A
 ><B
 >setPiName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
@@ -3428,7 +3428,7 @@
 ></A
 ><B
 >removeQAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
 >XmlTree</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlIOStateArrow.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlIOStateArrow.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlIOStateArrow.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlIOStateArrow.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlIOStateArrow.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlNode.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlNode.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlNode.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlNode.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlNode.hs"
 >Source code</A
@@ -330,7 +330,7 @@
 ></A
 ><B
 >mkPi</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -418,7 +418,7 @@
 ></A
 ><B
 >getPiName</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -446,7 +446,7 @@
 ></A
 ><B
 >getElemName</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -502,7 +502,7 @@
 ></A
 ><B
 >getAttrName</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -540,7 +540,7 @@
 ></A
 ><B
 >getName</B
-> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: a -&gt; Maybe <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -650,9 +650,9 @@
 ></A
 ><B
 >changeName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a -&gt; a</TD
 ></TR
@@ -666,9 +666,9 @@
 ></A
 ><B
 >changeElemName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a -&gt; a</TD
 ></TR
@@ -698,9 +698,9 @@
 ></A
 ><B
 >changeAttrName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a -&gt; a</TD
 ></TR
@@ -714,9 +714,9 @@
 ></A
 ><B
 >changePiName</B
-> :: (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >) -&gt; a -&gt; a</TD
 ></TR
@@ -770,7 +770,7 @@
 ></A
 ><B
 >setName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a -&gt; a</TD
 ></TR
@@ -784,7 +784,7 @@
 ></A
 ><B
 >setElemName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a -&gt; a</TD
 ></TR
@@ -812,7 +812,7 @@
 ></A
 ><B
 >setAttrName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a -&gt; a</TD
 ></TR
@@ -826,7 +826,7 @@
 ></A
 ><B
 >setPiName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; a -&gt; a</TD
 ></TR
@@ -895,7 +895,7 @@
 ></A
 ><B
 >mkElementNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -913,7 +913,7 @@
 ></A
 ><B
 >mkAttrNode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
 >XNode</A
@@ -947,7 +947,7 @@
 ></A
 ><B
 >mkElement</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -985,7 +985,7 @@
 ></A
 ><B
 >mkAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlNodeSet.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlNodeSet.html
deleted file mode 100644
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow-XmlNodeSet.html
+++ /dev/null
@@ -1,750 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--Rendered using the Haskell Html Library v0.2-->
-<HTML
-><HEAD
-><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
-><TITLE
->Text.XML.HXT.Arrow.XmlNodeSet</TITLE
-><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
-><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
-></SCRIPT
-></HEAD
-><BODY
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="topbar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
-></TD
-><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
-><TD CLASS="topbut"
-><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow/XmlNodeSet.hs"
->Source code</A
-></TD
-><TD CLASS="topbut"
-><A HREF="index.html"
->Contents</A
-></TD
-><TD CLASS="topbut"
-><A HREF="doc-index.html"
->Index</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="modulebar"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD
-><FONT SIZE="6"
->Text.XML.HXT.Arrow.XmlNodeSet</FONT
-></TD
-><TD ALIGN="right"
-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="infohead"
->Portability</TD
-><TD CLASS="infoval"
->portable</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Stability</TD
-><TD CLASS="infoval"
->experimental</TD
-></TR
-><TR
-><TD CLASS="infohead"
->Maintainer</TD
-><TD CLASS="infoval"
->Uwe Schmidt (uwe@fh-wedel.de)</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Version    : $Id: XmlNodeSet.hs,v 1.5 2006<EM
->11</EM
->12 14:52:59 hxml Exp $
-</P
-><P
->Arrows for working with XPath and XmlNodeSets.
-</P
-><P
->Most of the XPath arrows come in two versions,
-   one without dealing with namespaces, element and attribute names
-   in XPath expressions are taken as they ar ignoring any prefix:localname structure.
-</P
-><P
->The second variant uses a namespace environment for associating the right
-   namespace for the appropriate prefix. an entry for the empty prefix
-   defines the default namespace for the expression.
-</P
-><P
->The second variant should be used, when in the application namespaces
-   are significant, that means when namespace propagation is done for
-   the documents to be processed.
-</P
-><P
->NodeSets are sets of &quot;pointer&quot; into an XML tree to reference
-   subnodes. These nodesets can be computed by XPath expressions or
-   normal arrows. The nodesets can then be used later for selecting
-   or modifying subtrees of this tree in an efficient way.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Synopsis</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTreesInDoc"
->getXPathTreesInDoc</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTreesInDocWithNsEnv"
->getXPathTreesInDocWithNsEnv</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTrees"
->getXPathTrees</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathTreesWithNsEnv"
->getXPathTreesWithNsEnv</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetElemNodeSet"
->getElemNodeSet</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetElemAndAttrNodeSet"
->getElemAndAttrNodeSet</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXPathNodeSet"
->getXPathNodeSet</A
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetFromNodeSet"
->getFromNodeSet</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessXPathTrees"
->processXPathTrees</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessXPathTreesWithNsEnv"
->processXPathTreesWithNsEnv</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessFromNodeSet"
->processFromNodeSet</A
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Documentation</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTreesInDoc"
-></A
-><B
->getXPathTreesInDoc</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Select parts of a whole XML document with root node by a XPath expression.
-</P
-><P
->The main filter for selecting parts of a document via XPath.
-</P
-><P
->The string argument must be a XPath expression with an absolute location path,
- the argument tree must be a complete document tree.
-</P
-><P
->Before evaluating the xpath query, the document is canonicalized
- with <TT
-><A HREF="Text-XML-HXT-Arrow-Edit.html#v%3AcanonicalizeForXPath"
->canonicalizeForXPath</A
-></TT
->
-</P
-><P
->Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
- are convertet to text nodes.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTreesInDocWithNsEnv"
-></A
-><B
->getXPathTreesInDocWithNsEnv</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Same as <TT
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesInDoc"
->getXPathTreesInDoc</A
-></TT
-> but with namespace environment for the XPath names
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTrees"
-></A
-><B
->getXPathTrees</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Select parts of an arbitrary XML tree by a XPath expression.
-</P
-><P
->The main filter for selecting parts of an arbitrary XML tree via XPath.
- The string argument must be a XPath expression with an absolute location path,
- There are no restrictions on the argument tree.
-</P
-><P
->No canonicalization is performed before evaluating the query
-</P
-><P
->Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
- are convertet to text nodes.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathTreesWithNsEnv"
-></A
-><B
->getXPathTreesWithNsEnv</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Same as <TT
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTrees"
->getXPathTrees</A
-></TT
-> but with namespace environment for the XPath names
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetElemNodeSet"
-></A
-><B
->getElemNodeSet</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->compute a node set from a tree, containing all nodes selected by the predicate arrow
-</P
-><P
->computation of the set of element nodes with name &quot;a&quot; is done with
-</P
-><PRE
-> getElemNodeSet (hasName &quot;a&quot;)
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetElemAndAttrNodeSet"
-></A
-><B
->getElemAndAttrNodeSet</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->compute a node set from a tree, containing all nodes including attribute nodes
- elected by the predicate arrow
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetXPathNodeSet"
-></A
-><B
->getXPathNodeSet</B
-> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"
->ArrowList</A
-> a =&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->Select a set of nodes via an XPath expression from an arbitray XML tree
-</P
-><P
->The result is a set of &quot;pointers&quot; to nodes. This set can be used to
- access or modify the values of the subnodes in subsequent calls to <TT
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetFromNodeSet"
->getFromNodeSet</A
-></TT
-> or <TT
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessFromNodeSet"
->processFromNodeSet</A
-></TT
->.
-</P
-><P
->This function enables for parsing an XPath expressions and traversing the tree for node selection once
- and reuse this result possibly many times for later selection and modification operations.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AgetFromNodeSet"
-></A
-><B
->getFromNodeSet</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->select all subtrees specified by a previously computed node set
-</P
-><P
->the following law holds:
-</P
-><PRE
-> getFromNodeSet $&lt; getElemNodeSet f == multi f
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessXPathTrees"
-></A
-><B
->processXPathTrees</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->process all subtrees selected by an XPath expression
-</P
-><P
->the following law holds:
-</P
-><PRE
-> processXPathTrees p xpathExpr == processFromNodeSet p $&lt; getXPathNodeSet xpathExpr
-</PRE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessXPathTreesWithNsEnv"
-></A
-><B
->processXPathTreesWithNsEnv</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
->NsEnv</A
-> -&gt; String -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Same as <TT
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessXPathTrees"
->processXPathTrees</A
-></TT
-> but with namespace environment for the XPath names
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AprocessFromNodeSet"
-></A
-><B
->processFromNodeSet</B
-> :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"
->ArrowXml</A
-> a =&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
->XmlNodeSet</A
-> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
->XmlTree</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->process all subtrees specified by a previously computed node set in bottom up manner
-</P
-><P
->the follwoing law holds:
-</P
-><PRE
-> processFromNodeSet g $&lt; getElemNodeSet f == processBottomUp (g `when` f)
-</PRE
-><P
->when attributes are contained in the node set (see <TT
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetElemAndAttrNodeSet"
->getElemAndAttrNodeSet</A
-></TT
->), these are processed
- after the children and before the node itself
-</P
-><P
->the advantage of processFromNodeSet is the separation of the selection of set of nodes to be processed (e.g. modified)
- from the real proccessing. The selection sometimes can be done once, the processing possibly many times.
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="botbar"
->Produced by <A HREF="http://www.haskell.org/haddock/"
->Haddock</A
-> version 0.8</TD
-></TR
-></TABLE
-></BODY
-></HTML
->
diff --git a/doc/hdoc_arrow/Text-XML-HXT-Arrow.html b/doc/hdoc_arrow/Text-XML-HXT-Arrow.html
--- a/doc/hdoc_arrow/Text-XML-HXT-Arrow.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-Arrow.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Arrow.hs"
 >Source code</A
@@ -153,8 +153,8 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
->module <A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+>module <A HREF="Text-XML-HXT-Arrow-XPath.html"
+>Text.XML.HXT.Arrow.XPath</A
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-IsoLatinTables.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-IsoLatinTables.html
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-IsoLatinTables.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-DOM-IsoLatinTables.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/IsoLatinTables.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-NamespacePredicates.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-NamespacePredicates.html
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-NamespacePredicates.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-DOM-NamespacePredicates.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespacePredicates.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-QualifiedName.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-QualifiedName.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc_arrow/Text-XML-HXT-DOM-QualifiedName.html
@@ -0,0 +1,882 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Text.XML.HXT.DOM.QualifiedName</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
+><TD CLASS="topbut"
+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/QualifiedName.hs"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Text.XML.HXT.DOM.QualifiedName</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+>The core data types of the HXT DOM.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Synopsis</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A HREF="#t%3AQName"
+>QName</A
+>  = <A HREF="#v%3AQN"
+>QN</A
+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="recfield"
+><A HREF="#v%3AnamePrefix"
+>namePrefix</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="recfield"
+><A HREF="#v%3AlocalPart"
+>localPart</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="recfield"
+><A HREF="#v%3AnamespaceUri"
+>namespaceUri</A
+> :: String</TD
+></TR
+></TABLE
+>}</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AqualifiedName"
+>qualifiedName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AuniversalName"
+>universalName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AuniversalUri"
+>universalUri</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AbuildUniversalName"
+>buildUniversalName</A
+> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkQName"
+>mkQName</A
+> :: String -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkName"
+>mkName</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkPrefixLocalPart"
+>mkPrefixLocalPart</A
+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkNsName"
+>mkNsName</A
+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkSNsName"
+>mkSNsName</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnullQName"
+>nullQName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequalQName"
+>equalQName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequivQName"
+>equivQName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequivUri"
+>equivUri</A
+> :: String -&gt; String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequalQNameBy"
+>equalQNameBy</A
+> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnormalizeNsUri"
+>normalizeNsUri</A
+> :: String -&gt; String</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A NAME="t%3AQName"
+></A
+><B
+>QName</B
+> </TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="ndoc"
+><P
+>Namespace support for element and attribute names.
+</P
+><P
+>A qualified name consists of a name prefix, a local name
+ and a namespace uri.
+ All modules, which are not namespace aware, use only the <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"
+>localPart</A
+></TT
+> component.
+ When dealing with namespaces, the document tree must be processed by <A HREF="propagateNamespaces.html"
+>propagateNamespaces</A
+>
+ to split names of structure &quot;prefix:localPart&quot; and label the name with the apropriate namespace uri
+</P
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+>Constructors</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AQN"
+></A
+><B
+>QN</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="body" COLSPAN="2"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AnamePrefix"
+></A
+><B
+>namePrefix</B
+> :: String</TD
+><TD CLASS="rdoc"
+>the name prefix part of a qualified name &quot;namePrefix:localPart&quot;
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AlocalPart"
+></A
+><B
+>localPart</B
+> :: String</TD
+><TD CLASS="rdoc"
+>the local part of a qualified name &quot;namePrefix:localPart&quot;
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AnamespaceUri"
+></A
+><B
+>namespaceUri</B
+> :: String</TD
+><TD CLASS="rdoc"
+>the associated namespace uri
+</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:QName')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:QName" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
+>DeepSeq</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Eq <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Ord <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Read <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Show <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Typeable <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+></TABLE
+></DIV
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AqualifiedName"
+></A
+><B
+>qualifiedName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>builds the full name &quot;prefix:localPart&quot;, if prefix is not null, else the local part is the result
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AuniversalName"
+></A
+><B
+>universalName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>builds the &quot;universal&quot; name, that is the namespace uri surrounded with &quot;{&quot; and &quot;}&quot; followed by the local part
+ (specialisation of <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"
+>buildUniversalName</A
+></TT
+>)
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AuniversalUri"
+></A
+><B
+>universalUri</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>builds an &quot;universal&quot; uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,
+ where the subject, predicate and object often are concatenated from namespace uri and local part
+ (specialisation of <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"
+>buildUniversalName</A
+></TT
+>)
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AbuildUniversalName"
+></A
+><B
+>buildUniversalName</B
+> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else
+ namespace uri and local part are combined with the combining function given by the first parameter
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkQName"
+></A
+><B
+>mkQName</B
+> :: String -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constructs a complete qualified name with <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"
+>namePrefix</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"
+>localPart</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"
+>namespaceUri</A
+></TT
+>.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkName"
+></A
+><B
+>mkName</B
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constructs a simple, namespace unaware name, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"
+>namePrefix</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"
+>namespaceUri</A
+></TT
+> are set to the empty string.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkPrefixLocalPart"
+></A
+><B
+>mkPrefixLocalPart</B
+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>constructs a simple name, with prefix and localPart but without a namespace uri.
+</P
+><P
+>see also <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
+>mkName</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"
+>mkNsName</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkSNsName"
+>mkSNsName</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkNsName"
+></A
+><B
+>mkNsName</B
+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.
+</P
+><P
+>see also <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
+>mkName</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"
+>mkPrefixLocalPart</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkSNsName"
+></A
+><B
+>mkSNsName</B
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter
+</P
+><P
+>see also <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"
+>mkNsName</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"
+>mkPrefixLocalPart</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AnullQName"
+></A
+><B
+>nullQName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Empty QName
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AequalQName"
+></A
+><B
+>equalQName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Equality of QNames: Two QNames are equal, if the local parts are equal
+ and the namespace URIs are equal.
+ The comparison works with and without namespace propagation.
+ If namespaces have been propagated, the name is split into prefix and local part
+ and the namespace uri is set. In this case the prefix is not significant for equality test.
+ If namespaces have not been propagated, the local part contains the full name, prefix
+ and namespace URI are empty. The full name (prefix and local part) is used for comparison.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AequivQName"
+></A
+><B
+>equivQName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Equivalent QNames are defined as follows: The URIs are normalized before comparison.
+ Comparison is done with <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQNameBy"
+>equalQNameBy</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivUri"
+>equivUri</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AequivUri"
+></A
+><B
+>equivUri</B
+> :: String -&gt; String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Comparison of normalized namespace URIs using <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnormalizeNsUri"
+>normalizeNsUri</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AequalQNameBy"
+></A
+><B
+>equalQNameBy</B
+> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Sometimes a weaker equality relation than <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"
+>equalQName</A
+></TT
+> is appropriate, e.g no case significance in names, ...
+ a name normalization function can be applied to the strings before comparing. Called by <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"
+>equalQName</A
+></TT
+> and
+ <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivQName"
+>equivQName</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AnormalizeNsUri"
+></A
+><B
+>normalizeNsUri</B
+> :: String -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing &quot;/&quot; is ignored
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-TypeDefs.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-TypeDefs.html
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-TypeDefs.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-DOM-TypeDefs.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/TypeDefs.hs"
 >Source code</A
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.DOM.TypeDefs</FONT
 ></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
 ></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
@@ -58,15 +80,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->The core data types of HDOM.
-</P
-><P
->Version : $Id: TypeDefs.hs,v 1.13 2006<EM
->11</EM
->09 20:27:42 hxml Exp $
-</P
-></TD
+>The core data types of the HXT DOM.
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
@@ -173,7 +188,7 @@
 ><TD CLASS="decl"
 >| <A HREF="#v%3AXPi"
 >XPi</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -183,7 +198,7 @@
 ><TD CLASS="decl"
 >| <A HREF="#v%3AXTag"
 >XTag</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -203,7 +218,7 @@
 ><TD CLASS="decl"
 >| <A HREF="#v%3AXAttr"
 >XAttr</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -324,210 +339,6 @@
 ><TR
 ><TD CLASS="decl"
 ><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AQName"
->QName</A
->  = <A HREF="#v%3AQN"
->QN</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AnamePrefix"
->namePrefix</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AlocalPart"
->localPart</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AnamespaceUri"
->namespaceUri</A
-> :: String</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AqualifiedName"
->qualifiedName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AuniversalName"
->universalName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AuniversalUri"
->universalUri</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AbuildUniversalName"
->buildUniversalName</A
-> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkName"
->mkName</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkNsName"
->mkNsName</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkSNsName"
->mkSNsName</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnullQName"
->nullQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequalQName"
->equalQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequivQName"
->equivQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequivUri"
->equivUri</A
-> :: String -&gt; String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequalQNameBy"
->equalQNameBy</A
-> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeNsUri"
->normalizeNsUri</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
 >type</SPAN
 > <A HREF="#t%3ANsEnv"
 >NsEnv</A
@@ -598,7 +409,7 @@
 ><TD CLASS="recfield"
 ><A HREF="#v%3AattrNodes"
 >attrNodes</A
-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: [<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >]</TD
 ></TR
@@ -627,6 +438,16 @@
 >XmlNodeSet</A
 >)]</TD
 ></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Text-XML-HXT-DOM-QualifiedName.html"
+>Text.XML.HXT.DOM.QualifiedName</A
+></TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -784,7 +605,7 @@
 ></A
 ><B
 >XPi</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -802,7 +623,7 @@
 ></A
 ><B
 >XTag</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -832,7 +653,7 @@
 ></A
 ><B
 >XAttr</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ><TD CLASS="rdoc"
@@ -1190,520 +1011,6 @@
 ><TR
 ><TD CLASS="decl"
 ><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AQName"
-></A
-><B
->QName</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->Namespace support for element and attribute names.
-</P
-><P
->A qualified name consists of a name prefix, a local name
- and a namespace uri.
- All modules, which are not namespace aware, use only the <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AlocalPart"
->localPart</A
-></TT
-> component.
- When dealing with namespaces, the document tree must be processed by <A HREF="propagateNamespaces.html"
->propagateNamespaces</A
->
- to split names of structure &quot;prefix:localPart&quot; and label the name with the apropriate namespace uri
-</P
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AQN"
-></A
-><B
->QN</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="body" COLSPAN="2"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AnamePrefix"
-></A
-><B
->namePrefix</B
-> :: String</TD
-><TD CLASS="rdoc"
->the name prefix part of a qualified name &quot;namePrefix:localPart&quot;
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AlocalPart"
-></A
-><B
->localPart</B
-> :: String</TD
-><TD CLASS="rdoc"
->the local part of a qualified name &quot;namePrefix:localPart&quot;
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AnamespaceUri"
-></A
-><B
->namespaceUri</B
-> :: String</TD
-><TD CLASS="rdoc"
->the associated namespace uri
-</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:QName')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:QName" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AqualifiedName"
-></A
-><B
->qualifiedName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds the full name &quot;prefix:localPart&quot;, if prefix is not null, else the local part is the result
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuniversalName"
-></A
-><B
->universalName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds the &quot;universal&quot; name, that is the namespace uri surrounded with &quot;{&quot; and &quot;}&quot; followed by the local part
- (specialisation of <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"
->buildUniversalName</A
-></TT
->)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuniversalUri"
-></A
-><B
->universalUri</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds an &quot;universal&quot; uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,
- where the subject, predicate and object often are concatenated from namespace uri and local part
- (specialisation of <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"
->buildUniversalName</A
-></TT
->)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AbuildUniversalName"
-></A
-><B
->buildUniversalName</B
-> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else
- namespace uri and local part are combined with the combining function given by the first parameter
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkName"
-></A
-><B
->mkName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructs a simple, namespace unaware name, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamePrefix"
->namePrefix</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamespaceUri"
->namespaceUri</A
-></TT
-> are set to the empty string.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkPrefixLocalPart"
-></A
-><B
->mkPrefixLocalPart</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple name, with prefix and localPart but without a namespace uri.
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"
->mkName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"
->mkNsName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkSNsName"
->mkSNsName</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkNsName"
-></A
-><B
->mkNsName</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"
->mkName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkSNsName"
-></A
-><B
->mkSNsName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"
->mkNsName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnullQName"
-></A
-><B
->nullQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Empty QName
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequalQName"
-></A
-><B
->equalQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Equality of QNames: Two QNames are equal, if the local parts are equal
- and the namespace URIs are equal.
- The comparison works with and without namespace propagation.
- If namespaces have been propagated, the name is split into prefix and local part
- and the namespace uri is set. In this case the prefix is not significant for equality test.
- If namespaces have not been propagated, the local part contains the full name, prefix
- and namespace URI are empty. The full name (prefix and local part) is used for comparison.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequivQName"
-></A
-><B
->equivQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Equivalent QNames are defined as follows: The URIs are normalized before comparison.
- Comparison is done with <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQNameBy"
->equalQNameBy</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivUri"
->equivUri</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequivUri"
-></A
-><B
->equivUri</B
-> :: String -&gt; String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Comparison of normalized namespace URIs using <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnormalizeNsUri"
->normalizeNsUri</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequalQNameBy"
-></A
-><B
->equalQNameBy</B
-> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Sometimes a weaker equality relation than <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"
->equalQName</A
-></TT
-> is appropriate, e.g no case significance in names, ...
- a name normalization function can be applied to the strings before comparing. Called by <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"
->equalQName</A
-></TT
-> and
- <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivQName"
->equivQName</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeNsUri"
-></A
-><B
->normalizeNsUri</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing &quot;/&quot; is ignored
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ANsEnv"
 ></A
@@ -1717,7 +1024,7 @@
 ><TD CLASS="doc"
 >Type for the namespace association list, used when propagating namespaces by
  modifying the <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TT
 > values in a tree
@@ -1857,7 +1164,7 @@
 ></A
 ><B
 >attrNodes</B
-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: [<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >]</TD
 ><TD CLASS="rdoc"
@@ -1932,6 +1239,16 @@
 > = [(Int, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
 >XmlNodeSet</A
 >)]</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Text-XML-HXT-DOM-QualifiedName.html"
+>Text.XML.HXT.DOM.QualifiedName</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-UTF8Decoding.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-UTF8Decoding.html
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-UTF8Decoding.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-DOM-UTF8Decoding.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/UTF8Decoding.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-Unicode.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-Unicode.html
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-Unicode.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-DOM-Unicode.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Unicode.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-Util.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-Util.html
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-Util.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-DOM-Util.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Util.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-DOM-XmlKeywords.html b/doc/hdoc_arrow/Text-XML-HXT-DOM-XmlKeywords.html
--- a/doc/hdoc_arrow/Text-XML-HXT-DOM-XmlKeywords.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-DOM-XmlKeywords.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlKeywords.hs"
 >Source code</A
@@ -458,6 +458,16 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Aa_parse_by_mimetype"
+>a_parse_by_mimetype</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Aa_parse_html"
 >a_parse_html</A
 > :: String</TD
@@ -578,6 +588,16 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Aa_tagsoup"
+>a_tagsoup</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Aa_trace"
 >a_trace</A
 > :: String</TD
@@ -858,8 +878,8 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="#v%3Ak_enitity"
->k_enitity</A
+><A HREF="#v%3Ak_entity"
+>k_entity</A
 > :: String</TD
 ></TR
 ><TR
@@ -1512,6 +1532,96 @@
 >a_do_not_collect_errors</A
 > :: String</TD
 ></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xhtml"
+>application_xhtml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xml"
+>application_xml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xml_external_parsed_entity"
+>application_xml_external_parsed_entity</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xml_dtd"
+>application_xml_dtd</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atext_html"
+>text_html</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atext_xml"
+>text_xml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atext_xml_external_parsed_entity"
+>text_xml_external_parsed_entity</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisHtmlMimeType"
+>isHtmlMimeType</A
+> :: String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisXmlMimeType"
+>isXmlMimeType</A
+> :: String -&gt; Bool</TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -1949,6 +2059,18 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3Aa_parse_by_mimetype"
+></A
+><B
+>a_parse_by_mimetype</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Aa_parse_html"
 ></A
 ><B
@@ -2093,6 +2215,18 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3Aa_tagsoup"
+></A
+><B
+>a_tagsoup</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Aa_trace"
 ></A
 ><B
@@ -2429,10 +2563,10 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3Ak_enitity"
+><A NAME="v%3Ak_entity"
 ></A
 ><B
->k_enitity</B
+>k_entity</B
 > :: String</TD
 ></TR
 ><TR
@@ -3085,7 +3219,7 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
->the predefined namespace uri for xml: &quot;http://www.w3.org/XML/1998/namespaces&quot;
+>the predefined namespace uri for xml: &quot;http://www.w3.org/XML/1998/namespace&quot;
 </TD
 ></TR
 ><TR
@@ -3229,6 +3363,114 @@
 ><B
 >a_do_not_collect_errors</B
 > :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aapplication_xhtml"
+></A
+><B
+>application_xhtml</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aapplication_xml"
+></A
+><B
+>application_xml</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aapplication_xml_external_parsed_entity"
+></A
+><B
+>application_xml_external_parsed_entity</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aapplication_xml_dtd"
+></A
+><B
+>application_xml_dtd</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Atext_html"
+></A
+><B
+>text_html</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Atext_xml"
+></A
+><B
+>text_xml</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Atext_xml_external_parsed_entity"
+></A
+><B
+>text_xml_external_parsed_entity</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AisHtmlMimeType"
+></A
+><B
+>isHtmlMimeType</B
+> :: String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AisXmlMimeType"
+></A
+><B
+>isXmlMimeType</B
+> :: String -&gt; Bool</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibMysql.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibUtils.hs"
 >Source code</A
@@ -92,7 +92,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AerrorMsgDataTypeNotAllowed"
 >errorMsgDataTypeNotAllowed</A
-> :: String -&gt; [(String, String)] -&gt; String -&gt; String -&gt; String</TD
+> :: String -&gt; String -&gt; [(String, String)] -&gt; String -&gt; String</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -130,6 +130,18 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AerrorMsgParam"
+>errorMsgParam</A
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
+>LocalName</A
+> -&gt; String -&gt; String -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Arng_length"
 >rng_length</A
 > :: String</TD
@@ -220,9 +232,11 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="#v%3AalwaysOK"
->alwaysOK</A
-> :: Check a</TD
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A HREF="#t%3AFunctionTable"
+>FunctionTable</A
+> = [(String, String -&gt; String -&gt; Bool)]</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -230,29 +244,29 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="#v%3AalwaysErr"
->alwaysErr</A
-> :: (a -&gt; String) -&gt; Check a</TD
-></TR
-><TR
-><TD CLASS="s8"
+><A HREF="#v%3AstringValidFT"
+>stringValidFT</A
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
+>FunctionTable</A
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
+>DatatypeName</A
+> -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
+>ParamList</A
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
+>CheckString</A
 ></TD
 ></TR
 ><TR
-><TD CLASS="decl"
-><A HREF="#v%3AorErr"
->orErr</A
-> :: (a -&gt; Bool) -&gt; (a -&gt; String) -&gt; Check a</TD
-></TR
-><TR
 ><TD CLASS="s8"
 ></TD
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="#v%3AandCheck"
->andCheck</A
-> :: Check a -&gt; Check a -&gt; Check a</TD
+><A HREF="#v%3AfctTableString"
+>fctTableString</A
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
+>FunctionTable</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -260,9 +274,11 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="#v%3AwithVal"
->withVal</A
-> :: Check a -&gt; (b -&gt; a) -&gt; Check b</TD
+><A HREF="#v%3AfctTableList"
+>fctTableList</A
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
+>FunctionTable</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -276,7 +292,9 @@
 >DatatypeName</A
 > -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
 >ParamList</A
-> -&gt; Check String</TD
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
+>CheckString</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -290,8 +308,134 @@
 >DatatypeName</A
 > -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
 >ParamList</A
-> -&gt; Check String</TD
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
+>CheckString</A
+></TD
 ></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnumParamValid"
+>numParamValid</A
+> :: (Integer -&gt; Integer -&gt; Bool) -&gt; String -&gt; String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A HREF="#t%3ACheckA"
+>CheckA</A
+> a b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A HREF="#t%3ACheckString"
+>CheckString</A
+> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> String String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A HREF="#t%3ACheckInteger"
+>CheckInteger</A
+> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> Integer Integer</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AperformCheck"
+>performCheck</A
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a b -&gt; a -&gt; Maybe String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aok"
+>ok</A
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Afailure"
+>failure</A
+> :: (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aassert"
+>assert</A
+> :: (a -&gt; Bool) -&gt; (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a a</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AassertMaybe"
+>assertMaybe</A
+> :: (a -&gt; Maybe b) -&gt; (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcheckWith"
+>checkWith</A
+> :: (a -&gt; b) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> b c -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a a</TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -327,7 +471,7 @@
 ></A
 ><B
 >errorMsgDataTypeNotAllowed</B
-> :: String -&gt; [(String, String)] -&gt; String -&gt; String -&gt; String</TD
+> :: String -&gt; String -&gt; [(String, String)] -&gt; String -&gt; String</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
@@ -371,6 +515,44 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3AerrorMsgParam"
+></A
+><B
+>errorMsgParam</B
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ALocalName"
+>LocalName</A
+> -&gt; String -&gt; String -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Error Message for the equality test of two datatype values
+</P
+><UL
+><LI
+> 1.parameter  :  datatype
+</LI
+><LI
+> 2.parameter  :  datatype value
+</LI
+><LI
+> 3.parameter  :  datatype value
+</LI
+></UL
+><P
+>example:
+</P
+><PRE
+> errorMsgEqual &quot;Int&quot; &quot;21&quot; &quot;42&quot; -&gt; &quot;Datatype Int with value = 21 expected, but value = 42 found&quot;
+</PRE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Arng_length"
 ></A
 ><B
@@ -475,15 +657,17 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3AalwaysOK"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3AFunctionTable"
 ></A
 ><B
->alwaysOK</B
-> :: Check a</TD
+>FunctionTable</B
+> = [(String, String -&gt; String -&gt; Bool)]</TD
 ></TR
 ><TR
 ><TD CLASS="doc"
->Unit for checks
+>Function table type
 </TD
 ></TR
 ><TR
@@ -492,16 +676,19 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3AalwaysErr"
+><A NAME="v%3AstringValidFT"
 ></A
 ><B
->alwaysErr</B
-> :: (a -&gt; String) -&gt; Check a</TD
-></TR
-><TR
-><TD CLASS="doc"
->Zero for checks: Create an error message for an illegal value
-</TD
+>stringValidFT</B
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
+>FunctionTable</A
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ADatatypeName"
+>DatatypeName</A
+> -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
+>ParamList</A
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
+>CheckString</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
@@ -509,15 +696,18 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3AorErr"
+><A NAME="v%3AfctTableString"
 ></A
 ><B
->orErr</B
-> :: (a -&gt; Bool) -&gt; (a -&gt; String) -&gt; Check a</TD
+>fctTableString</B
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
+>FunctionTable</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
->Perform check and generate error message on failure
+>Function table for string tests,
+ XML document value is first operand, schema value second
 </TD
 ></TR
 ><TR
@@ -526,15 +716,18 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3AandCheck"
+><A NAME="v%3AfctTableList"
 ></A
 ><B
->andCheck</B
-> :: Check a -&gt; Check a -&gt; Check a</TD
+>fctTableList</B
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
+>FunctionTable</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
->Combine two checks
+>Function table for list tests,
+ XML document value is first operand, schema value second
 </TD
 ></TR
 ><TR
@@ -543,18 +736,6 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3AwithVal"
-></A
-><B
->withVal</B
-> :: Check a -&gt; (b -&gt; a) -&gt; Check b</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
 ><A NAME="v%3AstringValid"
 ></A
 ><B
@@ -563,7 +744,9 @@
 >DatatypeName</A
 > -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
 >ParamList</A
-> -&gt; Check String</TD
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
+>CheckString</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
@@ -610,7 +793,9 @@
 >DatatypeName</A
 > -&gt; Integer -&gt; Integer -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3AParamList"
 >ParamList</A
-> -&gt; Check String</TD
+> -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
+>CheckString</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="doc"
@@ -643,6 +828,238 @@
 </LI
 ></UL
 ></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AnumParamValid"
+></A
+><B
+>numParamValid</B
+> :: (Integer -&gt; Integer -&gt; Bool) -&gt; String -&gt; String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>tests whether a string value matches a numeric param
+</P
+><P
+>valid example:
+</P
+><PRE
+> &lt;data type=&quot;CHAR&quot;&gt; &lt;param name=&quot;maxLength&quot;&gt;5&lt;/param&gt; &lt;/data&gt;
+</PRE
+><P
+>invalid example:
+</P
+><PRE
+> &lt;data type=&quot;CHAR&quot;&gt; &lt;param name=&quot;minLength&quot;&gt;foo&lt;/param&gt; &lt;/data&gt;
+</PRE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A NAME="t%3ACheckA"
+></A
+><B
+>CheckA</B
+> a b</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:CheckA')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:CheckA" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>Arrow <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>ArrowPlus <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>ArrowZero <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+></TD
+></TR
+></TABLE
+></DIV
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3ACheckString"
+></A
+><B
+>CheckString</B
+> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> String String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3ACheckInteger"
+></A
+><B
+>CheckInteger</B
+> = <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> Integer Integer</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AperformCheck"
+></A
+><B
+>performCheck</B
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a b -&gt; a -&gt; Maybe String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>run a check and deliver Just an error message or Nothing
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aok"
+></A
+><B
+>ok</B
+> :: <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a a</TD
+></TR
+><TR
+><TD CLASS="doc"
+>every thing is fine
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Afailure"
+></A
+><B
+>failure</B
+> :: (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a b</TD
+></TR
+><TR
+><TD CLASS="doc"
+>always failure
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aassert"
+></A
+><B
+>assert</B
+> :: (a -&gt; Bool) -&gt; (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a a</TD
+></TR
+><TR
+><TD CLASS="doc"
+>perform a simple check with a predicate p,
+   when the predicate holds, assert acts as identity,
+   else an error message is generated
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AassertMaybe"
+></A
+><B
+>assertMaybe</B
+> :: (a -&gt; Maybe b) -&gt; (a -&gt; String) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a b</TD
+></TR
+><TR
+><TD CLASS="doc"
+>perform a simple check with a Maybe function, Nothing indicates error
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AcheckWith"
+></A
+><B
+>checkWith</B
+> :: (a -&gt; b) -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> b c -&gt; <A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>CheckA</A
+> a a</TD
+></TR
+><TR
+><TD CLASS="doc"
+>perform a check, but convert the value before checking
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibraries.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibraries.html
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibraries.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypeLibraries.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypeLibraries.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypes.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypes.html
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypes.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-DataTypes.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/DataTypes.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Schema.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Schema.html
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Schema.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Schema.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Schema.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-SchemaGrammar.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-SchemaGrammar.html
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-SchemaGrammar.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-SchemaGrammar.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/SchemaGrammar.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Simplification.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Simplification.html
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Simplification.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Simplification.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Simplification.hs"
 >Source code</A
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.RelaxNG.Simplification</FONT
 ></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
 ></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
@@ -59,7 +81,7 @@
 ><TR
 ><TD CLASS="doc"
 >The modul creates the simplified form of a Relax NG schema.
- See also chapter 4 of the Relax NG specification.
+   See also chapter 4 of the Relax NG specification.
 </TD
 ></TR
 ><TR
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Unicode-Blocks.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Unicode-Blocks.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Unicode/Blocks.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Unicode-CharProps.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Unicode-CharProps.html
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Unicode-CharProps.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Unicode-CharProps.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Unicode/CharProps.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validation.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validation.html
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validation.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Validation.hs"
 >Source code</A
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.RelaxNG.Validation</FONT
 ></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
 ></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
@@ -59,8 +81,8 @@
 ><TR
 ><TD CLASS="doc"
 >Validation of a XML document with respect to a valid Relax NG schema in simple form.
- Copied and modified from &quot;An algorithm for RELAX NG validation&quot; by James Clark
- (<A HREF="http://www.thaiopensource.com/relaxng/derivative.html"
+   Copied and modified from &quot;An algorithm for RELAX NG validation&quot; by James Clark
+   (<A HREF="http://www.thaiopensource.com/relaxng/derivative.html"
 >http://www.thaiopensource.com/relaxng/derivative.html</A
 >).
 </TD
@@ -200,7 +222,7 @@
 >contains</A
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
 >NameClass</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -409,7 +431,7 @@
 >contains</B
 > :: <A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#t%3ANameClass"
 >NameClass</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -420,7 +442,7 @@
 >NameClass</A
 ></TT
 > contains a particular <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TT
 >
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validator.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validator.html
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validator.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-Validator.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/Validator.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/XmlSchema/DataTypeLibW3C.hs"
 >Source code</A
@@ -127,6 +127,76 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Axsd_string"
+>xsd_string</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_normalizedString"
+>xsd_normalizedString</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_token"
+>xsd_token</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_language"
+>xsd_language</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_NMTOKEN"
+>xsd_NMTOKEN</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_NMTOKENS"
+>xsd_NMTOKENS</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_Name"
+>xsd_Name</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Axsd_NCName"
 >xsd_NCName</A
 > :: String</TD
@@ -137,6 +207,56 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Axsd_ID"
+>xsd_ID</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_IDREF"
+>xsd_IDREF</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_IDREFS"
+>xsd_IDREFS</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_ENTITY"
+>xsd_ENTITY</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_ENTITIES"
+>xsd_ENTITIES</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Axsd_anyURI"
 >xsd_anyURI</A
 > :: String</TD
@@ -157,8 +277,8 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="#v%3Axsd_string"
->xsd_string</A
+><A HREF="#v%3Axsd_NOTATION"
+>xsd_NOTATION</A
 > :: String</TD
 ></TR
 ><TR
@@ -167,6 +287,36 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Axsd_hexBinary"
+>xsd_hexBinary</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_base64Binary"
+>xsd_base64Binary</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_decimal"
+>xsd_decimal</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Axsd_length"
 >xsd_length</A
 > :: String</TD
@@ -197,6 +347,66 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Axsd_maxExclusive"
+>xsd_maxExclusive</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_minExclusive"
+>xsd_minExclusive</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_maxInclusive"
+>xsd_maxInclusive</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_minInclusive"
+>xsd_minInclusive</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_totalDigits"
+>xsd_totalDigits</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Axsd_fractionDigits"
+>xsd_fractionDigits</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Axsd_pattern"
 >xsd_pattern</A
 > :: String</TD
@@ -275,6 +485,90 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3Axsd_string"
+></A
+><B
+>xsd_string</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_normalizedString"
+></A
+><B
+>xsd_normalizedString</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_token"
+></A
+><B
+>xsd_token</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_language"
+></A
+><B
+>xsd_language</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_NMTOKEN"
+></A
+><B
+>xsd_NMTOKEN</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_NMTOKENS"
+></A
+><B
+>xsd_NMTOKENS</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_Name"
+></A
+><B
+>xsd_Name</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Axsd_NCName"
 ></A
 ><B
@@ -287,6 +581,66 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3Axsd_ID"
+></A
+><B
+>xsd_ID</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_IDREF"
+></A
+><B
+>xsd_IDREF</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_IDREFS"
+></A
+><B
+>xsd_IDREFS</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_ENTITY"
+></A
+><B
+>xsd_ENTITY</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_ENTITIES"
+></A
+><B
+>xsd_ENTITIES</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Axsd_anyURI"
 ></A
 ><B
@@ -311,10 +665,10 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3Axsd_string"
+><A NAME="v%3Axsd_NOTATION"
 ></A
 ><B
->xsd_string</B
+>xsd_NOTATION</B
 > :: String</TD
 ></TR
 ><TR
@@ -323,6 +677,42 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3Axsd_hexBinary"
+></A
+><B
+>xsd_hexBinary</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_base64Binary"
+></A
+><B
+>xsd_base64Binary</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_decimal"
+></A
+><B
+>xsd_decimal</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Axsd_length"
 ></A
 ><B
@@ -351,6 +741,78 @@
 ></A
 ><B
 >xsd_minLength</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_maxExclusive"
+></A
+><B
+>xsd_maxExclusive</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_minExclusive"
+></A
+><B
+>xsd_minExclusive</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_maxInclusive"
+></A
+><B
+>xsd_maxInclusive</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_minInclusive"
+></A
+><B
+>xsd_minInclusive</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_totalDigits"
+></A
+><B
+>xsd_totalDigits</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Axsd_fractionDigits"
+></A
+><B
+>xsd_fractionDigits</B
 > :: String</TD
 ></TR
 ><TR
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/XmlSchema/Regex.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html
--- a/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/RelaxNG/XmlSchema/RegexParser.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Application.html b/doc/hdoc_arrow/Text-XML-HXT-XSLT-Application.html
--- a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Application.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-XSLT-Application.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Application.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Common.html b/doc/hdoc_arrow/Text-XML-HXT-XSLT-Common.html
--- a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Common.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-XSLT-Common.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Common.hs"
 >Source code</A
@@ -260,7 +260,7 @@
 >isElemType</B
 > :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> n =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> n =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; n -&gt; Bool</TD
 ></TR
@@ -276,7 +276,7 @@
 >isAttrType</B
 > :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> n =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> n =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; n -&gt; Bool</TD
 ></TR
@@ -320,7 +320,7 @@
 >tryFetchAttribute</B
 > :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Maybe String</TD
 ></TR
@@ -336,7 +336,7 @@
 >fetchAttributeWDefault</B
 > :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String -&gt; String</TD
 ></TR
@@ -352,7 +352,7 @@
 >fetchAttribute</B
 > :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</TD
 ></TR
@@ -368,7 +368,7 @@
 >hasAttribute</B
 > :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> n =&gt; n -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -384,7 +384,7 @@
 >setAttribute</B
 > :: <A HREF="Text-XML-HXT-Arrow-XmlNode.html#t%3AXmlNode"
 >XmlNode</A
-> n =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> n =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String -&gt; n -&gt; n</TD
 ></TR
@@ -394,20 +394,6 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3AmkQName"
-></A
-><B
->mkQName</B
-> :: String -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
 ><SPAN CLASS="keyword"
 >data</SPAN
 > <A NAME="t%3AExName"
@@ -483,7 +469,7 @@
 ></A
 ><B
 >mkExName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-XSLT-Common.html#t%3AExName"
 >ExName</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Compilation.html b/doc/hdoc_arrow/Text-XML-HXT-XSLT-Compilation.html
--- a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Compilation.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-XSLT-Compilation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Compilation.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/Text-XML-HXT-XSLT-CompiledStylesheet.html b/doc/hdoc_arrow/Text-XML-HXT-XSLT-CompiledStylesheet.html
--- a/doc/hdoc_arrow/Text-XML-HXT-XSLT-CompiledStylesheet.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-XSLT-CompiledStylesheet.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/CompiledStylesheet.hs"
 >Source code</A
@@ -926,9 +926,9 @@
 >lookupAlias</B
 > :: <A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#t%3ANSAliasing"
 >NSAliasing</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -1371,7 +1371,7 @@
 ></A
 ><B
 >LiteralQName</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ><TD CLASS="rdoc"
diff --git a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Names.html b/doc/hdoc_arrow/Text-XML-HXT-XSLT-Names.html
--- a/doc/hdoc_arrow/Text-XML-HXT-XSLT-Names.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-XSLT-Names.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/Names.hs"
 >Source code</A
@@ -136,7 +136,7 @@
 ></A
 ><B
 >mkXsltName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -150,7 +150,7 @@
 ></A
 ><B
 >mkXsltAttribName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -164,7 +164,7 @@
 ></A
 ><B
 >xsltTransform</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -178,7 +178,7 @@
 ></A
 ><B
 >xsltStylesheet</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -192,7 +192,7 @@
 ></A
 ><B
 >xsltMessage</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -206,7 +206,7 @@
 ></A
 ><B
 >xsltForEach</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -220,7 +220,7 @@
 ></A
 ><B
 >xsltChoose</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -234,7 +234,7 @@
 ></A
 ><B
 >xsltWhen</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -248,7 +248,7 @@
 ></A
 ><B
 >xsltOtherwise</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -262,7 +262,7 @@
 ></A
 ><B
 >xsltIf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -276,7 +276,7 @@
 ></A
 ><B
 >xsltElement</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -290,7 +290,7 @@
 ></A
 ><B
 >xsltAttribute</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -304,7 +304,7 @@
 ></A
 ><B
 >xsltText</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -318,7 +318,7 @@
 ></A
 ><B
 >xsltValueOf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -332,7 +332,7 @@
 ></A
 ><B
 >xsltComment</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -346,7 +346,7 @@
 ></A
 ><B
 >xsltProcInstr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -360,7 +360,7 @@
 ></A
 ><B
 >xsltInclude</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -374,7 +374,7 @@
 ></A
 ><B
 >xsltImport</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -388,7 +388,7 @@
 ></A
 ><B
 >xsltTemplate</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -402,7 +402,7 @@
 ></A
 ><B
 >xsltApplyTemplates</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -416,7 +416,7 @@
 ></A
 ><B
 >xsltApplyImports</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -430,7 +430,7 @@
 ></A
 ><B
 >xsltCallTemplate</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -444,7 +444,7 @@
 ></A
 ><B
 >xsltVariable</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -458,7 +458,7 @@
 ></A
 ><B
 >xsltParam</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -472,7 +472,7 @@
 ></A
 ><B
 >xsltWithParam</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -486,7 +486,7 @@
 ></A
 ><B
 >xsltAttributeSet</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -500,7 +500,7 @@
 ></A
 ><B
 >xsltCopy</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -514,7 +514,7 @@
 ></A
 ><B
 >xsltCopyOf</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -528,7 +528,7 @@
 ></A
 ><B
 >xsltSort</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -542,7 +542,7 @@
 ></A
 ><B
 >xsltStripSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -556,7 +556,7 @@
 ></A
 ><B
 >xsltPreserveSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -570,7 +570,7 @@
 ></A
 ><B
 >xsltNamespaceAlias</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -584,7 +584,7 @@
 ></A
 ><B
 >xsltTerminate</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -598,7 +598,7 @@
 ></A
 ><B
 >xsltSelect</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -612,7 +612,7 @@
 ></A
 ><B
 >xsltTest</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -626,7 +626,7 @@
 ></A
 ><B
 >xsltName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -640,7 +640,7 @@
 ></A
 ><B
 >xsltNamespace</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -654,7 +654,7 @@
 ></A
 ><B
 >xsltUseAttributeSets</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -668,7 +668,7 @@
 ></A
 ><B
 >xsltHRef</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -682,7 +682,7 @@
 ></A
 ><B
 >xsltMatch</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -696,7 +696,7 @@
 ></A
 ><B
 >xsltPriority</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -710,7 +710,7 @@
 ></A
 ><B
 >xsltMode</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -724,7 +724,7 @@
 ></A
 ><B
 >xsltDataType</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -738,7 +738,7 @@
 ></A
 ><B
 >xsltOrder</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -752,7 +752,7 @@
 ></A
 ><B
 >xsltElements</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -766,7 +766,7 @@
 ></A
 ><B
 >xsltStylesheetPrefix</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -780,7 +780,7 @@
 ></A
 ><B
 >xsltResultPrefix</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -794,7 +794,7 @@
 ></A
 ><B
 >xsltVersion</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -808,7 +808,7 @@
 ></A
 ><B
 >xsltExlcudeResultPrefixes</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -822,7 +822,7 @@
 ></A
 ><B
 >xsltExtensionElementPrefixes</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -836,7 +836,7 @@
 ></A
 ><B
 >xsltUseAttributeSetsLRE</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -850,7 +850,7 @@
 ></A
 ><B
 >xsltVersionLRE</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -864,7 +864,7 @@
 ></A
 ><B
 >xsltExlcudeResultPrefixesLRE</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -878,7 +878,7 @@
 ></A
 ><B
 >xsltExtensionElementPrefixesLRE</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -892,7 +892,7 @@
 ></A
 ><B
 >xmlSpace</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
diff --git a/doc/hdoc_arrow/Text-XML-HXT-XSLT-XsltArrows.html b/doc/hdoc_arrow/Text-XML-HXT-XSLT-XsltArrows.html
--- a/doc/hdoc_arrow/Text-XML-HXT-XSLT-XsltArrows.html
+++ b/doc/hdoc_arrow/Text-XML-HXT-XSLT-XsltArrows.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XSLT/XsltArrows.hs"
 >Source code</A
diff --git a/doc/hdoc_arrow/doc-index-36.html b/doc/hdoc_arrow/doc-index-36.html
--- a/doc/hdoc_arrow/doc-index-36.html
+++ b/doc/hdoc_arrow/doc-index-36.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc_arrow/doc-index-38.html b/doc/hdoc_arrow/doc-index-38.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc_arrow/doc-index-38.html
@@ -0,0 +1,186 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-A.html"
+>A</A
+></TD
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-P.html"
+>P</A
+></TD
+><TD
+><A HREF="doc-index-Q.html"
+>Q</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-X.html"
+>X</A
+></TD
+><TD
+><A HREF="doc-index-Z.html"
+>Z</A
+></TD
+><TD
+><A HREF="doc-index-58.html"
+>:</A
+></TD
+><TD
+><A HREF="doc-index-36.html"
+>$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
+><A HREF="doc-index-43.html"
+>+</A
+></TD
+><TD
+><A HREF="doc-index-47.html"
+>/</A
+></TD
+><TD
+><A HREF="doc-index-60.html"
+>&lt;</A
+></TD
+><TD
+><A HREF="doc-index-62.html"
+>&gt;</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (&amp;)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>&amp;&amp;&amp;&amp;</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3A%26%26%26%26"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc_arrow/doc-index-43.html b/doc/hdoc_arrow/doc-index-43.html
--- a/doc/hdoc_arrow/doc-index-43.html
+++ b/doc/hdoc_arrow/doc-index-43.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc_arrow/doc-index-47.html b/doc/hdoc_arrow/doc-index-47.html
--- a/doc/hdoc_arrow/doc-index-47.html
+++ b/doc/hdoc_arrow/doc-index-47.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc_arrow/doc-index-58.html b/doc/hdoc_arrow/doc-index-58.html
--- a/doc/hdoc_arrow/doc-index-58.html
+++ b/doc/hdoc_arrow/doc-index-58.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc_arrow/doc-index-60.html b/doc/hdoc_arrow/doc-index-60.html
--- a/doc/hdoc_arrow/doc-index-60.html
+++ b/doc/hdoc_arrow/doc-index-60.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -165,6 +169,14 @@
 ><TR
 ><TD
 ><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>&lt;+&gt;&gt;</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3A%3C%2B%3E%3E"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
 ><TR
 ><TD CLASS="indexentry"
 >&lt;/</TD
diff --git a/doc/hdoc_arrow/doc-index-62.html b/doc/hdoc_arrow/doc-index-62.html
--- a/doc/hdoc_arrow/doc-index-62.html
+++ b/doc/hdoc_arrow/doc-index-62.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -180,6 +184,14 @@
 ><A HREF="Control-Arrow-ArrowList.html#v%3A%3E%3E."
 >Control.Arrow.ArrowList</A
 >, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>&gt;&gt;&gt;&gt;</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3A%3E%3E%3E%3E"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc_arrow/doc-index-A.html b/doc/hdoc_arrow/doc-index-A.html
--- a/doc/hdoc_arrow/doc-index-A.html
+++ b/doc/hdoc_arrow/doc-index-A.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -675,6 +679,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>a_parse_by_mimetype</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_by_mimetype"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >a_parse_html</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"
@@ -787,6 +799,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>a_tagsoup</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_tagsoup"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >a_trace</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"
@@ -1039,30 +1059,6 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->alwaysErr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AalwaysErr"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->alwaysOK</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AalwaysOK"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
->andCheck</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AandCheck"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
-></TR
-><TR
-><TD CLASS="indexentry"
 >appPickle</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AappPickle"
@@ -1083,6 +1079,38 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>application_xhtml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xhtml"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>application_xml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>application_xml_dtd</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml_dtd"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>application_xml_external_parsed_entity</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml_external_parsed_entity"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >applyA</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowList.html#v%3AapplyA"
@@ -1199,6 +1227,22 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XSLT-Compilation.html#v%3AassembleStylesheet"
 >Text.XML.HXT.XSLT.Compilation</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>assert</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Aassert"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>assertMaybe</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AassertMaybe"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc_arrow/doc-index-B.html b/doc/hdoc_arrow/doc-index-B.html
--- a/doc/hdoc_arrow/doc-index-B.html
+++ b/doc/hdoc_arrow/doc-index-B.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -169,9 +173,9 @@
 ><TD CLASS="indexentry"
 >buildUniversalName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc_arrow/doc-index-C.html b/doc/hdoc_arrow/doc-index-C.html
--- a/doc/hdoc_arrow/doc-index-C.html
+++ b/doc/hdoc_arrow/doc-index-C.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -223,6 +227,30 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>CheckA</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckA"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>CheckInteger</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckInteger"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>CheckString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3ACheckString"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >ChildNodes</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AChildNodes"
@@ -677,6 +705,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>checkWith</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AcheckWith"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >childNodes</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AchildNodes"
@@ -769,6 +805,174 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AcollectTextnodes"
 >Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compBool</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompBool"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compBoolExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompBoolExpr"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compFP</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompFP"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compGenExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompGenExpr"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compIntExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompIntExpr"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compLP</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompLP"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compNT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNT"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compNTA</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNTA"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compNTE</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNTE"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compNameT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNameT"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compNumber</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNumber"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compNumberExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompNumberExpr"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compPath</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompPath"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compPred</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompPred"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compPred1</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompPred1"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compRelPathExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompRelPathExpr"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompString"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compStringExpr</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompStringExpr"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compXP</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompXP"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compXPath</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompXPath"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>compXS</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AcompXS"
+>Text.XML.HXT.Arrow.XPathSimple</A
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc_arrow/doc-index-D.html b/doc/hdoc_arrow/doc-index-D.html
--- a/doc/hdoc_arrow/doc-index-D.html
+++ b/doc/hdoc_arrow/doc-index-D.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -357,6 +361,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>deadEndStreet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AdeadEndStreet"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >decimalStringToInt</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AdecimalStringToInt"
@@ -418,6 +430,14 @@
 ><A HREF="Control-Arrow-ArrowTree.html#v%3Adeep"
 >Control.Arrow.ArrowTree</A
 >, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>deep'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Adeep%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_arrow/doc-index-E.html b/doc/hdoc_arrow/doc-index-E.html
--- a/doc/hdoc_arrow/doc-index-E.html
+++ b/doc/hdoc_arrow/doc-index-E.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -367,35 +371,43 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>equalNodeSet</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AequalNodeSet"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >equalQName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >equalQNameBy</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQNameBy"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQNameBy"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >equivQName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivQName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >equivUri</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivUri"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivUri"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -460,6 +472,14 @@
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AerrorMsgIgnore"
 >Text.XML.HXT.Arrow.XmlIOStateArrow</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>errorMsgParam</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AerrorMsgParam"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_arrow/doc-index-F.html b/doc/hdoc_arrow/doc-index-F.html
--- a/doc/hdoc_arrow/doc-index-F.html
+++ b/doc/hdoc_arrow/doc-index-F.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -167,11 +171,43 @@
 ><TABLE CELLPADDING="0" CELLSPACING="5"
 ><TR
 ><TD CLASS="indexentry"
+>FunctionTable</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#t%3AFunctionTable"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>failure</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Afailure"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >fatal</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlArrow.html#v%3Afatal"
 >Text.XML.HXT.Arrow.XmlArrow</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>fctTableList</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AfctTableList"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>fctTableString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AfctTableString"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_arrow/doc-index-G.html b/doc/hdoc_arrow/doc-index-G.html
--- a/doc/hdoc_arrow/doc-index-G.html
+++ b/doc/hdoc_arrow/doc-index-G.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -263,6 +267,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>getAttrl'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetAttrl%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >getBaseURI</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AgetBaseURI"
@@ -331,6 +343,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>getChildren'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetChildren%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >getChildrenNT</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Data-NavTree.html#v%3AgetChildrenNT"
@@ -449,8 +469,8 @@
 ><TD CLASS="indexentry"
 >getElemAndAttrNodeSet</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetElemAndAttrNodeSet"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetElemAndAttrNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
@@ -477,8 +497,8 @@
 ><TD CLASS="indexentry"
 >getElemNodeSet</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetElemNodeSet"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetElemNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
@@ -585,8 +605,8 @@
 ><TD CLASS="indexentry"
 >getFromNodeSet</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetFromNodeSet"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetFromNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
@@ -1051,46 +1071,110 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>getXP</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXP"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >getXPathNodeSet</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathNodeSet"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
+><TD CLASS="indexentry" COLSPAN="2"
 >getXPathTrees</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTrees"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTrees"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTrees"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry" COLSPAN="2"
 >getXPathTreesInDoc</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesInDoc"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDoc"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesInDoc"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry" COLSPAN="2"
 >getXPathTreesInDocWithNsEnv</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesInDocWithNsEnv"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesInDocWithNsEnv"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
-><TD CLASS="indexentry"
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesInDocWithNsEnv"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry" COLSPAN="2"
 >getXPathTreesWithNsEnv</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AgetXPathTreesWithNsEnv"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AgetXPathTreesWithNsEnv"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesWithNsEnv"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
 ><TD CLASS="indexentry"
+>getXPathTreesWithNsEnvSimple</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AgetXPathTreesWithNsEnvSimple"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >getXmlContents</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-DocumentInput.html#v%3AgetXmlContents"
@@ -1120,6 +1204,14 @@
 ><A HREF="Control-Arrow-ArrowIf.html#v%3Aguards"
 >Control.Arrow.ArrowIf</A
 >, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>guards'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Aguards%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_arrow/doc-index-H.html b/doc/hdoc_arrow/doc-index-H.html
--- a/doc/hdoc_arrow/doc-index-H.html
+++ b/doc/hdoc_arrow/doc-index-H.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc_arrow/doc-index-I.html b/doc/hdoc_arrow/doc-index-I.html
--- a/doc/hdoc_arrow/doc-index-I.html
+++ b/doc/hdoc_arrow/doc-index-I.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -615,6 +619,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>isHtmlMimeType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisHtmlMimeType"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >isIOA</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Control-Arrow-ArrowIO.html#v%3AisIOA"
@@ -1224,6 +1236,14 @@
 ><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlLetter"
 >Text.XML.HXT.DOM.Unicode</A
 ></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>isXmlMimeType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisXmlMimeType"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_arrow/doc-index-K.html b/doc/hdoc_arrow/doc-index-K.html
--- a/doc/hdoc_arrow/doc-index-K.html
+++ b/doc/hdoc_arrow/doc-index-K.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -199,17 +203,17 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->k_enitity</TD
+>k_entities</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_enitity"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entities"
 >Text.XML.HXT.DOM.XmlKeywords</A
 >, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->k_entities</TD
+>k_entity</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entities"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entity"
 >Text.XML.HXT.DOM.XmlKeywords</A
 >, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
diff --git a/doc/hdoc_arrow/doc-index-L.html b/doc/hdoc_arrow/doc-index-L.html
--- a/doc/hdoc_arrow/doc-index-L.html
+++ b/doc/hdoc_arrow/doc-index-L.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -245,9 +249,9 @@
 ><TD CLASS="indexentry"
 >localPart</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AlocalPart"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_arrow/doc-index-M.html b/doc/hdoc_arrow/doc-index-M.html
--- a/doc/hdoc_arrow/doc-index-M.html
+++ b/doc/hdoc_arrow/doc-index-M.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -243,6 +247,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>mergeA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AmergeA"
+>Control.Arrow.ArrowList</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >mergeAttrl</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlNode.html#v%3AmergeAttrl"
@@ -259,6 +271,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>mk</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Amk"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >mkAbsURI</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AmkAbsURI"
@@ -549,17 +569,17 @@
 ><TD CLASS="indexentry"
 >mkName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >mkNsName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -593,17 +613,17 @@
 ><TD CLASS="indexentry"
 >mkPrefixLocalPart</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >mkQName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AmkQName"
->Text.XML.HXT.XSLT.Common</A
-></TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -633,9 +653,9 @@
 ><TD CLASS="indexentry"
 >mkSNsName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkSNsName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkSNsName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -776,6 +796,14 @@
 ><A HREF="Control-Arrow-ArrowTree.html#v%3Amulti"
 >Control.Arrow.ArrowTree</A
 >, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>multi'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Amulti%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_arrow/doc-index-N.html b/doc/hdoc_arrow/doc-index-N.html
--- a/doc/hdoc_arrow/doc-index-N.html
+++ b/doc/hdoc_arrow/doc-index-N.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -353,17 +357,17 @@
 ><TD CLASS="indexentry"
 >namePrefix</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamePrefix"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >namespaceUri</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamespaceUri"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -433,9 +437,9 @@
 ><TD CLASS="indexentry"
 >normalizeNsUri</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnormalizeNsUri"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnormalizeNsUri"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -505,9 +509,9 @@
 ><TD CLASS="indexentry"
 >nullQName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnullQName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnullQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -515,6 +519,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-Regex.html#v%3Anullable"
 >Text.XML.HXT.RelaxNG.XmlSchema.Regex</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>numParamValid</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AnumParamValid"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc_arrow/doc-index-O.html b/doc/hdoc_arrow/doc-index-O.html
--- a/doc/hdoc_arrow/doc-index-O.html
+++ b/doc/hdoc_arrow/doc-index-O.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -191,6 +195,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>ok</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3Aok"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >oneOrMore</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-DataTypes.html#v%3AoneOrMore"
@@ -204,14 +216,6 @@
 ><A HREF="Control-Arrow-ArrowIf.html#v%3AorElse"
 >Control.Arrow.ArrowIf</A
 >, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->orErr</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AorErr"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc_arrow/doc-index-P.html b/doc/hdoc_arrow/doc-index-P.html
--- a/doc/hdoc_arrow/doc-index-P.html
+++ b/doc/hdoc_arrow/doc-index-P.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -271,6 +275,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>parseHtmlTagSoup</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-ParserInterface.html#v%3AparseHtmlTagSoup"
+>Text.XML.HXT.Arrow.ParserInterface</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >parseNTest</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XSLT-CompiledStylesheet.html#v%3AparseNTest"
@@ -399,6 +411,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>performCheck</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AperformCheck"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >pickleDoc</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3ApickleDoc"
@@ -417,6 +437,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>prepareContents</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-WriteDocument.html#v%3AprepareContents"
+>Text.XML.HXT.Arrow.WriteDocument</A
+>, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >prepareXSLTDocument</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XSLT-Compilation.html#v%3AprepareXSLTDocument"
@@ -467,8 +495,8 @@
 ><TD CLASS="indexentry"
 >processFromNodeSet</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessFromNodeSet"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessFromNodeSet"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
@@ -523,16 +551,16 @@
 ><TD CLASS="indexentry"
 >processXPathTrees</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessXPathTrees"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessXPathTrees"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >processXPathTreesWithNsEnv</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html#v%3AprocessXPathTreesWithNsEnv"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html#v%3AprocessXPathTreesWithNsEnv"
+>Text.XML.HXT.Arrow.XPath</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
diff --git a/doc/hdoc_arrow/doc-index-Q.html b/doc/hdoc_arrow/doc-index-Q.html
--- a/doc/hdoc_arrow/doc-index-Q.html
+++ b/doc/hdoc_arrow/doc-index-Q.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -169,17 +173,17 @@
 ><TD CLASS="indexentry"
 >QN</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AQN"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AQN"
+>Text.XML.HXT.DOM.QualifiedName</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >QName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -193,9 +197,9 @@
 ><TD CLASS="indexentry"
 >qualifiedName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AqualifiedName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc_arrow/doc-index-R.html b/doc/hdoc_arrow/doc-index-R.html
--- a/doc/hdoc_arrow/doc-index-R.html
+++ b/doc/hdoc_arrow/doc-index-R.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc_arrow/doc-index-S.html b/doc/hdoc_arrow/doc-index-S.html
--- a/doc/hdoc_arrow/doc-index-S.html
+++ b/doc/hdoc_arrow/doc-index-S.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -1046,6 +1050,14 @@
 >stringValid</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AstringValid"
+>Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>stringValidFT</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AstringValidFT"
 >Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
 ></TD
 ></TR
diff --git a/doc/hdoc_arrow/doc-index-T.html b/doc/hdoc_arrow/doc-index-T.html
--- a/doc/hdoc_arrow/doc-index-T.html
+++ b/doc/hdoc_arrow/doc-index-T.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -373,6 +377,30 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>text_html</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_html"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>text_xml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_xml"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>text_xml_external_parsed_entity</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_xml_external_parsed_entity"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.XSLT.Common, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >thePicklerDTD</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Pickle.html#v%3AthePicklerDTD"
@@ -399,6 +427,22 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>this'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Athis%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>this''</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Athis%27%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >thisNode</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AthisNode"
@@ -415,6 +459,22 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>toNumber</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AtoNumber"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>toThis</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AtoThis"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >trace</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Atrace"
@@ -611,6 +671,14 @@
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XSLT-Common.html#v%3AtryFetchAttribute"
 >Text.XML.HXT.XSLT.Common</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>tryGetXPath</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AtryGetXPath"
+>Text.XML.HXT.Arrow.XPathSimple</A
 ></TD
 ></TR
 ><TR
diff --git a/doc/hdoc_arrow/doc-index-U.html b/doc/hdoc_arrow/doc-index-U.html
--- a/doc/hdoc_arrow/doc-index-U.html
+++ b/doc/hdoc_arrow/doc-index-U.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -373,20 +377,28 @@
 ><TD CLASS="indexentry"
 >universalName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AuniversalName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AuniversalName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >universalUri</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AuniversalUri"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AuniversalUri"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.Arrow.DOMInterface, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>unlistA</TD
+><TD CLASS="indexlinks"
+><A HREF="Control-Arrow-ArrowList.html#v%3AunlistA"
+>Control.Arrow.ArrowList</A
+>, Control.Arrow.ListArrows, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >unpickleDoc</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#v%3AunpickleDoc"
@@ -402,6 +414,14 @@
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AunsetParam"
 >Text.XML.HXT.Arrow.XmlIOStateArrow</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>unwrap</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3Aunwrap"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_arrow/doc-index-V.html b/doc/hdoc_arrow/doc-index-V.html
--- a/doc/hdoc_arrow/doc-index-V.html
+++ b/doc/hdoc_arrow/doc-index-V.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc_arrow/doc-index-W.html b/doc/hdoc_arrow/doc-index-W.html
--- a/doc/hdoc_arrow/doc-index-W.html
+++ b/doc/hdoc_arrow/doc-index-W.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -268,14 +272,6 @@
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AwithTraceLevel"
 >Text.XML.HXT.Arrow.XmlIOStateArrow</A
 >, Text.XML.HXT.Arrow, Text.XML.HXT.Arrow</TD
-></TR
-><TR
-><TD CLASS="indexentry"
->withVal</TD
-><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-RelaxNG-DataTypeLibUtils.html#v%3AwithVal"
->Text.XML.HXT.RelaxNG.DataTypeLibUtils</A
-></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_arrow/doc-index-X.html b/doc/hdoc_arrow/doc-index-X.html
--- a/doc/hdoc_arrow/doc-index-X.html
+++ b/doc/hdoc_arrow/doc-index-X.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -139,6 +139,10 @@
 >$</A
 ></TD
 ><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
+></TD
+><TD
 ><A HREF="doc-index-43.html"
 >+</A
 ></TD
@@ -275,6 +279,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>XPArrow</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#t%3AXPArrow"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >XPathParams</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-XSLT-Application.html#t%3AXPathParams"
@@ -349,6 +361,30 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xIndex</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AxIndex"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xNumber'</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AxNumber%27"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html#v%3AxString"
+>Text.XML.HXT.Arrow.XPathSimple</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xio_attrList</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3Axio_attrList"
@@ -807,6 +843,46 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xsd_ENTITIES</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_ENTITIES"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_ENTITY</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_ENTITY"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_ID</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_ID"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_IDREF</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_IDREF"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_IDREFS</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_IDREFS"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xsd_NCName</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NCName"
@@ -815,6 +891,38 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xsd_NMTOKEN</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NMTOKEN"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_NMTOKENS</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NMTOKENS"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_NOTATION</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_NOTATION"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_Name</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_Name"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xsd_QName</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_QName"
@@ -831,6 +939,22 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xsd_base64Binary</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_base64Binary"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_decimal</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_decimal"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xsd_enumeration</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_enumeration"
@@ -839,6 +963,30 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xsd_fractionDigits</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_fractionDigits"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_hexBinary</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_hexBinary"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_language</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_language"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xsd_length</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_length"
@@ -847,6 +995,22 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xsd_maxExclusive</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_maxExclusive"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_maxInclusive</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_maxInclusive"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xsd_maxLength</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_maxLength"
@@ -855,6 +1019,22 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xsd_minExclusive</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_minExclusive"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_minInclusive</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_minInclusive"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xsd_minLength</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_minLength"
@@ -863,6 +1043,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>xsd_normalizedString</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_normalizedString"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >xsd_pattern</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_pattern"
@@ -874,6 +1062,22 @@
 >xsd_string</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_string"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_token</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_token"
+>Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>xsd_totalDigits</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html#v%3Axsd_totalDigits"
 >Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C</A
 ></TD
 ></TR
diff --git a/doc/hdoc_arrow/doc-index-Z.html b/doc/hdoc_arrow/doc-index-Z.html
--- a/doc/hdoc_arrow/doc-index-Z.html
+++ b/doc/hdoc_arrow/doc-index-Z.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -137,6 +137,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc_arrow/doc-index.html b/doc/hdoc_arrow/doc-index.html
--- a/doc/hdoc_arrow/doc-index.html
+++ b/doc/hdoc_arrow/doc-index.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -141,6 +141,10 @@
 ><TD
 ><A HREF="doc-index-36.html"
 >$</A
+></TD
+><TD
+><A HREF="doc-index-38.html"
+>&amp;</A
 ></TD
 ><TD
 ><A HREF="doc-index-43.html"
diff --git a/doc/hdoc_arrow/index.html b/doc/hdoc_arrow/index.html
--- a/doc/hdoc_arrow/index.html
+++ b/doc/hdoc_arrow/index.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Arrow API</TITLE
+>Haskell Xml Toolbox 7.5: The Arrow API</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
 ></SCRIPT
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Arrow API</TD
+>Haskell Xml Toolbox 7.5: The Arrow API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -548,8 +548,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-XmlArrow.html"
->Text.XML.HXT.Arrow.XmlArrow</A
+><A HREF="Text-XML-HXT-Arrow-XPath.html"
+>Text.XML.HXT.Arrow.XPath</A
 ></TD
 ><TD
 ></TD
@@ -558,8 +558,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html"
->Text.XML.HXT.Arrow.XmlIOStateArrow</A
+><A HREF="Text-XML-HXT-Arrow-XPathSimple.html"
+>Text.XML.HXT.Arrow.XPathSimple</A
 ></TD
 ><TD
 ></TD
@@ -568,8 +568,8 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-XmlNode.html"
->Text.XML.HXT.Arrow.XmlNode</A
+><A HREF="Text-XML-HXT-Arrow-XmlArrow.html"
+>Text.XML.HXT.Arrow.XmlArrow</A
 ></TD
 ><TD
 ></TD
@@ -578,14 +578,24 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
-><A HREF="Text-XML-HXT-Arrow-XmlNodeSet.html"
->Text.XML.HXT.Arrow.XmlNodeSet</A
+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html"
+>Text.XML.HXT.Arrow.XmlIOStateArrow</A
 ></TD
 ><TD
 ></TD
 ><TD
 ></TD
 ></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 42em"
+><A HREF="Text-XML-HXT-Arrow-XmlNode.html"
+>Text.XML.HXT.Arrow.XmlNode</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -615,6 +625,16 @@
 ><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"
 >Text.XML.HXT.DOM.NamespacePredicates</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 42em"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html"
+>Text.XML.HXT.DOM.QualifiedName</A
 ></TD
 ><TD
 ></TD
diff --git a/doc/hdoc_filter/Control-Monad-MonadStateIO.html b/doc/hdoc_filter/Control-Monad-MonadStateIO.html
--- a/doc/hdoc_filter/Control-Monad-MonadStateIO.html
+++ b/doc/hdoc_filter/Control-Monad-MonadStateIO.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Monad/MonadStateIO.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Control-Strategies-DeepSeq.html b/doc/hdoc_filter/Control-Strategies-DeepSeq.html
--- a/doc/hdoc_filter/Control-Strategies-DeepSeq.html
+++ b/doc/hdoc_filter/Control-Strategies-DeepSeq.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Control/Strategies/DeepSeq.hs"
 >Source code</A
@@ -212,7 +212,7 @@
 ><TD CLASS="decl"
 ><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
 >DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
diff --git a/doc/hdoc_filter/Data-AssocList.html b/doc/hdoc_filter/Data-AssocList.html
--- a/doc/hdoc_filter/Data-AssocList.html
+++ b/doc/hdoc_filter/Data-AssocList.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/AssocList.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Data-Char-UTF8.html b/doc/hdoc_filter/Data-Char-UTF8.html
--- a/doc/hdoc_filter/Data-Char-UTF8.html
+++ b/doc/hdoc_filter/Data-Char-UTF8.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Char/UTF8.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Data-NavTree.html b/doc/hdoc_filter/Data-NavTree.html
--- a/doc/hdoc_filter/Data-NavTree.html
+++ b/doc/hdoc_filter/Data-NavTree.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/NavTree.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Data-Tree-Class.html b/doc/hdoc_filter/Data-Tree-Class.html
--- a/doc/hdoc_filter/Data-Tree-Class.html
+++ b/doc/hdoc_filter/Data-Tree-Class.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/Class.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Data-Tree-NTree-Filter.html b/doc/hdoc_filter/Data-Tree-NTree-Filter.html
--- a/doc/hdoc_filter/Data-Tree-NTree-Filter.html
+++ b/doc/hdoc_filter/Data-Tree-NTree-Filter.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/Filter.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Data-Tree-NTree-TypeDefs.html b/doc/hdoc_filter/Data-Tree-NTree-TypeDefs.html
--- a/doc/hdoc_filter/Data-Tree-NTree-TypeDefs.html
+++ b/doc/hdoc_filter/Data-Tree-NTree-TypeDefs.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Data/Tree/NTree/TypeDefs.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/System-PipeOpen.html b/doc/hdoc_filter/System-PipeOpen.html
--- a/doc/hdoc_filter/System-PipeOpen.html
+++ b/doc/hdoc_filter/System-PipeOpen.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./System/PipeOpen.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-EditFilters.html b/doc/hdoc_filter/Text-XML-HXT-DOM-EditFilters.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-EditFilters.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-EditFilters.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/EditFilters.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-FormatXmlTree.html b/doc/hdoc_filter/Text-XML-HXT-DOM-FormatXmlTree.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-FormatXmlTree.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-FormatXmlTree.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/FormatXmlTree.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-IsoLatinTables.html b/doc/hdoc_filter/Text-XML-HXT-DOM-IsoLatinTables.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-IsoLatinTables.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-IsoLatinTables.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/IsoLatinTables.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-Namespace.html b/doc/hdoc_filter/Text-XML-HXT-DOM-Namespace.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-Namespace.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-Namespace.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Namespace.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-NamespaceFilter.html b/doc/hdoc_filter/Text-XML-HXT-DOM-NamespaceFilter.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-NamespaceFilter.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-NamespaceFilter.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespaceFilter.hs"
 >Source code</A
@@ -236,7 +236,7 @@
 ><TD CLASS="doc"
 >Type for the namespace association list, used when propagating namespaces by
  modifying the <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TT
 > values in a tree
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-NamespacePredicates.html b/doc/hdoc_filter/Text-XML-HXT-DOM-NamespacePredicates.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-NamespacePredicates.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-NamespacePredicates.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/NamespacePredicates.hs"
 >Source code</A
@@ -89,9 +89,9 @@
 >setNamespace</A
 > :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
 >NsEnv</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -103,7 +103,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AxmlnsQN"
 >xmlnsQN</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -135,7 +135,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisWellformedQName"
 >isWellformedQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -147,7 +147,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisWellformedNSDecl"
 >isWellformedNSDecl</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -159,7 +159,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisDeclaredNamespace"
 >isDeclaredNamespace</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -186,9 +186,9 @@
 >setNamespace</B
 > :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"
 >NsEnv</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -222,7 +222,7 @@
 ></A
 ><B
 >xmlnsQN</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -271,7 +271,7 @@
 ></A
 ><B
 >isWellformedQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -292,7 +292,7 @@
 ></A
 ><B
 >isWellformedNSDecl</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
@@ -313,7 +313,7 @@
 ></A
 ><B
 >isDeclaredNamespace</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; Bool</TD
 ></TR
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-QualifiedName.html b/doc/hdoc_filter/Text-XML-HXT-DOM-QualifiedName.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-QualifiedName.html
@@ -0,0 +1,882 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Text.XML.HXT.DOM.QualifiedName</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>Haskell Xml Toolbox 7.5: The Filter API</TD
+><TD CLASS="topbut"
+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/QualifiedName.hs"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Text.XML.HXT.DOM.QualifiedName</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+>The core data types of the HXT DOM.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Synopsis</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A HREF="#t%3AQName"
+>QName</A
+>  = <A HREF="#v%3AQN"
+>QN</A
+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="recfield"
+><A HREF="#v%3AnamePrefix"
+>namePrefix</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="recfield"
+><A HREF="#v%3AlocalPart"
+>localPart</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="recfield"
+><A HREF="#v%3AnamespaceUri"
+>namespaceUri</A
+> :: String</TD
+></TR
+></TABLE
+>}</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AqualifiedName"
+>qualifiedName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AuniversalName"
+>universalName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AuniversalUri"
+>universalUri</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AbuildUniversalName"
+>buildUniversalName</A
+> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkQName"
+>mkQName</A
+> :: String -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkName"
+>mkName</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkPrefixLocalPart"
+>mkPrefixLocalPart</A
+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkNsName"
+>mkNsName</A
+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkSNsName"
+>mkSNsName</A
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnullQName"
+>nullQName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequalQName"
+>equalQName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequivQName"
+>equivQName</A
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequivUri"
+>equivUri</A
+> :: String -&gt; String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AequalQNameBy"
+>equalQNameBy</A
+> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnormalizeNsUri"
+>normalizeNsUri</A
+> :: String -&gt; String</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A NAME="t%3AQName"
+></A
+><B
+>QName</B
+> </TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="ndoc"
+><P
+>Namespace support for element and attribute names.
+</P
+><P
+>A qualified name consists of a name prefix, a local name
+ and a namespace uri.
+ All modules, which are not namespace aware, use only the <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"
+>localPart</A
+></TT
+> component.
+ When dealing with namespaces, the document tree must be processed by <A HREF="propagateNamespaces.html"
+>propagateNamespaces</A
+>
+ to split names of structure &quot;prefix:localPart&quot; and label the name with the apropriate namespace uri
+</P
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+>Constructors</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AQN"
+></A
+><B
+>QN</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="body" COLSPAN="2"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AnamePrefix"
+></A
+><B
+>namePrefix</B
+> :: String</TD
+><TD CLASS="rdoc"
+>the name prefix part of a qualified name &quot;namePrefix:localPart&quot;
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AlocalPart"
+></A
+><B
+>localPart</B
+> :: String</TD
+><TD CLASS="rdoc"
+>the local part of a qualified name &quot;namePrefix:localPart&quot;
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AnamespaceUri"
+></A
+><B
+>namespaceUri</B
+> :: String</TD
+><TD CLASS="rdoc"
+>the associated namespace uri
+</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:QName')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:QName" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
+>DeepSeq</A
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Eq <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Ord <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Read <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Show <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Typeable <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+></TABLE
+></DIV
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AqualifiedName"
+></A
+><B
+>qualifiedName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>builds the full name &quot;prefix:localPart&quot;, if prefix is not null, else the local part is the result
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AuniversalName"
+></A
+><B
+>universalName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>builds the &quot;universal&quot; name, that is the namespace uri surrounded with &quot;{&quot; and &quot;}&quot; followed by the local part
+ (specialisation of <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"
+>buildUniversalName</A
+></TT
+>)
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AuniversalUri"
+></A
+><B
+>universalUri</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>builds an &quot;universal&quot; uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,
+ where the subject, predicate and object often are concatenated from namespace uri and local part
+ (specialisation of <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"
+>buildUniversalName</A
+></TT
+>)
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AbuildUniversalName"
+></A
+><B
+>buildUniversalName</B
+> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else
+ namespace uri and local part are combined with the combining function given by the first parameter
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkQName"
+></A
+><B
+>mkQName</B
+> :: String -&gt; String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constructs a complete qualified name with <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"
+>namePrefix</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"
+>localPart</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"
+>namespaceUri</A
+></TT
+>.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkName"
+></A
+><B
+>mkName</B
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>constructs a simple, namespace unaware name, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"
+>namePrefix</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"
+>namespaceUri</A
+></TT
+> are set to the empty string.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkPrefixLocalPart"
+></A
+><B
+>mkPrefixLocalPart</B
+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>constructs a simple name, with prefix and localPart but without a namespace uri.
+</P
+><P
+>see also <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
+>mkName</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"
+>mkNsName</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkSNsName"
+>mkSNsName</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkNsName"
+></A
+><B
+>mkNsName</B
+> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.
+</P
+><P
+>see also <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
+>mkName</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"
+>mkPrefixLocalPart</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AmkSNsName"
+></A
+><B
+>mkSNsName</B
+> :: String -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter
+</P
+><P
+>see also <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"
+>mkNsName</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"
+>mkPrefixLocalPart</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AnullQName"
+></A
+><B
+>nullQName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Empty QName
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AequalQName"
+></A
+><B
+>equalQName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Equality of QNames: Two QNames are equal, if the local parts are equal
+ and the namespace URIs are equal.
+ The comparison works with and without namespace propagation.
+ If namespaces have been propagated, the name is split into prefix and local part
+ and the namespace uri is set. In this case the prefix is not significant for equality test.
+ If namespaces have not been propagated, the local part contains the full name, prefix
+ and namespace URI are empty. The full name (prefix and local part) is used for comparison.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AequivQName"
+></A
+><B
+>equivQName</B
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Equivalent QNames are defined as follows: The URIs are normalized before comparison.
+ Comparison is done with <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQNameBy"
+>equalQNameBy</A
+></TT
+> and <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivUri"
+>equivUri</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AequivUri"
+></A
+><B
+>equivUri</B
+> :: String -&gt; String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Comparison of normalized namespace URIs using <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnormalizeNsUri"
+>normalizeNsUri</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AequalQNameBy"
+></A
+><B
+>equalQNameBy</B
+> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Sometimes a weaker equality relation than <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"
+>equalQName</A
+></TT
+> is appropriate, e.g no case significance in names, ...
+ a name normalization function can be applied to the strings before comparing. Called by <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"
+>equalQName</A
+></TT
+> and
+ <TT
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivQName"
+>equivQName</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AnormalizeNsUri"
+></A
+><B
+>normalizeNsUri</B
+> :: String -&gt; String</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing &quot;/&quot; is ignored
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-TypeDefs.html b/doc/hdoc_filter/Text-XML-HXT-DOM-TypeDefs.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-TypeDefs.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-TypeDefs.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/TypeDefs.hs"
 >Source code</A
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.DOM.TypeDefs</FONT
 ></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
 ></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
@@ -58,15 +80,8 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
-><P
->The core data types of HDOM.
-</P
-><P
->Version : $Id: TypeDefs.hs,v 1.13 2006<EM
->11</EM
->09 20:27:42 hxml Exp $
-</P
-></TD
+>The core data types of the HXT DOM.
+</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
@@ -173,7 +188,7 @@
 ><TD CLASS="decl"
 >| <A HREF="#v%3AXPi"
 >XPi</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -183,7 +198,7 @@
 ><TD CLASS="decl"
 >| <A HREF="#v%3AXTag"
 >XTag</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -203,7 +218,7 @@
 ><TD CLASS="decl"
 >| <A HREF="#v%3AXAttr"
 >XAttr</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -324,210 +339,6 @@
 ><TR
 ><TD CLASS="decl"
 ><SPAN CLASS="keyword"
->data</SPAN
-> <A HREF="#t%3AQName"
->QName</A
->  = <A HREF="#v%3AQN"
->QN</A
-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AnamePrefix"
->namePrefix</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AlocalPart"
->localPart</A
-> :: String</TD
-></TR
-><TR
-><TD CLASS="recfield"
-><A HREF="#v%3AnamespaceUri"
->namespaceUri</A
-> :: String</TD
-></TR
-></TABLE
->}</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AqualifiedName"
->qualifiedName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AuniversalName"
->universalName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AuniversalUri"
->universalUri</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AbuildUniversalName"
->buildUniversalName</A
-> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkName"
->mkName</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkNsName"
->mkNsName</A
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkSNsName"
->mkSNsName</A
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnullQName"
->nullQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequalQName"
->equalQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequivQName"
->equivQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequivUri"
->equivUri</A
-> :: String -&gt; String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AequalQNameBy"
->equalQNameBy</A
-> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AnormalizeNsUri"
->normalizeNsUri</A
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
 >type</SPAN
 > <A HREF="#t%3ANsEnv"
 >NsEnv</A
@@ -598,7 +409,7 @@
 ><TD CLASS="recfield"
 ><A HREF="#v%3AattrNodes"
 >attrNodes</A
-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: [<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >]</TD
 ></TR
@@ -627,6 +438,16 @@
 >XmlNodeSet</A
 >)]</TD
 ></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Text-XML-HXT-DOM-QualifiedName.html"
+>Text.XML.HXT.DOM.QualifiedName</A
+></TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -784,7 +605,7 @@
 ></A
 ><B
 >XPi</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -802,7 +623,7 @@
 ></A
 ><B
 >XTag</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -832,7 +653,7 @@
 ></A
 ><B
 >XAttr</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ><TD CLASS="rdoc"
@@ -1182,520 +1003,6 @@
 ><TR
 ><TD CLASS="decl"
 ><SPAN CLASS="keyword"
->data</SPAN
-> <A NAME="t%3AQName"
-></A
-><B
->QName</B
-> </TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
-><TR
-><TD CLASS="ndoc"
-><P
->Namespace support for element and attribute names.
-</P
-><P
->A qualified name consists of a name prefix, a local name
- and a namespace uri.
- All modules, which are not namespace aware, use only the <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AlocalPart"
->localPart</A
-></TT
-> component.
- When dealing with namespaces, the document tree must be processed by <A HREF="propagateNamespaces.html"
->propagateNamespaces</A
->
- to split names of structure &quot;prefix:localPart&quot; and label the name with the apropriate namespace uri
-</P
-></TD
-></TR
-><TR
-><TD CLASS="section4"
->Constructors</TD
-></TR
-><TR
-><TD CLASS="body"
-><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AQN"
-></A
-><B
->QN</B
-></TD
-><TD CLASS="rdoc"
-></TD
-></TR
-><TR
-><TD CLASS="body" COLSPAN="2"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AnamePrefix"
-></A
-><B
->namePrefix</B
-> :: String</TD
-><TD CLASS="rdoc"
->the name prefix part of a qualified name &quot;namePrefix:localPart&quot;
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AlocalPart"
-></A
-><B
->localPart</B
-> :: String</TD
-><TD CLASS="rdoc"
->the local part of a qualified name &quot;namePrefix:localPart&quot;
-</TD
-></TR
-><TR
-><TD CLASS="arg"
-><A NAME="v%3AnamespaceUri"
-></A
-><B
->namespaceUri</B
-> :: String</TD
-><TD CLASS="rdoc"
->the associated namespace uri
-</TD
-></TR
-></TABLE
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="section4"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:QName')" ALT="show/hide"
-> Instances</TD
-></TR
-><TR
-><TD CLASS="body"
-><DIV ID="i:QName" STYLE="display:block;"
-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
-><TR
-><TD CLASS="decl"
-><A HREF="Control-Strategies-DeepSeq.html#t%3ADeepSeq"
->DeepSeq</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Eq <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Ord <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Read <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Show <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="decl"
->Typeable <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-></TABLE
-></DIV
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AqualifiedName"
-></A
-><B
->qualifiedName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds the full name &quot;prefix:localPart&quot;, if prefix is not null, else the local part is the result
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuniversalName"
-></A
-><B
->universalName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds the &quot;universal&quot; name, that is the namespace uri surrounded with &quot;{&quot; and &quot;}&quot; followed by the local part
- (specialisation of <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"
->buildUniversalName</A
-></TT
->)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AuniversalUri"
-></A
-><B
->universalUri</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds an &quot;universal&quot; uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,
- where the subject, predicate and object often are concatenated from namespace uri and local part
- (specialisation of <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"
->buildUniversalName</A
-></TT
->)
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AbuildUniversalName"
-></A
-><B
->buildUniversalName</B
-> :: (String -&gt; String -&gt; String) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else
- namespace uri and local part are combined with the combining function given by the first parameter
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkName"
-></A
-><B
->mkName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->constructs a simple, namespace unaware name, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamePrefix"
->namePrefix</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamespaceUri"
->namespaceUri</A
-></TT
-> are set to the empty string.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkPrefixLocalPart"
-></A
-><B
->mkPrefixLocalPart</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple name, with prefix and localPart but without a namespace uri.
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"
->mkName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"
->mkNsName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkSNsName"
->mkSNsName</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkNsName"
-></A
-><B
->mkNsName</B
-> :: String -&gt; String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"
->mkName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AmkSNsName"
-></A
-><B
->mkSNsName</B
-> :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter
-</P
-><P
->see also <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"
->mkNsName</A
-></TT
->, <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"
->mkPrefixLocalPart</A
-></TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnullQName"
-></A
-><B
->nullQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Empty QName
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequalQName"
-></A
-><B
->equalQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Equality of QNames: Two QNames are equal, if the local parts are equal
- and the namespace URIs are equal.
- The comparison works with and without namespace propagation.
- If namespaces have been propagated, the name is split into prefix and local part
- and the namespace uri is set. In this case the prefix is not significant for equality test.
- If namespaces have not been propagated, the local part contains the full name, prefix
- and namespace URI are empty. The full name (prefix and local part) is used for comparison.
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequivQName"
-></A
-><B
->equivQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Equivalent QNames are defined as follows: The URIs are normalized before comparison.
- Comparison is done with <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQNameBy"
->equalQNameBy</A
-></TT
-> and <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivUri"
->equivUri</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequivUri"
-></A
-><B
->equivUri</B
-> :: String -&gt; String -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Comparison of normalized namespace URIs using <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnormalizeNsUri"
->normalizeNsUri</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AequalQNameBy"
-></A
-><B
->equalQNameBy</B
-> :: (String -&gt; String -&gt; Bool) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->QName</A
-> -&gt; Bool</TD
-></TR
-><TR
-><TD CLASS="doc"
->Sometimes a weaker equality relation than <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"
->equalQName</A
-></TT
-> is appropriate, e.g no case significance in names, ...
- a name normalization function can be applied to the strings before comparing. Called by <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"
->equalQName</A
-></TT
-> and
- <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivQName"
->equivQName</A
-></TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A NAME="v%3AnormalizeNsUri"
-></A
-><B
->normalizeNsUri</B
-> :: String -&gt; String</TD
-></TR
-><TR
-><TD CLASS="doc"
->Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing &quot;/&quot; is ignored
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><SPAN CLASS="keyword"
 >type</SPAN
 > <A NAME="t%3ANsEnv"
 ></A
@@ -1709,7 +1016,7 @@
 ><TD CLASS="doc"
 >Type for the namespace association list, used when propagating namespaces by
  modifying the <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TT
 > values in a tree
@@ -1849,7 +1156,7 @@
 ></A
 ><B
 >attrNodes</B
-> :: [<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: [<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >]</TD
 ><TD CLASS="rdoc"
@@ -1924,6 +1231,16 @@
 > = [(Int, <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlNodeSet"
 >XmlNodeSet</A
 >)]</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Text-XML-HXT-DOM-QualifiedName.html"
+>Text.XML.HXT.DOM.QualifiedName</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-UTF8Decoding.html b/doc/hdoc_filter/Text-XML-HXT-DOM-UTF8Decoding.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-UTF8Decoding.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-UTF8Decoding.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/UTF8Decoding.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-Unicode.html b/doc/hdoc_filter/Text-XML-HXT-DOM-Unicode.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-Unicode.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-Unicode.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Unicode.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-Util.html b/doc/hdoc_filter/Text-XML-HXT-DOM-Util.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-Util.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-Util.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/Util.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlKeywords.html b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlKeywords.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlKeywords.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlKeywords.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlKeywords.hs"
 >Source code</A
@@ -458,6 +458,16 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Aa_parse_by_mimetype"
+>a_parse_by_mimetype</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Aa_parse_html"
 >a_parse_html</A
 > :: String</TD
@@ -578,6 +588,16 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Aa_tagsoup"
+>a_tagsoup</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3Aa_trace"
 >a_trace</A
 > :: String</TD
@@ -858,8 +878,8 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A HREF="#v%3Ak_enitity"
->k_enitity</A
+><A HREF="#v%3Ak_entity"
+>k_entity</A
 > :: String</TD
 ></TR
 ><TR
@@ -1512,6 +1532,96 @@
 >a_do_not_collect_errors</A
 > :: String</TD
 ></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xhtml"
+>application_xhtml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xml"
+>application_xml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xml_external_parsed_entity"
+>application_xml_external_parsed_entity</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aapplication_xml_dtd"
+>application_xml_dtd</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atext_html"
+>text_html</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atext_xml"
+>text_xml</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atext_xml_external_parsed_entity"
+>text_xml_external_parsed_entity</A
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisHtmlMimeType"
+>isHtmlMimeType</A
+> :: String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisXmlMimeType"
+>isXmlMimeType</A
+> :: String -&gt; Bool</TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -1949,6 +2059,18 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3Aa_parse_by_mimetype"
+></A
+><B
+>a_parse_by_mimetype</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Aa_parse_html"
 ></A
 ><B
@@ -2093,6 +2215,18 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3Aa_tagsoup"
+></A
+><B
+>a_tagsoup</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3Aa_trace"
 ></A
 ><B
@@ -2429,10 +2563,10 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
-><A NAME="v%3Ak_enitity"
+><A NAME="v%3Ak_entity"
 ></A
 ><B
->k_enitity</B
+>k_entity</B
 > :: String</TD
 ></TR
 ><TR
@@ -3085,7 +3219,7 @@
 ></TR
 ><TR
 ><TD CLASS="doc"
->the predefined namespace uri for xml: &quot;http://www.w3.org/XML/1998/namespaces&quot;
+>the predefined namespace uri for xml: &quot;http://www.w3.org/XML/1998/namespace&quot;
 </TD
 ></TR
 ><TR
@@ -3229,6 +3363,114 @@
 ><B
 >a_do_not_collect_errors</B
 > :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aapplication_xhtml"
+></A
+><B
+>application_xhtml</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aapplication_xml"
+></A
+><B
+>application_xml</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aapplication_xml_external_parsed_entity"
+></A
+><B
+>application_xml_external_parsed_entity</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Aapplication_xml_dtd"
+></A
+><B
+>application_xml_dtd</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Atext_html"
+></A
+><B
+>text_html</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Atext_xml"
+></A
+><B
+>text_xml</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3Atext_xml_external_parsed_entity"
+></A
+><B
+>text_xml_external_parsed_entity</B
+> :: String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AisHtmlMimeType"
+></A
+><B
+>isHtmlMimeType</B
+> :: String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AisXmlMimeType"
+></A
+><B
+>isXmlMimeType</B
+> :: String -&gt; Bool</TD
 ></TR
 ><TR
 ><TD CLASS="s15"
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlOptions.html b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlOptions.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlOptions.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlOptions.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlOptions.hs"
 >Source code</A
@@ -241,6 +241,14 @@
 >a_parse_html</A
 ></TT
 >, <TT
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_by_mimetype"
+>a_parse_by_mimetype</A
+></TT
+>, <TT
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_tagsoup"
+>a_tagsoup</A
+></TT
+> <TT
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_issue_warnings"
 >a_issue_warnings</A
 ></TT
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlState.html b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlState.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlState.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlState.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlState.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTree.html b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTree.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTree.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTree.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTree.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFilter.html b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFilter.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFilter.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFilter.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeFilter.hs"
 >Source code</A
@@ -793,7 +793,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkQTag"
 >mkQTag</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -841,7 +841,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkQAttr"
 >mkQAttr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -1345,7 +1345,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Aqetag"
 >qetag</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -1359,7 +1359,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Aqtag"
 >qtag</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -1407,7 +1407,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Aqattr"
 >qattr</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -2737,7 +2737,7 @@
 ></A
 ><B
 >mkQTag</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -2833,7 +2833,7 @@
 ></A
 ><B
 >mkQAttr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -3927,7 +3927,7 @@
 ></A
 ><B
 >qetag</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -3948,7 +3948,7 @@
 ></A
 ><B
 >qtag</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
@@ -4030,7 +4030,7 @@
 ></A
 ><B
 >qattr</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
 >XmlFilter</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFunctions.html b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFunctions.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFunctions.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeFunctions.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeFunctions.hs"
 >Source code</A
@@ -345,6 +345,18 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3AtextOfXNode"
+>textOfXNode</A
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3AmkXTagTree"
 >mkXTagTree</A
 > :: String -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
@@ -363,7 +375,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkQTagTree"
 >mkQTagTree</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -545,7 +557,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkQAttrTree"
 >mkQAttrTree</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -783,7 +795,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AshowQName"
 >showQName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String -&gt; String</TD
 ></TR
@@ -1564,6 +1576,20 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A NAME="v%3AtextOfXNode"
+></A
+><B
+>textOfXNode</B
+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A NAME="v%3AmkXTagTree"
 ></A
 ><B
@@ -1607,7 +1633,7 @@
 ></A
 ><B
 >mkQTagTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -2026,7 +2052,7 @@
 ></A
 ><B
 >mkQAttrTree</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
 >XmlTrees</A
@@ -2456,7 +2482,7 @@
 ></A
 ><B
 >showQName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String -&gt; String</TD
 ></TR
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeTypes.html b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeTypes.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeTypes.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM-XmlTreeTypes.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM/XmlTreeTypes.hs"
 >Source code</A
@@ -231,7 +231,7 @@
 >type</SPAN
 > <A HREF="#t%3ATagName"
 >TagName</A
-> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> = <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -245,7 +245,7 @@
 >type</SPAN
 > <A HREF="#t%3AAttrName"
 >AttrName</A
-> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> = <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -257,7 +257,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AtName"
 >tName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</TD
 ></TR
@@ -269,7 +269,7 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AaName"
 >aName</A
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</TD
 ></TR
@@ -464,7 +464,7 @@
 ></A
 ><B
 >TagName</B
-> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> = <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -485,7 +485,7 @@
 ></A
 ><B
 >AttrName</B
-> = <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> = <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -504,14 +504,14 @@
 ></A
 ><B
 >tName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</TD
 ></TR
 ><TR
 ><TD CLASS="doc"
 >shortcut for <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AqualifiedName"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"
 >qualifiedName</A
 ></TT
 >
@@ -527,14 +527,14 @@
 ></A
 ><B
 >aName</B
-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 > -&gt; String</TD
 ></TR
 ><TR
 ><TD CLASS="doc"
 >shortcut for <TT
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AqualifiedName"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"
 >qualifiedName</A
 ></TT
 >
diff --git a/doc/hdoc_filter/Text-XML-HXT-DOM.html b/doc/hdoc_filter/Text-XML-HXT-DOM.html
--- a/doc/hdoc_filter/Text-XML-HXT-DOM.html
+++ b/doc/hdoc_filter/Text-XML-HXT-DOM.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/DOM.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-DTDProcessing.html b/doc/hdoc_filter/Text-XML-HXT-Parser-DTDProcessing.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-DTDProcessing.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-DTDProcessing.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/DTDProcessing.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-DefaultURI.html b/doc/hdoc_filter/Text-XML-HXT-Parser-DefaultURI.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-DefaultURI.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-DefaultURI.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/DefaultURI.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParsec.html b/doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParsec.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParsec.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParsec.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/HtmlParsec.hs"
 >Source code</A
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.Parser.HtmlParsec</FONT
 ></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
 ></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
@@ -59,26 +81,18 @@
 ><TR
 ><TD CLASS="doc"
 ><P
->HTML Parsec Parser
-</P
-><P
->Version : $Id: HtmlParsec.hs,v 1.11 2006<EM
->12</EM
->08 11:48:20 hxml Exp $
-</P
-><P
 >This parser tries to interprete everything as HTML
- no errors are emitted during parsing. If something looks
- weired, warning messages are inserted in the document tree
+   no errors are emitted during parsing. If something looks
+   weired, warning messages are inserted in the document tree.
 </P
 ><P
->all filter are pure XmlFilter,
- errror handling and IO is done in <TT
+>All filter are pure XmlFilter,
+   errror handling and IO is done in <TT
 ><A HREF="Text-XML-HXT-Parser.html#t%3AHtmlParser"
 >HtmlParser</A
 ></TT
 >
- or other modules
+   or other modules
 </P
 ></TD
 ></TR
@@ -172,6 +186,18 @@
 ></A
 ><B
 >isInnerHtmlTagOf</B
+> :: String -&gt; String -&gt; Bool</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AclosesHtmlTag"
+></A
+><B
+>closesHtmlTag</B
 > :: String -&gt; String -&gt; Bool</TD
 ></TR
 ><TR
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParser.html b/doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParser.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParser.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-HtmlParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/HtmlParser.hs"
 >Source code</A
@@ -44,10 +44,32 @@
 ><FONT SIZE="6"
 >Text.XML.HXT.Parser.HtmlParser</FONT
 ></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
 ></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>stable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
 ></TABLE
 ></TD
 ></TR
+></TABLE
+></TD
+></TR
 ><TR
 ><TD CLASS="s15"
 ></TD
@@ -59,21 +81,13 @@
 ><TR
 ><TD CLASS="doc"
 ><P
->HTML Parser
-</P
-><P
->Version : $Id: HtmlParser.hs,v 1.4 2006<EM
->11</EM
->12 14:53:00 hxml Exp $
-</P
-><P
 >This parser tries to interprete everything as HTML
- no errors are emitted during parsing. If something looks
- weired, warning messages are inserted in the document tree
+   no errors are emitted during parsing. If something looks
+   weired, warning messages are inserted in the document tree.
 </P
 ><P
->module contains state filter for easy parsing and error handling
- real work is done in <TT
+>Module contains state filter for easy parsing and error handling
+   real work is done in <TT
 ><A HREF="Text-XML-HXT-Parser.html#t%3AHtmlParsec"
 >HtmlParsec</A
 ></TT
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-MainFunctions.html b/doc/hdoc_filter/Text-XML-HXT-Parser-MainFunctions.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-MainFunctions.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-MainFunctions.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/MainFunctions.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandler.html b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandler.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandler.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandler.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandler.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerFile.html b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerFile.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerFile.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerFile.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerFile.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpCurl.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpNative.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerHttpNativeOrCurl.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerUtil.html b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerUtil.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerUtil.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-ProtocolHandlerUtil.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/ProtocolHandlerUtil.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-TagSoup.html b/doc/hdoc_filter/Text-XML-HXT-Parser-TagSoup.html
new file mode 100644
--- /dev/null
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-TagSoup.html
@@ -0,0 +1,124 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Text.XML.HXT.Parser.TagSoup</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>Haskell Xml Toolbox 7.5: The Filter API</TD
+><TD CLASS="topbut"
+><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/TagSoup.hs"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Text.XML.HXT.Parser.TagSoup</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>experimental</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Maintainer</TD
+><TD CLASS="infoval"
+>Uwe Schmidt (uwe@fh-wedel.de)</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+>lasy HTML and simpe XML parser implemented with tagsoup
+   parsing is done with a very simple monadic top down parser
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A NAME="v%3AparseHtmlTagSoup"
+></A
+><B
+>parseHtmlTagSoup</B
+> :: Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; Bool -&gt; String -&gt; String -&gt; XmlTrees</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XhtmlEntities.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XhtmlEntities.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XhtmlEntities.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-XhtmlEntities.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XhtmlEntities.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlCharParser.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlCharParser.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlCharParser.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlCharParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlCharParser.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDParser.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDParser.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDParser.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlDTDParser.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDTokenParser.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDTokenParser.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDTokenParser.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlDTDTokenParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlDTDTokenParser.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlEntities.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlEntities.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlEntities.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlEntities.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlEntities.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlInput.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlInput.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlInput.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlInput.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlInput.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlOutput.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlOutput.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlOutput.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlOutput.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlOutput.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlParsec.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlParsec.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlParsec.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlParsec.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlParsec.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlParser.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlParser.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlParser.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlParser.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlTokenParser.html b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlTokenParser.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser-XmlTokenParser.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser-XmlTokenParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser/XmlTokenParser.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Parser.html b/doc/hdoc_filter/Text-XML-HXT-Parser.html
--- a/doc/hdoc_filter/Text-XML-HXT-Parser.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Parser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Parser.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-AttributeValueValidation.html b/doc/hdoc_filter/Text-XML-HXT-Validator-AttributeValueValidation.html
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-AttributeValueValidation.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Validator-AttributeValueValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/AttributeValueValidation.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-DTDValidation.html b/doc/hdoc_filter/Text-XML-HXT-Validator-DTDValidation.html
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-DTDValidation.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Validator-DTDValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DTDValidation.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-DocTransformation.html b/doc/hdoc_filter/Text-XML-HXT-Validator-DocTransformation.html
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-DocTransformation.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Validator-DocTransformation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DocTransformation.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-DocValidation.html b/doc/hdoc_filter/Text-XML-HXT-Validator-DocValidation.html
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-DocValidation.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Validator-DocValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/DocValidation.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-IdValidation.html b/doc/hdoc_filter/Text-XML-HXT-Validator-IdValidation.html
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-IdValidation.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Validator-IdValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/IdValidation.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-RE.html b/doc/hdoc_filter/Text-XML-HXT-Validator-RE.html
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-RE.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Validator-RE.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/RE.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-Validation.html b/doc/hdoc_filter/Text-XML-HXT-Validator-Validation.html
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-Validation.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Validator-Validation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/Validation.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-ValidationFilter.html b/doc/hdoc_filter/Text-XML-HXT-Validator-ValidationFilter.html
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-ValidationFilter.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Validator-ValidationFilter.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/ValidationFilter.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-Validator-XmlRE.html b/doc/hdoc_filter/Text-XML-HXT-Validator-XmlRE.html
--- a/doc/hdoc_filter/Text-XML-HXT-Validator-XmlRE.html
+++ b/doc/hdoc_filter/Text-XML-HXT-Validator-XmlRE.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/Validator/XmlRE.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-NavTree.html b/doc/hdoc_filter/Text-XML-HXT-XPath-NavTree.html
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-NavTree.html
+++ b/doc/hdoc_filter/Text-XML-HXT-XPath-NavTree.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/NavTree.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathArithmetic.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathArithmetic.html
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathArithmetic.html
+++ b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathArithmetic.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathArithmetic.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathDataTypes.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathDataTypes.html
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathDataTypes.html
+++ b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathDataTypes.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathDataTypes.hs"
 >Source code</A
@@ -536,7 +536,7 @@
 ><TD CLASS="decl"
 >= <A HREF="#v%3ANameTest"
 >NameTest</A
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ></TR
@@ -900,7 +900,7 @@
 >type</SPAN
 > <A HREF="#t%3AKeyTab"
 >KeyTab</A
-> = [(<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> = [(<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >, String, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
 >NavXmlTree</A
@@ -1927,7 +1927,7 @@
 ></A
 ><B
 >NameTest</B
-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 ></TD
 ><TD CLASS="rdoc"
@@ -2558,7 +2558,7 @@
 ></A
 ><B
 >KeyTab</B
-> = [(<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
+> = [(<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
 >QName</A
 >, String, <A HREF="Text-XML-HXT-XPath-XPathDataTypes.html#t%3ANavXmlTree"
 >NavXmlTree</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathEval.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathEval.html
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathEval.html
+++ b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathEval.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathEval.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathFct.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathFct.html
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathFct.html
+++ b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathFct.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathFct.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathKeywords.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathKeywords.html
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathKeywords.html
+++ b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathKeywords.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathKeywords.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathParser.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathParser.html
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathParser.html
+++ b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathParser.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathToNodeSet.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathToNodeSet.html
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathToNodeSet.html
+++ b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathToNodeSet.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathToNodeSet.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathToString.html b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathToString.html
--- a/doc/hdoc_filter/Text-XML-HXT-XPath-XPathToString.html
+++ b/doc/hdoc_filter/Text-XML-HXT-XPath-XPathToString.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath/XPathToString.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/Text-XML-HXT-XPath.html b/doc/hdoc_filter/Text-XML-HXT-XPath.html
--- a/doc/hdoc_filter/Text-XML-HXT-XPath.html
+++ b/doc/hdoc_filter/Text-XML-HXT-XPath.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="http://darcs.fh-wedel.de/hxt/src/./Text/XML/HXT/XPath.hs"
 >Source code</A
diff --git a/doc/hdoc_filter/doc-index-36.html b/doc/hdoc_filter/doc-index-36.html
--- a/doc/hdoc_filter/doc-index-36.html
+++ b/doc/hdoc_filter/doc-index-36.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-43.html b/doc/hdoc_filter/doc-index-43.html
--- a/doc/hdoc_filter/doc-index-43.html
+++ b/doc/hdoc_filter/doc-index-43.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-46.html b/doc/hdoc_filter/doc-index-46.html
--- a/doc/hdoc_filter/doc-index-46.html
+++ b/doc/hdoc_filter/doc-index-46.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-47.html b/doc/hdoc_filter/doc-index-47.html
--- a/doc/hdoc_filter/doc-index-47.html
+++ b/doc/hdoc_filter/doc-index-47.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-58.html b/doc/hdoc_filter/doc-index-58.html
--- a/doc/hdoc_filter/doc-index-58.html
+++ b/doc/hdoc_filter/doc-index-58.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-60.html b/doc/hdoc_filter/doc-index-60.html
--- a/doc/hdoc_filter/doc-index-60.html
+++ b/doc/hdoc_filter/doc-index-60.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-A.html b/doc/hdoc_filter/doc-index-A.html
--- a/doc/hdoc_filter/doc-index-A.html
+++ b/doc/hdoc_filter/doc-index-A.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -643,6 +643,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>a_parse_by_mimetype</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_by_mimetype"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >a_parse_html</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_parse_html"
@@ -771,6 +779,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>a_tagsoup</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_tagsoup"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >a_trace</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aa_trace"
@@ -976,6 +992,38 @@
 ><A HREF="Text-XML-HXT-XPath-NavTree.html#v%3AancestorOrSelfAxis"
 >Text.XML.HXT.XPath.NavTree</A
 >, Text.XML.HXT.XPath.XPathDataTypes</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>application_xhtml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xhtml"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>application_xml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>application_xml_dtd</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml_dtd"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>application_xml_external_parsed_entity</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Aapplication_xml_external_parsed_entity"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_filter/doc-index-B.html b/doc/hdoc_filter/doc-index-B.html
--- a/doc/hdoc_filter/doc-index-B.html
+++ b/doc/hdoc_filter/doc-index-B.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -173,9 +173,9 @@
 ><TD CLASS="indexentry"
 >buildUniversalName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AbuildUniversalName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AbuildUniversalName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ></TABLE
 ></TD
diff --git a/doc/hdoc_filter/doc-index-C.html b/doc/hdoc_filter/doc-index-C.html
--- a/doc/hdoc_filter/doc-index-C.html
+++ b/doc/hdoc_filter/doc-index-C.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -518,6 +518,14 @@
 ><A HREF="Text-XML-HXT-DOM-XmlState.html#v%3AclearStatus"
 >Text.XML.HXT.DOM.XmlState</A
 >, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>closesHtmlTag</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AclosesHtmlTag"
+>Text.XML.HXT.Parser.HtmlParsec</A
+>, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_filter/doc-index-D.html b/doc/hdoc_filter/doc-index-D.html
--- a/doc/hdoc_filter/doc-index-D.html
+++ b/doc/hdoc_filter/doc-index-D.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-E.html b/doc/hdoc_filter/doc-index-E.html
--- a/doc/hdoc_filter/doc-index-E.html
+++ b/doc/hdoc_filter/doc-index-E.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -349,33 +349,33 @@
 ><TD CLASS="indexentry"
 >equalQName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >equalQNameBy</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequalQNameBy"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQNameBy"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >equivQName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivQName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >equivUri</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AequivUri"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequivUri"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_filter/doc-index-F.html b/doc/hdoc_filter/doc-index-F.html
--- a/doc/hdoc_filter/doc-index-F.html
+++ b/doc/hdoc_filter/doc-index-F.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-G.html b/doc/hdoc_filter/doc-index-G.html
--- a/doc/hdoc_filter/doc-index-G.html
+++ b/doc/hdoc_filter/doc-index-G.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-H.html b/doc/hdoc_filter/doc-index-H.html
--- a/doc/hdoc_filter/doc-index-H.html
+++ b/doc/hdoc_filter/doc-index-H.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-I.html b/doc/hdoc_filter/doc-index-I.html
--- a/doc/hdoc_filter/doc-index-I.html
+++ b/doc/hdoc_filter/doc-index-I.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -463,6 +463,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>isHtmlMimeType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisHtmlMimeType"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >isIdAttrType</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AisIdAttrType"
@@ -1036,6 +1044,14 @@
 ><A HREF="Text-XML-HXT-DOM-Unicode.html#v%3AisXmlLetter"
 >Text.XML.HXT.DOM.Unicode</A
 ></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>isXmlMimeType</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3AisXmlMimeType"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_filter/doc-index-K.html b/doc/hdoc_filter/doc-index-K.html
--- a/doc/hdoc_filter/doc-index-K.html
+++ b/doc/hdoc_filter/doc-index-K.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -203,17 +203,17 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->k_enitity</TD
+>k_entities</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_enitity"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entities"
 >Text.XML.HXT.DOM.XmlKeywords</A
 >, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
->k_entities</TD
+>k_entity</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entities"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Ak_entity"
 >Text.XML.HXT.DOM.XmlKeywords</A
 >, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
diff --git a/doc/hdoc_filter/doc-index-L.html b/doc/hdoc_filter/doc-index-L.html
--- a/doc/hdoc_filter/doc-index-L.html
+++ b/doc/hdoc_filter/doc-index-L.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -253,9 +253,9 @@
 ><TD CLASS="indexentry"
 >localPart</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AlocalPart"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AlocalPart"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_filter/doc-index-M.html b/doc/hdoc_filter/doc-index-M.html
--- a/doc/hdoc_filter/doc-index-M.html
+++ b/doc/hdoc_filter/doc-index-M.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -281,9 +281,9 @@
 ><TD CLASS="indexentry"
 >mkName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -297,17 +297,17 @@
 ><TD CLASS="indexentry"
 >mkNsName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkNsName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >mkPrefixLocalPart</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkPrefixLocalPart"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkPrefixLocalPart"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -327,6 +327,14 @@
 ></TR
 ><TR
 ><TD CLASS="indexentry"
+>mkQName</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
 >mkQTag</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkQTag"
@@ -353,9 +361,9 @@
 ><TD CLASS="indexentry"
 >mkSNsName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AmkSNsName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkSNsName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_filter/doc-index-N.html b/doc/hdoc_filter/doc-index-N.html
--- a/doc/hdoc_filter/doc-index-N.html
+++ b/doc/hdoc_filter/doc-index-N.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -401,9 +401,9 @@
 ><TD CLASS="indexentry"
 >namePrefix</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamePrefix"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -433,9 +433,9 @@
 ><TD CLASS="indexentry"
 >namespaceUri</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnamespaceUri"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -561,9 +561,9 @@
 ><TD CLASS="indexentry"
 >normalizeNsUri</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnormalizeNsUri"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnormalizeNsUri"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -617,9 +617,9 @@
 ><TD CLASS="indexentry"
 >nullQName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AnullQName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnullQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_filter/doc-index-O.html b/doc/hdoc_filter/doc-index-O.html
--- a/doc/hdoc_filter/doc-index-O.html
+++ b/doc/hdoc_filter/doc-index-O.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-P.html b/doc/hdoc_filter/doc-index-P.html
--- a/doc/hdoc_filter/doc-index-P.html
+++ b/doc/hdoc_filter/doc-index-P.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -304,6 +304,14 @@
 ><A HREF="Text-XML-HXT-Parser-HtmlParsec.html#v%3AparseHtmlDocument"
 >Text.XML.HXT.Parser.HtmlParsec</A
 >, Text.XML.HXT.Parser.HtmlParser, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>parseHtmlTagSoup</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-Parser-TagSoup.html#v%3AparseHtmlTagSoup"
+>Text.XML.HXT.Parser.TagSoup</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_filter/doc-index-Q.html b/doc/hdoc_filter/doc-index-Q.html
--- a/doc/hdoc_filter/doc-index-Q.html
+++ b/doc/hdoc_filter/doc-index-Q.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -165,17 +165,17 @@
 ><TD CLASS="indexentry"
 >QN</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AQN"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AQN"
+>Text.XML.HXT.DOM.QualifiedName</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
 >QName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AQName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -213,9 +213,9 @@
 ><TD CLASS="indexentry"
 >qualifiedName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AqualifiedName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_filter/doc-index-R.html b/doc/hdoc_filter/doc-index-R.html
--- a/doc/hdoc_filter/doc-index-R.html
+++ b/doc/hdoc_filter/doc-index-R.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-S.html b/doc/hdoc_filter/doc-index-S.html
--- a/doc/hdoc_filter/doc-index-S.html
+++ b/doc/hdoc_filter/doc-index-S.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-T.html b/doc/hdoc_filter/doc-index-T.html
--- a/doc/hdoc_filter/doc-index-T.html
+++ b/doc/hdoc_filter/doc-index-T.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -248,6 +248,38 @@
 ><A HREF="Text-XML-HXT-DOM-Util.html#v%3AtextEscapeXml"
 >Text.XML.HXT.DOM.Util</A
 ></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>textOfXNode</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AtextOfXNode"
+>Text.XML.HXT.DOM.XmlTreeFunctions</A
+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>text_html</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_html"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>text_xml</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_xml"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>text_xml_external_parsed_entity</TD
+><TD CLASS="indexlinks"
+><A HREF="Text-XML-HXT-DOM-XmlKeywords.html#v%3Atext_xml_external_parsed_entity"
+>Text.XML.HXT.DOM.XmlKeywords</A
+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_filter/doc-index-U.html b/doc/hdoc_filter/doc-index-U.html
--- a/doc/hdoc_filter/doc-index-U.html
+++ b/doc/hdoc_filter/doc-index-U.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -325,9 +325,9 @@
 ><TD CLASS="indexentry"
 >universalName</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AuniversalName"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AuniversalName"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
@@ -341,9 +341,9 @@
 ><TD CLASS="indexentry"
 >universalUri</TD
 ><TD CLASS="indexlinks"
-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#v%3AuniversalUri"
->Text.XML.HXT.DOM.TypeDefs</A
->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AuniversalUri"
+>Text.XML.HXT.DOM.QualifiedName</A
+>, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR
 ><TD CLASS="indexentry"
diff --git a/doc/hdoc_filter/doc-index-V.html b/doc/hdoc_filter/doc-index-V.html
--- a/doc/hdoc_filter/doc-index-V.html
+++ b/doc/hdoc_filter/doc-index-V.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-W.html b/doc/hdoc_filter/doc-index-W.html
--- a/doc/hdoc_filter/doc-index-W.html
+++ b/doc/hdoc_filter/doc-index-W.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index-X.html b/doc/hdoc_filter/doc-index-X.html
--- a/doc/hdoc_filter/doc-index-X.html
+++ b/doc/hdoc_filter/doc-index-X.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/doc-index.html b/doc/hdoc_filter/doc-index.html
--- a/doc/hdoc_filter/doc-index.html
+++ b/doc/hdoc_filter/doc-index.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API (Index)</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ></HEAD
 ><BODY
@@ -17,7 +17,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
diff --git a/doc/hdoc_filter/index.html b/doc/hdoc_filter/index.html
--- a/doc/hdoc_filter/index.html
+++ b/doc/hdoc_filter/index.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->Haskell Xml Toolbox 7.4: The Filter API</TITLE
+>Haskell Xml Toolbox 7.5: The Filter API</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
 ></SCRIPT
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->Haskell Xml Toolbox 7.4: The Filter API</TD
+>Haskell Xml Toolbox 7.5: The Filter API</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -361,6 +361,16 @@
 ></TR
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
+><A HREF="Text-XML-HXT-DOM-QualifiedName.html"
+>Text.XML.HXT.DOM.QualifiedName</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-DOM-TypeDefs.html"
 >Text.XML.HXT.DOM.TypeDefs</A
 ></TD
@@ -590,6 +600,16 @@
 ><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-Parser-ProtocolHandlerUtil.html"
 >Text.XML.HXT.Parser.ProtocolHandlerUtil</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 42em"
+><A HREF="Text-XML-HXT-Parser-TagSoup.html"
+>Text.XML.HXT.Parser.TagSoup</A
 ></TD
 ><TD
 ></TD
diff --git a/doc/index.html b/doc/index.html
--- a/doc/index.html
+++ b/doc/index.html
@@ -1,12 +1,12 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
   <head>
-    <title>Haskell XML Toolbox 7.4</title>
+    <title>Haskell XML Toolbox 7.5</title>
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   </head>
 
   <body style="background-color: #ffffff;">
-    <h1>Haskell XML Toolbox 7.4</h1>
+    <h1>Haskell XML Toolbox 7.5</h1>
 
     <h3>Contents</h3>
     <ul>
@@ -83,6 +83,8 @@
       <li>XPath support for selection of document parts</li>
       <li>liberal HTML parser for interpreting any text containing &lt;
 	... &gt; as HTML/XML</li>
+      <li>liberal and lasy lightweight HTML/XML parser based on
+	<a href="http://www-users.cs.york.ac.uk/~ndm/tagsoup/">tagsoup</a></li>
       <li><a href="http://www.relaxng.org/">Relax NG</a> schema
 	validator</li>
       <li>integrated <a href="http://www.w3.org/TR/xslt">XSLT</a> transformer</li>
@@ -156,23 +158,26 @@
     <a name="req"></a>
     <h3>Requirements</h3>
     <ul>
-      <li>ghc-6.8 or ghc-6.6 with cabal 1.2, HXT 7.3 works with
-	ghc-6.6 and cabal < 1.2</li>
+      <li>ghc-6.8 or ghc-6.6 with cabal 1.2, HXT 7.5 works with
+	ghc-6.6 and cabal &lt; 1.2</li>
+      <li><a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HTTP">HTTP package</a></li>
+      <li><a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/tagsoup">tagsoup package</a></li>
       <li>Cabal of GNU make</li>
     </ul>
 
     <a name="down"></a>
     <h3>Downloads</h3>
     <p>
-      <a href="hxt-7.4.tar.gz">Haskell XML Toolbox 7.4</a>,
-      released 2007-12-12:
+      <a href="hxt-7.5.tar.gz">Haskell XML Toolbox 7.5</a>,
+      released 2008-03-01:
     </p>
     <ul>
       <li>This version works with ghc 6.8 and ghc 6.6 with cabal
 	1.2. For ghc 6.6 and cabal < 1.2 please use HXT 7.3.</li>
       <li>Includes sources for building a ghc package
 	<code>hxt</code> with Cabal or make.
-	This package contains a Haskell DOM, an XML parser, a
+	This package contains a Haskell DOM, an XML parser, a HTML parser based on parsec,
+	a lightweight HTML/XML parser based on tagsoup, a
 	DTD validator,  namespace processing functions, a Relax
 	NG validator, an XPath expression evaluator, an XSLT transformer,
 	and serialization/deserialisation of data to/from XML.
@@ -209,7 +214,7 @@
     <p>
       Before installing this version, install the <a href="http://www.haskell.org/">Haskell HTTP module</a>.
       For a quick install with Cabal execute the following commands in
-      <tt>.../HXT-7.4</tt>
+      <tt>.../HXT-7.5</tt>
     </p>
     <pre>
     make setup
@@ -234,8 +239,42 @@
     </pre>
 
     <a name="change"></a>
-    <h3>Change history</h3>
+    <h3>Change History</h3>
     <ul>
+      <li>In <a href="hxt-7.5.tar.gz">Version 7.5</a>
+	<ul>
+	  <li>
+	    A module <tt>Text.XML.HXT.Arrow.XPathSimple</tt> for fast XPath selection for simple XPath queries
+	    added. If the XPath query only contains for navigaion the axis from the
+	    root down to the leaves, the query is evaluated by computing
+	    a simple arrow and applying the arrow. This gives a
+	    speedup for queries like <tt>/htm/body//h1/text()</tt> for
+	    extraction of the headline text of a HTML document.
+	  </li>
+	  <li>
+	    Option added to control the selection of the parser
+	    (XML/HTML) by the mime type of the document.
+	  </li>
+	  <li>
+	    New lasy and lightweight HTML/XML parser based on tagsoup library.
+	    Useful especially for converting XML into native Haskell
+	    data. (Example in examples/arrows/performance)
+
+	  </li>
+	  <li>
+	    W3C XML Schema Datatype library for validating with RelaxNG extended.
+	    Currently supported Datatypes: Strings, URIs, QNames,
+	    binary string-encoded, decimal and all integer datatypes.
+	  </li>
+	  <li>
+	    Regular expression pattern matcher for W3C XML Schema datatype patterns.
+	  <li>
+	  <li>New arrow combinator 'mergeA' in Control.Arrow.ArrowList
+	    for combining the components of a tuple, resulting from
+	    applying arrows constructed with (&&&), (***) and similar combinators.
+	  </li>
+	</ul>
+      </li>
       <li>In <a href="hxt-7.4.tar.gz">Version 7.4</a>
 	<ul>
 	  <li>Configuration changes for ghc-6.8</li>
@@ -432,7 +471,7 @@
 	    </a>
 	  </td>
 	</tr>
-	<tr><td><i>Last modified: 2007-12-12</i></td><td>&nbsp;</td></tr>
+	<tr><td><i>Last modified: 2008-03-01</i></td><td>&nbsp;</td></tr>
 </table>
 
   </body>
diff --git a/examples/Makefile b/examples/Makefile
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -4,8 +4,8 @@
 #
 
 HXT_HOME	= ..
-VERSION		= 7.4
-LASTVERSION	= 7.3
+VERSION		= 7.5
+LASTVERSION	= 7.4
 
 EXAMPLES	= mini hparser hxpath hfilter hunit hsvg dtd2haskell arrows
 MORE_SAMPLES	= w3ctest blutgraetsche photoalbum
diff --git a/examples/arrows/HelloWorld/HelloWorld.hs b/examples/arrows/HelloWorld/HelloWorld.hs
--- a/examples/arrows/HelloWorld/HelloWorld.hs
+++ b/examples/arrows/HelloWorld/HelloWorld.hs
@@ -8,6 +8,7 @@
 main
     = do
       [rc] <- runX ( readDocument [ (a_trace, "1")
+				  , (a_validate, v_0)
 				  ] "hello.xml"
 		     >>>
 		     writeDocument [ (a_output_encoding, isoLatin1)
diff --git a/examples/arrows/HelloWorld/Mini.hs b/examples/arrows/HelloWorld/Mini.hs
--- a/examples/arrows/HelloWorld/Mini.hs
+++ b/examples/arrows/HelloWorld/Mini.hs
@@ -6,7 +6,7 @@
 main	:: IO()
 main
     = do
-      runX ( readDocument [ ] "hello.xml"
+      runX ( readDocument [ (a_validate, v_0) ] "hello.xml"
 	     >>>
 	     writeDocument [ ] "bye.xml"
 	   )
diff --git a/examples/arrows/Makefile b/examples/arrows/Makefile
--- a/examples/arrows/Makefile
+++ b/examples/arrows/Makefile
@@ -8,7 +8,8 @@
 		pickle \
 		hrelaxng \
 		RelaxTestSuite \
-		AGentleIntroductionToHXT
+		AGentleIntroductionToHXT \
+		performance
 
 HXT_HOME	= ../..
 PKGFLAGS	=
diff --git a/examples/arrows/RelaxTestSuite/Makefile b/examples/arrows/RelaxTestSuite/Makefile
--- a/examples/arrows/RelaxTestSuite/Makefile
+++ b/examples/arrows/RelaxTestSuite/Makefile
@@ -25,28 +25,28 @@
 force		:
 		$(GHC) --make -o $(prog) $(prog).hs
 
-testcases	= testCases
 testarchive	= RelaxTestCases.tgz
 
-test		:
-		$(MAKE) testrng
-		$(MAKE) testschema
+test		: test1 test2
 
-testrng		: $(prog) $(testcases)
-		$(prog) $(shell pwd)/$(testcases)
+test1		: testCases
+		$(prog) $(shell pwd)/testCases
 
-testschema	:
+test2		:
 		$(prog) $(shell pwd)/w3cSchemaDataTypes
 
-$(testcases)	: $(testarchive)
+testCases	: $(testarchive)
 		tar xvzf $(testarchive)
-		touch $(testcases)
+		touch testCases
 
 dist		:
 		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)
 		cp Makefile $(modules) $(testarchive) $(DIST_DIR)
-
+		find w3cSchemaDataTypes '(' -name '*.xml' -or -name '*.rng' ')' -print | xargs tar cvf - | \
+			( cd $(DIST_DIR) ; tar xf - ; )
 clean		:
 		rm -f $(prog) *.o *.hi
+
+.PHONY		: all prof local force test test1 test2 dist clean
 
 # eof ------------------------------------------------------------
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/1.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/1.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/1.i.xml
@@ -0,0 +1,2 @@
+<!-- string too short -->
+<foo string2-4="1"/>
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/1.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/1.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/1.v.xml
@@ -0,0 +1,1 @@
+<foo string2-4="xxx" id4="x123"/>
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/10.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/10.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/10.i.xml
@@ -0,0 +1,3 @@
+<!-- NMTOKENS, but not 3 elems -->
+<foo NMTOKENS=" abc  def  ghi jkl "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/10.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/10.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/10.v.xml
@@ -0,0 +1,5 @@
+<foo NMTOKENS=" abc
+  def
+  ghi
+ "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/11.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/11.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/11.v.xml
@@ -0,0 +1,6 @@
+<foo NMTOKENS="
+  abc
+  1-2-3
+  2008
+ "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/12.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/12.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/12.i.xml
@@ -0,0 +1,4 @@
+<foo Name="
+  123
+ "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/12.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/12.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/12.v.xml
@@ -0,0 +1,4 @@
+<foo Name="
+  Abc
+ "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/13.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/13.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/13.v.xml
@@ -0,0 +1,4 @@
+<foo Name="
+  Abc:def
+ "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/14.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/14.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/14.v.xml
@@ -0,0 +1,4 @@
+<foo Name="
+  :def
+ "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/15.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/15.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/15.i.xml
@@ -0,0 +1,4 @@
+<foo NCName="
+  :def
+ "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/15.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/15.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/15.v.xml
@@ -0,0 +1,4 @@
+<foo NCName="
+  def
+ "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/16.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/16.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/16.i.xml
@@ -0,0 +1,4 @@
+<foo language="
+  xxxxxxxxxx-yy-zz-uu-vv
+ "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/16.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/16.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/16.v.xml
@@ -0,0 +1,4 @@
+<foo language="
+  xx-yy-zz-uu-vv
+ "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/2.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/2.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/2.i.xml
@@ -0,0 +1,2 @@
+<!-- string too long -->
+<foo string2-4="12345"/>
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/2.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/2.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/2.v.xml
@@ -0,0 +1,1 @@
+<foo id4="i123" string2-4="----"/>
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/20.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/20.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/20.i.xml
@@ -0,0 +1,2 @@
+<foo decimalValue="500.00"/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/20.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/20.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/20.v.xml
@@ -0,0 +1,2 @@
+<foo decimalValue="555.55"/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/21.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/21.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/21.i.xml
@@ -0,0 +1,2 @@
+<foo decimalValue="500.00"/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/22.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/22.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/22.i.xml
@@ -0,0 +1,2 @@
+<foo decimalValue="5555.55"/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/25.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/25.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/25.i.xml
@@ -0,0 +1,2 @@
+<foo decimalValue="666.67"/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/3.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/3.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/3.i.xml
@@ -0,0 +1,2 @@
+<!-- id not with length 4 -->
+<foo string2-4="xxx" id4="x12"/>
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/3.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/3.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/3.v.xml
@@ -0,0 +1,1 @@
+<foo string2-4="xxx"/>
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/30.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/30.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/30.i.xml
@@ -0,0 +1,1 @@
+<foo integerValue="500"/>
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/30.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/30.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/30.v.xml
@@ -0,0 +1,1 @@
+<foo integerValue="555"/>
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/31.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/31.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/31.i.xml
@@ -0,0 +1,1 @@
+<foo integerValue="5555"/>
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/32.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/32.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/32.i.xml
@@ -0,0 +1,1 @@
+<foo integerValue="122"/>
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/33.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/33.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/33.i.xml
@@ -0,0 +1,1 @@
+<foo integerValue="667"/>
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/4.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/4.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/4.v.xml
@@ -0,0 +1,1 @@
+<foo id4="i123"/>
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/40.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/40.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/40.i.xml
@@ -0,0 +1,2 @@
+<foo byteValue="-129"/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/40.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/40.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/40.v.xml
@@ -0,0 +1,2 @@
+<foo byteValue="-123"/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/41.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/41.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/41.i.xml
@@ -0,0 +1,2 @@
+<foo byteValue="128"/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/5.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/5.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/5.v.xml
@@ -0,0 +1,1 @@
+<foo string2-4="xxx" id4="x123" token="nnn"/>
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/6.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/6.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/6.i.xml
@@ -0,0 +1,3 @@
+<!-- token with 5 chars -->
+<foo token5=" x234 "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/6.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/6.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/6.v.xml
@@ -0,0 +1,1 @@
+<foo token=" nnn mmm "/>
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/7.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/7.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/7.v.xml
@@ -0,0 +1,3 @@
+<!-- token with 5 chars -->
+<foo token5=" nn mm "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/8.i.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/8.i.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/8.i.xml
@@ -0,0 +1,2 @@
+<foo NMTOKEN="  a b c   "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/8.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/8.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/8.v.xml
@@ -0,0 +1,2 @@
+<foo NMTOKEN="abc"/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/9.v.xml b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/9.v.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/9.v.xml
@@ -0,0 +1,2 @@
+<foo NMTOKEN="  abc   "/>
+ 
diff --git a/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/c.rng b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/c.rng
new file mode 100644
--- /dev/null
+++ b/examples/arrows/RelaxTestSuite/w3cSchemaDataTypes/001/c.rng
@@ -0,0 +1,113 @@
+<grammar
+  xmlns="http://relaxng.org/ns/structure/1.0"
+  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <start>
+    <ref name="foo"/>
+  </start>
+  
+  <define name="foo">
+    <element name="foo">
+
+      <optional>
+	<attribute name="string2-4">
+	  <data type="string">
+	    <param name="minLength">2</param>
+	    <param name="maxLength">4</param>
+	  </data>
+	</attribute>
+      </optional>
+
+      <optional>
+	<attribute name="id4">
+	  <data type="ID">
+	    <param name="length">4</param>
+	  </data>
+	</attribute>
+      </optional>
+      
+      <optional>
+	<attribute name="token">
+	  <data type="token">
+	  </data>
+	</attribute>
+      </optional>
+      
+      <optional>
+	<attribute name="token5">
+	  <data type="token">
+	    <param name="length">5</param>
+	  </data>
+	</attribute>
+      </optional>
+      
+      <optional>
+	<attribute name="NMTOKEN">
+	  <data type="NMTOKEN">
+	  </data>
+	</attribute>
+      </optional>
+      
+      <optional>
+	<attribute name="NMTOKENS">
+	  <data type="NMTOKENS">
+	    <param name="length">3</param>
+	  </data>
+	</attribute>
+      </optional>
+      
+      <optional>
+	<attribute name="Name">
+	  <data type="Name">
+	  </data>
+	</attribute>
+      </optional>
+      
+      <optional>
+	<attribute name="NCName">
+	  <data type="NCName">
+	  </data>
+	</attribute>
+      </optional>
+      
+      <optional>
+	<attribute name="language">
+	  <data type="language">
+	  </data>
+	</attribute>
+      </optional>
+      
+      <optional>
+	<attribute name="decimalValue">
+	  <data type="decimal">
+	    <param name="pattern">[1-9.]*</param>
+	    <param name="totalDigits">5</param>
+	    <param name="fractionDigits">2</param>
+	    <param name="minInclusive">123.45</param>
+	    <param name="maxInclusive">666.66</param>
+	  </data>
+	</attribute>
+      </optional>
+      
+      <optional>
+	<attribute name="integerValue">
+	  <data type="integer">
+	    <param name="pattern">[1-9]*</param>
+	    <param name="totalDigits">3</param>
+	    <param name="minInclusive">123</param>
+	    <param name="maxInclusive">666</param>
+	  </data>
+	</attribute>
+      </optional>
+      
+      <optional>
+	<attribute name="byteValue">
+	  <data type="byte">
+	  </data>
+	</attribute>
+      </optional>
+      
+      <text/>
+    </element>
+  </define>
+
+</grammar>
diff --git a/examples/arrows/hparser/HXmlParser.hs b/examples/arrows/hparser/HXmlParser.hs
--- a/examples/arrows/hparser/HXmlParser.hs
+++ b/examples/arrows/hparser/HXmlParser.hs
@@ -124,7 +124,7 @@
       ++
       outputOptions
       ++
-      [ Option "T"	["xslt"]		(ReqArg (att "xslt") "STYLESHEET")	"STYLESHEET is the uri of the XSLT stylesheet to be applied"
+      [ Option ""	["xslt"]		(ReqArg (att "xslt") "STYLESHEET")	"STYLESHEET is the uri of the XSLT stylesheet to be applied"
       , Option "q"	["no-output"]		(NoArg  ("no-output", "1"))		"no output of resulting document"
       , Option "x"	["show-text"]		(NoArg	("show-text", "1"))		"output only the raw text, remove all markup"
       ]
diff --git a/examples/arrows/hparser/Makefile b/examples/arrows/hparser/Makefile
--- a/examples/arrows/hparser/Makefile
+++ b/examples/arrows/hparser/Makefile
@@ -106,8 +106,11 @@
 		cat $(EX4)
 		@sleep 2 ; echo ; echo "===> parser accepts this document and tries to build a document tree" ; echo ; sleep 2
 		$(prog) --indent --preserve-comment --parse-html $(EX4)
+		@sleep 2 ; echo ; echo "===> same with lasy parser with tagsoup" ; echo ; sleep 2
+		$(prog) -H -T -r --indent $(EX4)
 		@echo
 
+
 test5		:
 		@echo "===> Validate a valid xml file with respect to a valid Relax NG schema" ; echo ; sleep 1
 		@echo "the XML document ./valid1.xml"
@@ -129,6 +132,17 @@
 		$(prog) --relax-schema ./invalid3.rng ./valid1.xml || true
 		@echo
 
+test6		:
+		@echo "===> tagsoup parsing examples" ; echo ; sleep 2
+		@echo "===> www.w3c.org homepage (valid XHTML)" ; echo ; sleep 2
+		$(prog) --tagsoup http://www.w3c.org/
+		@echo "===> same again with removed whitespace and tree output" ; echo ; sleep 2
+		$(prog) --tagsoup --remove-whitespace --show-tree http://www.w3c.org/
+		@echo "===> same procedure with www.haskell.org homepage (rather valid HTML)" ; echo ; sleep 2
+		$(prog) --tagsoup --parse-html http://www.haskell.org/
+		@echo "===> same again with removed whitespace and tree output" ; echo ; sleep 2
+		$(prog) --tagsoup --parse-html --remove-whitespace --show-tree http://www.haskell.org/
+		@echo
 
 xslttest	:
 		$(MAKE) -C xslt test
diff --git a/examples/arrows/hparser/lousy.html b/examples/arrows/hparser/lousy.html
--- a/examples/arrows/hparser/lousy.html
+++ b/examples/arrows/hparser/lousy.html
@@ -9,18 +9,29 @@
     <h2>html
 	<p>some text and a &xxx;
 	  <p>more text
+      &apos; &apos; &apos;
+      &unknown;
+      &#65;
+      &#x41;
+      &Auml;
 	    </p
     <img alt='&lt; &yyy; &gt;' src="abc.gif">
     <table border>
     <tr><td>1<td>2<td>3
     </table>
 
-
+    <xxx>xxx</xxx>
+    <yyy a=b/>
+      <![CDATA[a CDATA
+      section with some unescaped chars
+      ><&"'
+      end CDATA]]>
     <hr>
+      &Auml; &Ouml; &Uuml; &#65;
     <address><a href="mailto:uwe@muehle.welt.all">Uwe
 		Schmidt</a></address>
 <!-- Created: Tue Apr 29 16:07:57 CEST 2003 -->
 <!-- hhmts start -->
-Last modified: Mon May 12 13:11:29 CEST 2003
+Last modified: Mon Feb 18 13:56:28 CET 2008
 <!-- hhmts end -->
 </html>
diff --git a/examples/arrows/hrelaxng/Makefile b/examples/arrows/hrelaxng/Makefile
--- a/examples/arrows/hrelaxng/Makefile
+++ b/examples/arrows/hrelaxng/Makefile
@@ -35,7 +35,7 @@
 
 example1a	:
 		@echo "a valid document"
-		$(prog) ./valid2.xml ./valid2.rng
+		$(prog) ./valid2.xml ./valid2.rng || true
 		@echo
 
 example1b	:
diff --git a/examples/arrows/hrelaxng/valid2.rng b/examples/arrows/hrelaxng/valid2.rng
new file mode 100644
--- /dev/null
+++ b/examples/arrows/hrelaxng/valid2.rng
@@ -0,0 +1,27 @@
+<grammar
+  xmlns="http://relaxng.org/ns/structure/1.0"
+  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <start>
+    <ref name="foo"/>
+  </start>
+  
+  <define name="foo">
+    <element name="foo">
+
+      <attribute name="string2-4">
+	<data type="string">
+	  <param name="minLength">2</param>
+	  <param name="maxLength">4</param>
+	</data>
+      </attribute>
+
+      <attribute name="id">
+	<data type="ID">
+	  <param name="length">4</param>
+	</data>
+      </attribute>
+      
+    </element>
+  </define>
+
+</grammar>
diff --git a/examples/arrows/hrelaxng/valid2.xml b/examples/arrows/hrelaxng/valid2.xml
new file mode 100644
--- /dev/null
+++ b/examples/arrows/hrelaxng/valid2.xml
@@ -0,0 +1,1 @@
+<foo string2-4="xxx" id="iooo"/>
diff --git a/examples/arrows/hxpath/Makefile b/examples/arrows/hxpath/Makefile
--- a/examples/arrows/hxpath/Makefile
+++ b/examples/arrows/hxpath/Makefile
@@ -6,8 +6,9 @@
 GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)
 
 prog		= ./HXPath
+prog2		= ./XPathShell
 
-all		: $(prog)
+all		: $(prog) $(prog2)
 
 force		:
 		$(GHC) --make -o $(prog) $(prog).hs
@@ -15,6 +16,9 @@
 $(prog)		: $(prog).hs
 		$(GHC) --make -o $@ $<
 
+$(prog2)	: $(prog2).hs
+		$(GHC) --make -o $@ $<
+
 EX		= ../../xhtml/xhtml.xml
 
 test		: $(prog)
@@ -46,7 +50,7 @@
 
 dist		:
 		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)
-		cp Makefile $(prog).hs $(DIST_DIR)
+		cp Makefile $(prog).hs $(prog2).hs $(DIST_DIR)
 
 clean		:
 		rm -f $(prog) *.hi *.o
diff --git a/examples/arrows/hxpath/XPathShell.hs b/examples/arrows/hxpath/XPathShell.hs
new file mode 100644
--- /dev/null
+++ b/examples/arrows/hxpath/XPathShell.hs
@@ -0,0 +1,185 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : XPathShell
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   XPath example program for testing xpath evaluation
+   with both evaluation stategies, the full XPath functionality
+   and the limited but faster one for simple XPath queries
+
+-}
+
+-- ------------------------------------------------------------
+
+
+module Main
+where
+
+import qualified Control.Monad as M
+
+import Data.Maybe
+
+import Text.XML.HXT.Arrow
+
+import qualified
+       Text.XML.HXT.Arrow.XPathSimple as XPS
+
+import Text.XML.HXT.XPath.XPathParser
+    ( parseXPath
+    )
+
+import System.Console.Readline
+import System.Environment
+
+import Text.ParserCombinators.Parsec
+    ( runParser )
+
+
+main	:: IO()
+main
+    = do
+      args <- getArgs
+      (path, env, doc) <- evalArgs args
+      if not (null path) && not (null doc)
+	 then evalXPath path env (head doc)
+	 else evalLoop env doc
+
+evalArgs			:: [String] -> IO (String, NsEnv, XmlTrees)
+evalArgs []			= evalArgs (""   : "[]" : ""  : [])
+evalArgs [doc]			= evalArgs (""   : "[]" : doc : [])
+evalArgs [path, doc]		= evalArgs (path : "[]" : doc : [])
+evalArgs [path, env, ""]	= return (path, addEntries (read env) $ defaultEnv, [])
+evalArgs [path, env, doc]	= do
+				  (d, ne) <- loadDoc doc
+				  return (path, addEntries ne $ addEntries (read env) $ defaultEnv, d)
+evalArgs al			= evalArgs (take 3 al)
+
+loadDoc		:: String -> IO ([XmlTree], NsEnv)
+loadDoc doc
+    = do
+      d <- runX ( readDocument [ (a_tagsoup, v_0)
+			       , (a_parse_by_mimetype, v_1)
+			       , (a_check_namespaces, v_1)
+			       , (a_remove_whitespace, v_1)
+			       , (a_validate, v_0)
+			       , (a_canonicalize, v_1)
+			       ] doc
+		  >>>
+		  (documentStatusOk `guards` this)
+		)
+      let env = runLA (unlistA >>> collectNamespaceDecl) d
+      return (d, env)
+
+showDoc		:: XmlTree -> IO ()
+showDoc doc
+    = do
+      runX ( constA doc
+	     >>>
+	     writeDocument [ (a_indent, v_1)
+			   , (a_no_xml_pi, v_1)
+			   ] ""
+	   )
+      return ()
+
+showTree		:: XmlTree -> IO ()
+showTree doc
+    = do
+      runX ( constA doc
+	     >>>
+	     writeDocument [ (a_show_tree, v_1)
+			   , (a_no_xml_pi, v_1)
+			   ] ""
+	   )
+      return ()
+
+evalXPath	:: String -> NsEnv -> XmlTree -> IO()
+evalXPath path env doc
+    | nr == xr
+	= putStrLn . unlines $ "ok: " : nr
+    | otherwise
+	= do
+	  putStrLn . unlines $
+		       [ "results differ"
+		       , "expected: "
+		       ] ++ xr ++
+		       [ "got:      "
+		       ] ++ nr
+	  putStrLn $ xpt path
+    where
+    xpt = either show show . runParser parseXPath env ""
+    nr = runLA (XPS.getXPathTreesWithNsEnv env path >>> xshow this) doc
+    xr = runLA (    getXPathTreesWithNsEnv env path >>> xshow this) doc
+
+evalLoop	:: NsEnv -> XmlTrees -> IO ()
+evalLoop env doc
+    = do
+      maybeLine <- readline "xpath> "
+      case maybeLine of 
+        Nothing	-> return () -- EOF / control-d
+	Just ":q"	-> return ()
+	Just line -> do
+		     let ws = words line
+		     if null ws
+			then evalLoop env doc
+			else do
+			     addHistory line
+			     evalCmd (words line)
+    where
+    evalCmd []		= evalLoop env doc
+    evalCmd [":ns",uri]	= evalCmd [":ns", "", uri]
+    evalCmd [":ns", ns, uri]
+			= evalLoop (addEntry ns uri env) doc
+    evalCmd (":?":_)	= do
+			  putStrLn . unlines $
+				       [ "XPath Tester"
+				       , "Commands:"
+				       , ":l <document>\tload a document"
+				       , ":ns <uri>\tset default namespace"
+				       , ":ns <px> <uri>\tset namespace"
+				       , ":q\t\tquit"
+				       , ":s\t\tshow current document"
+				       , ":t\t\tshow current document in tree format"
+				       , ":x\t\tshow current namespace environment"
+				       , ":?\t\tthis message"
+				       , "<xpath-expr>\tevaluate XPath expression"
+				       ]
+			  evalLoop env doc
+    evalCmd [":x"]	= do
+			  putStrLn . unlines . map show $ env
+			  evalLoop env doc
+    evalCmd [":s"]	= do
+			  M.when (not . null $ doc) (showDoc . head $ doc)
+			  evalLoop env doc
+    evalCmd [":t"]	= do
+			  M.when (not . null $ doc) (showTree . head $ doc)
+			  evalLoop env doc
+    evalCmd [":l",n]	= do
+			  (nd, nv) <- loadDoc n
+			  if null nd
+			     then do
+				  putStrLn ("error when loading " ++ show doc)
+				  evalLoop env doc
+			     else evalLoop (addEntries nv env) nd
+    evalCmd ws@((':':_):_)
+			= do
+			  putStrLn ("unknown command (:? for help): " ++ (show . unwords $ ws))
+			  evalLoop env doc
+    evalCmd ws		= do
+			  let path = unwords ws
+			  if null doc
+			     then putStrLn "no document loaded"
+			     else evalXPath path env (head doc)
+			  evalLoop env doc
+
+defaultEnv	:: NsEnv
+defaultEnv	= [ ("xml",xmlNamespace)
+		  , ("xmlns",xmlnsNamespace)
+		  ]
+
+-- ----------------------------------------
diff --git a/examples/arrows/performance/GenDoc.hs b/examples/arrows/performance/GenDoc.hs
new file mode 100644
--- /dev/null
+++ b/examples/arrows/performance/GenDoc.hs
@@ -0,0 +1,272 @@
+module Main
+where
+
+import Text.XML.HXT.Arrow
+
+import Text.XML.HXT.DOM.Unicode
+    ( unicodeToXmlEntity
+    )
+
+import Control.Monad.State.Strict hiding (when)
+
+import Data.List
+import Data.Maybe
+
+import System.IO			-- import the IO and commandline option stuff
+import System.Environment
+
+-- ----------------------------------------
+
+main	:: IO ()
+main
+    = do
+      p <- getProgName
+      (is : _) <- getArgs
+      let i = (read is)::Int
+      main' p i
+    where
+    main' p' = fromMaybe main0 . lookup (pn p') $ mpt
+    mpt = [ ("GenDoc",	   main1)
+	  , ("ReadDoc",    main2)
+	  , ("PruneRight", main3 False)
+	  , ("PruneLeft",  main3 True)
+	  , ("MemTest",    main4)
+	 ]
+
+-- ----------------------------------------
+
+-- generate a document containing a binary tree of 2^i leafs (= 2^(i-1) XML elements)
+
+main1	:: Int -> IO ()
+main1 i
+    = do
+      runX (genDoc i (fn i))
+      return ()
+
+-- ----------------------------------------
+
+-- read a document containing a binary tree of 2^i leafs
+
+main2	:: Int -> IO ()
+main2 i
+    = do
+      [x] <- runX (readDoc (fn i)
+		   >>>
+		   traceMsg 1 "start unpickle"
+		   >>>
+		   unpickleTree
+		   >>>
+		   traceMsg 1 "start fold"
+		   >>>
+		   arr (foldT1 max)
+		  )
+      putStrLn ( "maximum value in tree is " ++ show x ++
+		 ", expected value was " ++ show ((2::Int)^i)
+	       )
+
+-- ----------------------------------------
+
+-- test on lasyness, is the whole tree read or only the first child of every child node?
+
+main3	:: Bool -> Int -> IO ()
+main3 l i
+    = do
+      [t] <- runX ( readDoc (fn i)
+		    >>>
+		    fromLA (xshow ( getChildren
+				    >>>
+				    if l then pruneForkLeft else pruneForkRight
+				  )
+			   )
+		  )
+      putStrLn ("pruned binary tree is : " ++ show t)
+
+-- ----------------------------------------
+
+main4	:: Int -> IO ()
+main4 i
+    = do
+      [x] <- runX ( setTraceLevel 1
+		    >>>
+		    traceMsg 1 ("generate tree of depth " ++ show i)
+		    >>>
+		    fromLA (genTree 0 i)
+		    >>>
+		    traceMsg 1 ("compute maximum and minimum")
+		    >>>
+		    fromLA ( foldBTree maximum &&& foldBTree minimum )	-- 2 traversals: complete tree in mem
+		    >>>
+		    arr2 (\ ma mi -> "maximum value = " ++ show ma ++ ", minimum = " ++ show mi )
+		    >>>
+		    traceString 1 id
+		  )
+      putStrLn x
+
+foldBTree	:: ([Int] -> Int) -> LA XmlTree Int
+foldBTree f
+    = choiceA
+      [ hasName "leaf" :-> ( getAttrValue "value" >>^ read )
+      , hasName "fork" :-> ( (getChildren >>> foldBTree f) >. f )
+      , this           :-> none
+      ]
+
+-- ----------------------------------------
+
+-- just to check how much memory is used for the tree
+
+main0	:: Int -> IO ()
+main0 i
+    = do
+      let t = mkBTree i
+      let m = show . foldT1 max $ t
+      putStrLn ("maximum value in tree is " ++ m ++ ", minimum value is " ++ show (foldT1 min t))
+      return ()
+
+-- ----------------------------------------
+
+pn	:: String -> String
+pn	= reverse . takeWhile (/= '/') . reverse
+
+fn	:: Int -> String
+fn	= ("tree-" ++) . (++ ".xml") . reverse . take 4 . reverse . ((replicate 4 '0') ++ ) . show
+
+-- ----------------------------------------
+
+genTree	:: Int -> Int -> LA XmlTree XmlTree
+genTree !n !d
+    | d == 0	= aelem "leaf" [sattr "value" (show (n + 1))]
+    | otherwise	= selem "fork" [ genTree (2*n)   (d-1)
+			       , genTree (2*n+1) (d-1)
+			       ]
+
+-- ----------------------------------------
+
+genDoc		:: Int -> String -> IOSArrow b XmlTree
+genDoc d out    = constA (mkBTree d)
+		  >>>
+		  xpickleVal xpickle
+		  >>>
+		  putDoc out
+
+-- ----------------------------------------
+
+readDoc	:: String -> IOSArrow b XmlTree
+readDoc src
+    = readDocument [ (a_tagsoup, v_1)
+		   , (a_remove_whitespace, v_1)
+		   , (a_encoding, isoLatin1)
+		   , (a_issue_warnings, v_0)
+		   , (a_trace, "1")
+		   ] src
+      >>>
+      processChildren (isElem `guards` this)
+
+-- ----------------------------------------
+
+unpickleTree	:: ArrowXml a => a XmlTree BTree
+unpickleTree	= xunpickleVal xpickle
+
+-- ----------------------------------------
+
+pruneForkRight	:: LA XmlTree XmlTree
+pruneForkRight
+    = ( replaceChildren
+	( ( getChildren >>. take 1 )
+	  >>>
+	  pruneForkRight
+	)
+      ) `when` (hasName "fork")
+
+
+pruneForkLeft	:: LA XmlTree XmlTree
+pruneForkLeft
+    = ( replaceChildren
+	( ( getChildren >>. drop 1 )
+	  >>>
+	  pruneForkLeft
+	)
+      ) `when` (hasName "fork")
+
+-- ----------------------------------------
+
+type Counter a	= State Int a
+
+incr	:: Counter Int
+incr	= do
+	  modify (+1)
+	  get
+
+-- ----------------------------------------
+
+data BTree	= Leaf Int
+		| Fork BTree BTree
+		  deriving (Show)
+
+instance XmlPickler BTree where
+    xpickle = xpAlt tag ps
+	where
+	tag (Leaf _	) = 0
+	tag (Fork _ _	) = 1
+	ps = [ xpWrap ( Leaf, \ (Leaf i) -> i)
+	       ( xpElem "leaf" $ xpAttr "value" $ xpickle )
+
+	     , xpWrap ( uncurry Fork, \ (Fork l r) -> (l, r))
+	       ( xpElem "fork" $ xpPair xpickle xpickle )
+	       ]
+
+-- ----------------------------------------
+
+mkBTree		:: Int -> BTree
+mkBTree	depth	= evalState (mkT depth) 0
+
+mkT	:: Int -> Counter BTree
+mkT 0	= do
+	  i <- incr
+	  return (Leaf i)
+mkT n	= do
+	  l <- mkT (n-1)
+	  r <- mkT (n-1)
+	  return (Fork l r)
+
+-- ----------------------------------------
+
+foldT1	:: (Int -> Int -> Int) -> BTree -> Int
+foldT1 _  (Leaf v)	= v
+foldT1 op (Fork l r)	= foldT1 op l `op` foldT1 op r
+
+-- ----------------------------------------
+
+-- output is done with low level ops to write the
+-- document i a lasy manner
+-- adding an xml pi and encoding is done "by hand"
+-- latin1 decoding is the identity, so please generate the
+-- docs with latin1 encoding. Here ist done even with ASCCI
+-- every none ASCII char is represented by a char ref (&nnn;)
+
+putDoc	:: String -> IOStateArrow s XmlTree XmlTree
+putDoc dst
+    = addXmlPi
+      >>>
+      addXmlPiEncoding isoLatin1
+      >>>
+      xshow getChildren
+      >>>
+      arr unicodeToXmlEntity
+      >>>
+      arrIO (\ s -> hPutDocument (\h -> hPutStrLn h s))
+      >>>
+      none
+      where
+      isStdout	= null dst || dst == "-"
+
+      hPutDocument	:: (Handle -> IO()) -> IO()
+      hPutDocument action
+	  | isStdout
+	      = action stdout
+	  | otherwise
+	      = do
+		handle <- openFile dst WriteMode
+		action handle
+		hClose handle
+
+-- ----------------------------------------
diff --git a/examples/arrows/performance/Makefile b/examples/arrows/performance/Makefile
new file mode 100644
--- /dev/null
+++ b/examples/arrows/performance/Makefile
@@ -0,0 +1,101 @@
+# $Id: Makefile,v 1.9 2006/11/11 15:36:03 hxml Exp $
+
+HXT_HOME	= ../../..
+PKGFLAGS	= 
+GHCFLAGS	= -Wall -O2 -fbang-patterns
+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)
+
+DIST		= $(HXT_HOME)/dist/examples/arrows
+DIST_DIR	= $(DIST)/performance
+
+prog		= ./GenDoc
+prog2		= ./ReadDoc
+prog3		= ./PruneRight
+prog4		= ./PruneLeft
+prog5		= ./MemTest
+progs		= $(prog) $(prog2) $(prog3) $(prog4) $(prog5)
+
+all		: $(progs)
+
+$(prog)		: $(prog).hs
+		$(GHC) --make -o $@ $<
+
+local		:
+		$(GHC) --make -o $(prog) -fglasgow-exts -ignore-package hxt -i../../../src $(prog).hs
+
+$(prog2)	: $(prog)
+		ln -f $(prog) $(prog2)
+
+$(prog3)	: $(prog)
+		ln -f $(prog) $(prog3)
+
+$(prog4)	: $(prog)
+		ln -f $(prog) $(prog4)
+
+$(prog5)	: $(prog)
+		ln -f $(prog) $(prog5)
+
+# generate and read documents containing a binary tree
+# with 2^i leaf nodes containing the numbers 1 to 2^i
+# for i up to at least 22 (8M XML elements) output works fine
+# for i up to 19 (1M XML elements) input works without swapping
+# with i=20 swapping starts, but the program it still terminates
+# the size of the XML file for i=20 is about 36Mb
+# these tests have run on a box with 1Gb memory
+
+tests		= 2 3 10 11 12 13 14 15 16 17 18 19 20
+
+test		: $(prog)
+		$(MAKE) genfiles
+		$(MAKE) readfiles
+		$(MAKE) pruneright
+		$(MAKE) pruneleft
+
+genfiles	:
+		@for i in $(tests) ; \
+		do \
+		echo time $(prog) $$i ; \
+		time $(prog) $$i ; \
+		ls -l tree-*$$i.xml ; \
+		echo ; \
+		done
+
+readfiles	:
+		@for i in $(tests) ; \
+		do \
+		echo time $(prog2) $$i ; \
+		time $(prog2) $$i ; \
+		echo ; \
+		done
+
+pruneright	:
+		@for i in $(tests) ; \
+		do \
+		echo time $(prog3) $$i ; \
+		time $(prog3) $$i ; \
+		echo ; \
+		done
+
+pruneleft	:
+		@for i in $(tests) ; \
+		do \
+		echo time $(prog4) $$i ; \
+		time $(prog4) $$i ; \
+		echo ; \
+		done
+
+memtest	:
+		@for i in $(tests) ; \
+		do \
+		echo time $(prog5) $$i ; \
+		time $(prog5) $$i ; \
+		echo ; \
+		done
+
+dist		:
+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)
+		cp Makefile GenDoc.hs $(DIST_DIR)
+
+clean		:
+		rm -f $(progs) *.o *.hi *.xml
+
diff --git a/examples/hsvg/index.html.jpg b/examples/hsvg/index.html.jpg
Binary files a/examples/hsvg/index.html.jpg and b/examples/hsvg/index.html.jpg differ
diff --git a/examples/mini/Makefile b/examples/mini/Makefile
--- a/examples/mini/Makefile
+++ b/examples/mini/Makefile
@@ -15,7 +15,7 @@
 $(prog)		: $(prog).hs
 		$(GHC) --make -o $@ $<
 
-test		:
+test		: $(prog)
 		@echo "===> a very simple test"
 		@echo "===> a xml source"
 		@cat example1.xml
diff --git a/hxt.cabal b/hxt.cabal
--- a/hxt.cabal
+++ b/hxt.cabal
@@ -1,6 +1,6 @@
 -- arch-tag: Haskell XML Toolbox main description file
 name: hxt
-version: 7.4
+version: 7.5
 license: OtherLicense
 license-file: LICENCE
 maintainer: Uwe Schmidt <uwe@fh-wedel.de>
@@ -54,10 +54,11 @@
   Text.XML.HXT.Arrow.ProcessDocument,
   Text.XML.HXT.Arrow.ReadDocument,
   Text.XML.HXT.Arrow.WriteDocument,
+  Text.XML.HXT.Arrow.XPath,
+  Text.XML.HXT.Arrow.XPathSimple,
   Text.XML.HXT.Arrow.XmlArrow,
   Text.XML.HXT.Arrow.XmlIOStateArrow,
   Text.XML.HXT.Arrow.XmlNode,
-  Text.XML.HXT.Arrow.XmlNodeSet,
   Text.XML.HXT.DOM,
   Text.XML.HXT.DOM.EditFilters,
   Text.XML.HXT.DOM.FormatXmlTree,
@@ -65,6 +66,7 @@
   Text.XML.HXT.DOM.Namespace,
   Text.XML.HXT.DOM.NamespaceFilter,
   Text.XML.HXT.DOM.NamespacePredicates,
+  Text.XML.HXT.DOM.QualifiedName,
   Text.XML.HXT.DOM.TypeDefs,
   Text.XML.HXT.DOM.UTF8Decoding,
   Text.XML.HXT.DOM.Unicode,
@@ -91,6 +93,7 @@
   Text.XML.HXT.Parser.ProtocolHandlerHttpNative,
   Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl,
   Text.XML.HXT.Parser.ProtocolHandlerUtil,
+  Text.XML.HXT.Parser.TagSoup,
   Text.XML.HXT.Parser.XhtmlEntities,
   Text.XML.HXT.Parser.XmlCharParser,
   Text.XML.HXT.Parser.XmlDTDParser,
@@ -149,7 +152,7 @@
  hs-source-dirs: src
  ghc-options: -Wall -fglasgow-exts
 
- build-depends: base, haskell98, parsec, HTTP, HUnit, network
+ build-depends: base, haskell98, parsec, HTTP, HUnit, network, tagsoup
  if flag(splitBase)
    build-depends: base >= 3, containers, directory, process
  else
diff --git a/src/Control/Arrow/ArrowList.hs b/src/Control/Arrow/ArrowList.hs
--- a/src/Control/Arrow/ArrowList.hs
+++ b/src/Control/Arrow/ArrowList.hs
@@ -121,6 +121,15 @@
     listA		:: a b c -> a b [c]
     listA af		= af >>.  (:[])
 
+    -- | the inverse of 'listA'
+    --
+    -- @ listA af >>> unlistA = af @
+    --
+    -- unlistA is defined as @ arrL id @
+
+    unlistA		:: a [b] b
+    unlistA		= arrL id
+
     -- | the identity arrow, alias for returnA
 
     this		:: a b b
@@ -292,6 +301,25 @@
 
     ($<$)		:: (c -> (a b b)) -> a b c -> a b b
     g $<$ f		= applyA (listA (f >>> arr g) >>> arr seqA)
+
+    -- | merge the result pairs of an arrow with type @a a1 (b1, b2)@
+    -- by combining the tuple components with the @op@ arrow
+    --
+    -- examples with simple list arrows working on strings and XmlTrees
+    --
+    -- >     a1 :: a String (XmlTree, XmlTree)
+    -- >     a1 = selem "foo" [this >>> mkText]
+    -- > 	  &&&
+    -- > 	  selem "bar" [arr (++"0") >>> mkText]
+    -- > 
+    -- >     runLA (a1 >>> mergeA (<+>) >>> xshow this) "42" == ["<foo>42</foo>","<bar>420</bar>"]
+    -- >     runLA (a1 >>> mergeA (+=)  >>> xshow this) "42" == ["<foo>42<bar>420</bar></foo>"]
+    --
+    -- see also: 'applyA', '$<' and '+=' in class 'Text.XML.HXT.Arrow.ArrowXml'
+
+    mergeA		:: (a (a1, b1) a1 -> a (a1, b1) b1 -> a (a1, b1) c) ->
+			   a (a1, b1) c
+    mergeA op		= (\ x -> arr fst `op` constA (snd x)) $< this
 
     -- | useful only for arrows with side effects: perform applies an arrow to the input
     -- ignores the result and returns the input
diff --git a/src/Control/Arrow/ArrowTree.hs b/src/Control/Arrow/ArrowTree.hs
--- a/src/Control/Arrow/ArrowTree.hs
+++ b/src/Control/Arrow/ArrowTree.hs
@@ -82,11 +82,11 @@
     -- example: @ processChildren (none \`when\` isCmt) @ removes all children, for which isCmt holds
 
     processChildren	:: Tree t => a (t b) (t b) -> a (t b) (t b)
-    processChildren f	= listA (getChildren >>> f)		-- new children, deterministic filter: single element result
+    processChildren f	= arr T.getNode
 			  &&&
-			  this					-- pair with root
+			  listA (arrL T.getChildren >>> f)	-- new children, deterministic filter: single element result
 			  >>>
-			  arr2 T.setChildren			-- apply binary filter
+			  arr2 T.mkTree
 
     -- | similar to processChildren, but the new children are computed by processing
     -- the whole input tree
@@ -95,11 +95,11 @@
     -- and substitutes the children component of the root node with this list
 
     replaceChildren	:: Tree t => a (t b) (t b) -> a (t b) (t b)
-    replaceChildren f	= listA f				-- compute new children
+    replaceChildren f	= arr T.getNode
 			  &&&
-			  this
+			  listA f				-- compute new children
 			  >>>
-			  arr2 T.setChildren
+			  arr2 T.mkTree
 
     -- |
     -- pronounced \"slash\", meaning g inside f
diff --git a/src/Data/Tree/Class.hs b/src/Data/Tree/Class.hs
--- a/src/Data/Tree/Class.hs
+++ b/src/Data/Tree/Class.hs
@@ -64,7 +64,7 @@
 
     -- | substitute children: @ setChildren cl = changeChildren (const cl) @
 
-    setChildren	::            [t a] -> t a -> t a
+    setChildren		::            [t a] -> t a -> t a
     setChildren cl	= changeChildren (const cl)
 
     -- | fold for trees
diff --git a/src/Makefile b/src/Makefile
--- a/src/Makefile
+++ b/src/Makefile
@@ -2,7 +2,7 @@
 #
 # global names and dirs
 
-VERSION		= 7.4
+VERSION		= 7.5
 HXT_HOME	= ..
 HXT_HOME_PATH	= $(shell cd $(HXT_HOME) ; pwd)
 PACKAGE_DIR	= $(HXT_HOME_PATH)/lib/hxt
@@ -96,7 +96,7 @@
 		  $(wildcard ./Control/Strategies/*.hs) \
 		  $(wildcard ./Text/XML/HXT/[A]*.hs) \
 		  $(wildcard ./Text/XML/HXT/DOM/NamespacePredicates.hs) \
-		  $(wildcard ./Text/XML/HXT/DOM/[ITU]*.hs) \
+		  $(wildcard ./Text/XML/HXT/DOM/[IQTU]*.hs) \
 		  $(wildcard ./Text/XML/HXT/DOM/XmlKeywords.hs) \
 		  $(wildcard ./Text/XML/HXT/Parser/XmlOptions.hs) \
 		  $(wildcard ./Text/XML/HXT/Arrow.hs) \
@@ -118,7 +118,7 @@
 HXT_LIBA	= libHS$(HXT_PACKAGE).a
 HXT_LIBO	= HS$(HXT_PACKAGE).o
 HXT_LIB		= $(HXT_LIBA) $(HXT_LIBO)
-HXT_REQ_PKG	= -package parsec -package HTTP
+HXT_REQ_PKG	= -package parsec -package HTTP -package tagsoup
 
 $(HXT_LIBA)	: $(HXT_SRC)
 		$(GHC) -package-name $(HXT_PACKAGE_NAME) $(HXT_REQ_PKG) --make $(HXT_DRIVER:.o=.hs)
@@ -226,7 +226,7 @@
 clean		:
 		$(MAKE) clean_packages
 		$(MAKE) -C ./Text/XML/HXT/ProtocolHandler clean
-		rm -rf $(LOCAL_INSTALL_DIR)
+		rm -rf $(LOCAL_INSTALL_DIR) hxt-package.conf ../hxt.cabal
 
 clean_$(HXT_PACKAGE)	:
 		$(RM) $(HXT_DRIVER) $(HXT_DRIVER:.o=.hi) $(HXT_OBJ) $(HXT_HI) $(HXT_LIB)
diff --git a/src/Text/XML/HXT/Arrow.hs b/src/Text/XML/HXT/Arrow.hs
--- a/src/Text/XML/HXT/Arrow.hs
+++ b/src/Text/XML/HXT/Arrow.hs
@@ -27,7 +27,7 @@
 
     , module Text.XML.HXT.Arrow.XmlArrow
     , module Text.XML.HXT.Arrow.XmlIOStateArrow
-    , module Text.XML.HXT.Arrow.XmlNodeSet
+    , module Text.XML.HXT.Arrow.XPath
 
     , module Text.XML.HXT.Arrow.DocumentInput
     , module Text.XML.HXT.Arrow.DocumentOutput
@@ -57,7 +57,9 @@
 import Text.XML.HXT.Arrow.WriteDocument
 import Text.XML.HXT.Arrow.XmlArrow
 import Text.XML.HXT.Arrow.XmlIOStateArrow
-import Text.XML.HXT.Arrow.XmlNodeSet
+import Text.XML.HXT.Arrow.XPath
+import qualified				-- just for adding the module to the lib
+       Text.XML.HXT.Arrow.XPathSimple as XPS ()
 
 import Text.XML.HXT.XSLT.XsltArrows
 
diff --git a/src/Text/XML/HXT/Arrow/DTDProcessing.hs b/src/Text/XML/HXT/Arrow/DTDProcessing.hs
--- a/src/Text/XML/HXT/Arrow/DTDProcessing.hs
+++ b/src/Text/XML/HXT/Arrow/DTDProcessing.hs
@@ -125,7 +125,7 @@
 
       processRoot	:: IOStateArrow s XmlTree XmlTree
       processRoot
-	  = ( traceMsg 1 ("processDTD: process parameter enitities")
+	  = ( traceMsg 1 ("processDTD: process parameter entities")
 	      >>>
 	      setParamString a_standalone ""
 	      >>>
diff --git a/src/Text/XML/HXT/Arrow/DocumentInput.hs b/src/Text/XML/HXT/Arrow/DocumentInput.hs
--- a/src/Text/XML/HXT/Arrow/DocumentInput.hs
+++ b/src/Text/XML/HXT/Arrow/DocumentInput.hs
@@ -53,6 +53,11 @@
 import Data.List
     ( isPrefixOf
     )
+
+import Data.Char
+    ( toLower
+    )
+
 import Data.Maybe
 
 -- ----------------------------------------------------------
@@ -139,40 +144,8 @@
       >>>
       addAttr transferStatus "200"
 
-{-
 getHttpContents		:: IOStateArrow s XmlTree XmlTree
 getHttpContents
-    = applyA ( ( getAttrValue transferURI
-		 &&&
-		 getParamString a_proxy
-	       )
-	       >>>
-	       applyA ( getParamInt 0 a_use_curl
-			>>>
-			ifP (==0)
-			  ( constA $ arrIO2 HTTP.getCont )		-- native http
-			  ( constA $
-			    ( getParamString a_options_curl &&& this )
-			    >>>
-			    arrIO3 CURL.getCont
-			  )
-		      )
-	       >>>
-	       ( arr addError
-		 |||
-		 arr addContent
-	       )
-	     )
-      where
-      addContent	:: (AssocList String String, String) -> IOStateArrow s XmlTree XmlTree
-      addContent (al, c)
-	  = replaceChildren (txt c)
-	    >>>
-	    seqA (map (uncurry addAttr) al)
--}
-
-getHttpContents		:: IOStateArrow s XmlTree XmlTree
-getHttpContents
     = getCont $<<<< ( getAttrValue transferURI
 		      &&&
 		      getOpt a_proxy
@@ -350,8 +323,13 @@
 decodeDocument
     = ( decodeArr $< getEncoding )
       `when`
-      isRoot
+      ( isRoot >>> isXmlOrHtmlDoc )
     where
+    isXmlOrHtmlDoc
+	= ( getAttrValue transferMimeType >>^ map toLower )
+	  >>>
+	  isA (\ t -> null t || isXmlMimeType t || isHtmlMimeType t)
+
     decodeArr	:: String -> IOStateArrow s XmlTree XmlTree
     decodeArr enc
 	= maybe notFound found . getDecodingFct $ enc
diff --git a/src/Text/XML/HXT/Arrow/Edit.hs b/src/Text/XML/HXT/Arrow/Edit.hs
--- a/src/Text/XML/HXT/Arrow/Edit.hs
+++ b/src/Text/XML/HXT/Arrow/Edit.hs
@@ -239,7 +239,7 @@
 
 -- |
 -- escape XmlText,
--- transform all special XML chars into char- or enitity- refs
+-- transform all special XML chars into char- or entity- refs
 
 type EntityRefTable	= M.Map Int String
 
diff --git a/src/Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs b/src/Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs
--- a/src/Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs
+++ b/src/Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs
@@ -89,7 +89,7 @@
 
 processGeneralEntities	:: IOStateArrow s XmlTree XmlTree
 processGeneralEntities
-    = ( traceMsg 1 "processGeneralEntities: collect and substitute general enities"
+    = ( traceMsg 1 "processGeneralEntities: collect and substitute general entities"
 	>>>
 	withOtherUserState emptyGeEnv (processChildren (processGeneralEntity ReferenceInContent []))
 	>>>
@@ -205,7 +205,7 @@
     substEntitiesInAttrDefaultValue	:: GEArrow XmlTree XmlTree
     substEntitiesInAttrDefaultValue
 	= applyA ( xshow ( getDTDAttrValue a_default			-- parse the default value
-			   >>>						-- substitute enities
+			   >>>						-- substitute entities
 			   mkText					-- and convert value into a string
 			   >>>
 			   parseXmlAttrValue "default value of attribute"
diff --git a/src/Text/XML/HXT/Arrow/ParserInterface.hs b/src/Text/XML/HXT/Arrow/ParserInterface.hs
--- a/src/Text/XML/HXT/Arrow/ParserInterface.hs
+++ b/src/Text/XML/HXT/Arrow/ParserInterface.hs
@@ -19,6 +19,7 @@
 import Text.XML.HXT.Arrow.DOMInterface
 import Text.XML.HXT.Arrow.XmlArrow
 
+import qualified Text.XML.HXT.Parser.TagSoup		 as TS
 import qualified Text.XML.HXT.Parser.HtmlParsec          as HP
 import qualified Text.XML.HXT.Parser.XmlParsec           as XP
 import qualified Text.XML.HXT.Parser.XmlDTDParser	 as DP
@@ -67,6 +68,10 @@
 
 parseHtmlContent		:: ArrowList a => a String XmlTree
 parseHtmlContent		= arrL  HP.parseHtmlContent
+
+parseHtmlTagSoup		:: ArrowList a => Bool -> Bool -> Bool -> Bool -> Bool -> a (String, String) XmlTree
+parseHtmlTagSoup withNamespaces withWarnings preserveCmt removeWS asHtml
+				= arr2L (TS.parseHtmlTagSoup withNamespaces withWarnings preserveCmt removeWS asHtml)
 
 -- ------------------------------------------------------------
 
diff --git a/src/Text/XML/HXT/Arrow/ProcessDocument.hs b/src/Text/XML/HXT/Arrow/ProcessDocument.hs
--- a/src/Text/XML/HXT/Arrow/ProcessDocument.hs
+++ b/src/Text/XML/HXT/Arrow/ProcessDocument.hs
@@ -38,6 +38,7 @@
 import Text.XML.HXT.Arrow.ParserInterface
     ( parseXmlDoc
     , parseHtmlDoc
+    , parseHtmlTagSoup
     , substHtmlEntityRefs
     , validateDoc
     , transformDoc
@@ -128,8 +129,8 @@
 
 -}
 
-parseHtmlDocument	:: Bool -> IOStateArrow s XmlTree XmlTree
-parseHtmlDocument warnings
+parseHtmlDocument	:: Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> IOStateArrow s XmlTree XmlTree
+parseHtmlDocument withTagSoup withNamespaces warnings preserveCmt removeWhitespace asHtml
     = ( perform ( getAttrValue a_source >>> traceString 1 (("parseHtmlDoc: parse HTML document " ++) . show) )
 	>>>
 	replaceChildren ( ( getAttrValue a_source		-- get source name
@@ -137,18 +138,10 @@
 			    xshow getChildren
 			  ) 					-- get string to be parsed
 			  >>>
-			  parseHtmlDoc				-- run parser
-			  >>>
-			  substHtmlEntityRefs			-- substitute entity refs
+			  parseHtml
 			)
 	>>>
-	processTopDownWithAttrl ( if warnings			-- remove warnings inserted by parser and entity subst
-				  then filterErrorMsg
-				  else ( none
-					 `when`
-					 isError
-				       )
-				)
+	removeWarnings
 	>>>
 	setDocumentStatusFromSystemState "parse HTML document"
 	>>>
@@ -156,9 +149,37 @@
 	>>>
 	traceSource
 	>>>
-	perform ( getAttrValue a_source >>> traceString 1 (\ src -> "parse HTML document " ++ show src ++ " finished") )
+	perform ( getAttrValue a_source
+		  >>>
+		  traceString 1 (\ src -> "parse HTML document " ++ show src ++ " finished")
+		)
       )
       `when` documentStatusOk
+    where
+    parseHtml
+	| withTagSoup	= traceMsg 1 ("parse document with tagsoup " ++
+				      ( if asHtml then "HT" else "X" ) ++ "ML parser"
+				     )
+			  >>>
+			  parseHtmlTagSoup withNamespaces warnings preserveCmt removeWhitespace asHtml
+
+	| otherwise	= traceMsg 1 ("parse document with parsec HTML parser")
+			  >>>
+			  parseHtmlDoc				-- run parser
+			  >>>
+			  substHtmlEntityRefs			-- substitute entity refs
+    removeWarnings
+	| withTagSoup
+	  &&
+	  not warnings	= this
+	| otherwise	= processTopDownWithAttrl
+			  ( if warnings				-- remove warnings inserted by parser and entity subst
+			    then filterErrorMsg
+			    else ( none
+				   `when`
+				   isError
+				 )
+			  )
 
 -- ------------------------------------------------------------
 
diff --git a/src/Text/XML/HXT/Arrow/ReadDocument.hs b/src/Text/XML/HXT/Arrow/ReadDocument.hs
--- a/src/Text/XML/HXT/Arrow/ReadDocument.hs
+++ b/src/Text/XML/HXT/Arrow/ReadDocument.hs
@@ -52,6 +52,10 @@
     ( validateDocumentWithRelaxSchema
     )
 
+import Data.Char
+    ( toLower
+    )
+
 -- ------------------------------------------------------------
 
 {- |
@@ -63,6 +67,17 @@
 
 * 'a_parse_html': use HTML parser, else use XML parser (default)
 
+- 'a_tagsoup' : use light weight and lasy parser based on tagsoup lib
+
+- 'a_parse_by_mimetype' : select the parser by the mime type of the document
+                          (pulled out of the HTTP header). When the mime type is set to \"text\/html\"
+			  the HTML parser (parsec or tagsoup) is taken, when it\'s set to
+			  \"text\/xml\" or \"text\/xhtml\" the XML parser (parsec or tagsoup) is taken.
+			  If the mime type is something else no further processing is performed,
+			  the contents is given back to the application in form of a single text node.
+			  If the default document encoding ('a_encoding') is set to isoLatin1, this even enables processing
+			  of arbitray binary data.
+
 - 'a_validate' : validate document againsd DTD (default), else skip validation
 
 - 'a_relax_schema' : validate document with Relax NG, the options value is the schema URI
@@ -112,9 +127,11 @@
 
 > readDocument [ (a_parse_html, "1")
 >              , (a_encoding, isoLatin1)
+>              , (a_tagsoup,    "1")
 >              ] ""
 
-reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is 'isoLatin1'
+reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is 'isoLatin1',
+parsing is done with tagsoup parser
 
 > readDocument [ (a_parse_html,     "1")
 >              , (a_proxy,          "www-cache:3128")
@@ -143,15 +160,7 @@
       >>>
       getDocumentContents remainingOptions src
       >>>
-      parse
-      >>>
-      checknamespaces
-      >>>
-      canonicalize
-      >>>
-      whitespace
-      >>>
-      relax
+      ( processDoc $< getMimeType )
       >>>
       traceMsg 1 ("readDocument: " ++ show src ++ " processed")
       >>>
@@ -159,65 +168,19 @@
       >>>
       traceTree
     where
-    parse
-	| validateWithRelax		= parseXmlDocument False		-- for Relax NG use XML parser without validation
-
-	| hasOption a_parse_html	= parseHtmlDocument			-- parse as HTML
-					  (hasOption a_issue_warnings)
-
-	| otherwise			= parseXmlDocument
-					  (hasOption a_validate)		-- parse as XML
-
-    checknamespaces
-	| hasOption a_check_namespaces
-	  ||
-	  validateWithRelax		= propagateAndValidateNamespaces
-	| otherwise			= this
-
-    canonicalize
-	| validateWithRelax		= canonicalizeAllNodes
-	| hasOption a_canonicalize
-	  &&
-	  hasOption a_preserve_comment	= canonicalizeForXPath
-	| hasOption a_canonicalize	= canonicalizeAllNodes
-	| otherwise			= this
-
-    relax
-	| validateWithRelax		= validateDocumentWithRelaxSchema remainingOptions relaxSchema
-	| otherwise			= this
-
-    whitespace
-	| hasOption a_remove_whitespace	= removeDocWhiteSpace
-	| otherwise			= this
-
-    addInputOptionsToSystemState
-	= addSysOptions (filter ((`elem` httpOptions) . fst) remainingOptions)
-	  where
-	  addSysOptions
-	      = seqA . map (uncurry setParamString)
-
-    traceLevel
-	= maybe this (setTraceLevel . read) . lookup a_trace $ options
-
-    validateWithRelax
-	= hasEntry a_relax_schema options
-
-    relaxSchema
-	= lookup1 a_relax_schema options
-
-    hasOption n
-	= optionIsSet n options
-
-    options = addEntries userOptions defaultOptions
+    options
+ 	= addEntries userOptions defaultOptions
 
     defaultOptions
 	= [ ( a_parse_html,		v_0 )
+	  , ( a_tagsoup,		v_0 )
 	  , ( a_validate,		v_1 )
 	  , ( a_issue_warnings,		v_1 )
 	  , ( a_check_namespaces,	v_0 )
 	  , ( a_canonicalize,		v_1 )
 	  , ( a_preserve_comment,	v_0 )
 	  , ( a_remove_whitespace,	v_0 )
+	  , ( a_parse_by_mimetype,	v_0 )
 	  ]
 
     httpOptions
@@ -225,6 +188,94 @@
 
     remainingOptions
 	 = filter (not . flip hasEntry defaultOptions . fst) options
+
+    traceLevel
+	= maybe this (setTraceLevel . read) . lookup a_trace $ options
+
+    addInputOptionsToSystemState
+	= addSysOptions (filter ((`elem` httpOptions) . fst) remainingOptions)
+	  where
+	  addSysOptions
+	      = seqA . map (uncurry setParamString)
+
+    getMimeType
+	= getAttrValue transferMimeType >>^ map toLower
+
+    processDoc mimeType
+	= traceMsg 1 ("readDocument: " ++ show src ++ " (mime type: " ++ show mimeType ++ ") will be processed")
+	  >>>
+	  parse
+	  >>>
+	  ( if isXmlOrHtml
+	    then ( checknamespaces
+		   >>>
+		   canonicalize
+		   >>>
+		   whitespace
+		   >>>
+		   relax
+		 )
+	    else this
+	  )
+	where
+	parse
+	    | isHtml
+	      || 
+	      withTagSoup		= parseHtmlDocument			-- parse as HTML or with tagsoup XML
+					  withNamespaces
+					  withTagSoup
+					  issueW
+					  (not (hasOption a_canonicalize) && preserveCmt)
+					  removeWS
+					  isHtml
+	    | validateWithRelax		= parseXmlDocument False		-- for Relax NG use XML parser without validation
+	    | isXml			= parseXmlDocument validate		-- parse as XML
+	    | otherwise			= this					-- don't parse, mime type is not XML nor HTML
+	checknamespaces
+	    | (withNamespaces && not withTagSoup)
+	      ||
+	      validateWithRelax		= propagateAndValidateNamespaces
+	    | otherwise			= this
+	canonicalize
+	    | withTagSoup		= this					-- tagsoup already removes redundant struff
+	    | validateWithRelax		= canonicalizeAllNodes
+	    | hasOption a_canonicalize
+	      &&
+	      preserveCmt			= canonicalizeForXPath
+	    | hasOption a_canonicalize	= canonicalizeAllNodes
+	    | otherwise			= this
+	relax
+	    | validateWithRelax		= validateDocumentWithRelaxSchema remainingOptions relaxSchema
+	    | otherwise			= this
+	whitespace
+	    | removeWS
+	      &&
+	      not withTagSoup		= removeDocWhiteSpace			-- tagsoup already removes whitespace
+	    | otherwise			= this
+	validateWithRelax	= hasEntry a_relax_schema options
+	relaxSchema		= lookup1 a_relax_schema options
+	parseHtml		= hasOption a_parse_html
+	parseXml		= hasOption a_parse_xml
+	isHtml			= parseHtml				-- force HTML
+				  ||
+				  mimeTypeIsHtml
+	isXml			= parseXml				-- force XML parsing
+				  ||
+				  ( not parseHtml
+				    &&
+				    ( mimeTypeIsXml || null mimeType )	-- mime type is XML or not there
+				  )
+	isXmlOrHtml	= isHtml || isXml
+	parseByMimeType	= hasOption a_parse_by_mimetype
+	validate	= hasOption a_validate
+	withNamespaces	= hasOption a_check_namespaces
+	withTagSoup	= hasOption a_tagsoup
+	issueW		= hasOption a_issue_warnings
+	removeWS	= hasOption a_remove_whitespace
+	preserveCmt	= hasOption a_preserve_comment
+	mimeTypeIsHtml	= parseByMimeType && isHtmlMimeType mimeType
+	mimeTypeIsXml	= parseByMimeType && isXmlMimeType  mimeType
+	hasOption n	= optionIsSet n options
 
 -- ------------------------------------------------------------
 
diff --git a/src/Text/XML/HXT/Arrow/WriteDocument.hs b/src/Text/XML/HXT/Arrow/WriteDocument.hs
--- a/src/Text/XML/HXT/Arrow/WriteDocument.hs
+++ b/src/Text/XML/HXT/Arrow/WriteDocument.hs
@@ -19,6 +19,7 @@
 module Text.XML.HXT.Arrow.WriteDocument
     ( writeDocument
     , writeDocumentToString
+    , prepareContents
     )
 where
 
@@ -147,6 +148,9 @@
       xshow getChildren
 
 -- ------------------------------------------------------------
+
+-- |
+-- indent and format output
 
 prepareContents	:: Attributes -> IOStateArrow s XmlTree XmlTree
 prepareContents userOptions
diff --git a/src/Text/XML/HXT/Arrow/XPath.hs b/src/Text/XML/HXT/Arrow/XPath.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/Arrow/XPath.hs
@@ -0,0 +1,282 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.Arrow.XPath
+   Copyright  : Copyright (C) 2006 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   Arrows for working with XPath and XmlNodeSets.
+
+   Most of the XPath arrows come in two versions,
+   one without dealing with namespaces, element and attribute names
+   in XPath expressions are taken as they ar ignoring any prefix:localname structure.
+
+   The second variant uses a namespace environment for associating the right
+   namespace for the appropriate prefix. an entry for the empty prefix
+   defines the default namespace for the expression.
+
+   The second variant should be used, when in the application namespaces
+   are significant, that means when namespace propagation is done for
+   the documents to be processed.
+
+   NodeSets are sets of \"pointer\" into an XML tree to reference
+   subnodes. These nodesets can be computed by XPath expressions or
+   normal arrows. The nodesets can then be used later for selecting
+   or modifying subtrees of this tree in an efficient way.
+
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.Arrow.XPath
+    ( getXPathTreesInDoc
+    , getXPathTreesInDocWithNsEnv
+    , getXPathTrees
+    , getXPathTreesWithNsEnv
+    , getElemNodeSet
+    , getElemAndAttrNodeSet
+    , getXPathNodeSet
+    , getFromNodeSet
+    , processXPathTrees
+    , processXPathTreesWithNsEnv
+    , processFromNodeSet
+    )
+where
+
+import qualified Text.XML.HXT.XPath as PT
+    ( getXPathSubTreesWithNsEnv
+    , getXPathNodeSetWithNsEnv
+    )
+
+import Control.Arrow.ListArrows
+
+import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.Arrow.XmlArrow
+
+import Text.XML.HXT.Arrow.Edit
+    ( canonicalizeForXPath
+    )
+
+-- ------------------------------------------------------------
+
+-- |
+-- Select parts of a whole XML document with root node by a XPath expression.
+--
+-- The main filter for selecting parts of a document via XPath.
+--
+-- The string argument must be a XPath expression with an absolute location path,
+-- the argument tree must be a complete document tree.
+--
+-- Before evaluating the xpath query, the document is canonicalized
+-- with 'Text.XML.HXT.Arrow.Edit.canonicalizeForXPath'
+--
+-- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
+-- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
+-- are convertet to text nodes.
+
+getXPathTreesInDoc			:: ArrowXml a => String -> a XmlTree XmlTree
+getXPathTreesInDoc			= getXPathTreesInDocWithNsEnv []
+
+-- | Same as 'getXPathTreesInDoc' but with namespace environment for the XPath names
+
+getXPathTreesInDocWithNsEnv		:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree
+getXPathTreesInDocWithNsEnv env query	= canonicalizeForXPath
+					  >>>
+					  arrL (PT.getXPathSubTreesWithNsEnv env query)
+
+-- |
+-- Select parts of an arbitrary XML tree by a XPath expression.
+--
+-- The main filter for selecting parts of an arbitrary XML tree via XPath.
+-- The string argument must be a XPath expression with an absolute location path,
+-- There are no restrictions on the argument tree.
+--
+-- No canonicalization is performed before evaluating the query
+--
+-- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
+-- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
+-- are convertet to text nodes.
+
+getXPathTrees				:: ArrowXml a => String -> a XmlTree XmlTree
+getXPathTrees				= getXPathTreesWithNsEnv []
+
+-- | Same as 'getXPathTrees' but with namespace environment for the XPath names
+
+getXPathTreesWithNsEnv			:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree
+getXPathTreesWithNsEnv env query	= arrL (PT.getXPathSubTreesWithNsEnv env query)
+
+-- | Select a set of nodes via an XPath expression from an arbitray XML tree
+--
+-- The result is a set of \"pointers\" to nodes. This set can be used to
+-- access or modify the values of the subnodes in subsequent calls to 'getFromNodeSet' or 'processFromNodeSet'.
+--
+-- This function enables for parsing an XPath expressions and traversing the tree for node selection once
+-- and reuse this result possibly many times for later selection and modification operations.
+
+getXPathNodeSet				:: ArrowXml a => String -> a XmlTree XmlNodeSet
+getXPathNodeSet				= getXPathNodeSetWithNsEnv []
+
+-- | Same as 'getXPathNodeSet' but with namespace environment for the XPath names
+
+getXPathNodeSetWithNsEnv		:: ArrowXml a => NsEnv -> String -> a XmlTree XmlNodeSet
+getXPathNodeSetWithNsEnv nsEnv query	= arr (PT.getXPathNodeSetWithNsEnv nsEnv query)
+
+-- ------------------------------------------------------------
+
+getNodeSet	:: ArrowXml a => a XmlTree QName -> a XmlTree XmlTree -> a XmlTree XmlNodeSet
+getNodeSet af f
+    = ( ( listA ( getChildren
+		  >>>
+		  getNodeSet af f
+		)
+	  >>>
+	  arr filterNodeSet
+	)
+	&&&
+	listA af
+	&&&
+	listA f
+      )
+      >>^ (\ ~(cl, (al, n)) -> XNS (not . null $ n) al cl)
+    where
+    filterNodeSet	:: [XmlNodeSet] -> ChildNodes
+    filterNodeSet
+	= concat . zipWith filterIx [0..]
+
+    filterIx	:: Int -> XmlNodeSet -> ChildNodes
+    filterIx _ix (XNS False [] [])
+	= []
+    filterIx ix ps
+	= [(ix, ps)]
+
+-- |
+-- compute a node set from a tree, containing all nodes selected by the predicate arrow
+--
+-- computation of the set of element nodes with name \"a\" is done with
+--
+-- > getElemNodeSet (hasName "a")
+
+getElemNodeSet		:: ArrowXml a => a XmlTree XmlTree -> a XmlTree XmlNodeSet
+getElemNodeSet f
+    = getNodeSet none f
+
+-- |
+-- compute a node set from a tree, containing all nodes including attribute nodes
+-- elected by the predicate arrow
+
+getElemAndAttrNodeSet	:: ArrowXml a => a XmlTree XmlTree -> a XmlTree XmlNodeSet
+getElemAndAttrNodeSet f
+    = getNodeSet ( getAttrl
+		   >>>
+		   ( f `guards` getAttrName )
+		 ) f
+
+-- ------------------------------------------------------------
+
+-- |
+-- select all subtrees specified by a previously computed node set
+--
+-- the following law holds:
+--
+-- > getFromNodeSet $< getElemNodeSet f == multi f
+
+getFromNodeSet		:: ArrowXml a => XmlNodeSet -> a XmlTree XmlTree
+getFromNodeSet (XNS t al cl)
+    = fromLA $
+      ( if t then this else none )
+      <+>
+      ( getAttrl >>> getFromAttrl al )
+      <+>
+      ( getFromChildren (0-1) cl $< listA getChildren )
+    where
+
+    getFromAttrl	:: [QName] -> LA XmlTree XmlTree
+    getFromAttrl l
+	= ( catA . map hasQName $ l)
+	  `guards`
+	  this
+
+    getFromChildren	:: Int -> ChildNodes -> XmlTrees -> LA XmlTree XmlTree
+    getFromChildren _ [] _
+	= none
+
+    getFromChildren i' ((i, sp) : sps) ts
+	= ( arrL (const t') >>> getFromNodeSet sp )
+	  <+>
+	  getFromChildren i sps ts'
+	  where
+	  (t', ts') = splitAt 1 . drop (i-i'-1) $ ts
+
+-- ------------------------------------------------------------
+
+-- |
+-- process all subtrees selected by an XPath expression
+--
+-- the following law holds:
+--
+-- > processXPathTrees p xpathExpr == processFromNodeSet p $< getXPathNodeSet xpathExpr
+
+
+processXPathTrees		:: ArrowXml a => a XmlTree XmlTree  -> String -> a XmlTree XmlTree
+processXPathTrees f		= processXPathTreesWithNsEnv f []
+
+-- | Same as 'processXPathTrees' but with namespace environment for the XPath names
+
+processXPathTreesWithNsEnv	:: ArrowXml a => a XmlTree XmlTree  -> NsEnv -> String -> a XmlTree XmlTree
+processXPathTreesWithNsEnv f nsEnv query
+    = processFromNodeSet f $< getXPathNodeSetWithNsEnv nsEnv query
+
+-- |
+-- process all subtrees specified by a previously computed node set in bottom up manner
+--
+-- the follwoing law holds:
+--
+-- > processFromNodeSet g $< getElemNodeSet f == processBottomUp (g `when` f)
+--
+-- when attributes are contained in the node set (see 'getElemAndAttrNodeSet'), these are processed
+-- after the children and before the node itself
+--
+-- the advantage of processFromNodeSet is the separation of the selection of set of nodes to be processed (e.g. modified)
+-- from the real proccessing. The selection sometimes can be done once, the processing possibly many times.
+
+processFromNodeSet	:: ArrowXml a => a XmlTree XmlTree  -> XmlNodeSet -> a XmlTree XmlTree
+processFromNodeSet f (XNS t al cl)
+    = ( if null cl
+	then this
+	else replaceChildren ( processC (0-1) cl $< listA getChildren )
+      )
+      >>>
+      ( if null al
+	then this
+	else processAttrl (processA al)
+      )
+      >>>
+      ( if not t
+	then this
+	else f
+      )
+    where
+
+    -- processA		:: ChildNodes -> a XmlTree XmlTree
+    processA l
+	= f `when` ( catA . map hasQName $ l)
+
+    -- processC		:: ChildNodes -> XmlTrees -> a XmlTree XmlTree
+    processC _ [] ts
+	= arrL (const ts)
+
+    processC i' ((i, sp) : sps) ts
+	= arrL (const ts1)
+	  <+>
+	  ( arrL (const ti) >>> processFromNodeSet f sp)
+	  <+>
+	  processC i sps ts21
+	  where
+	  (ts1, ts2) = splitAt (i-i'-1) ts
+	  (ti, ts21) = splitAt 1 ts2
+
+-- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Arrow/XPathSimple.hs b/src/Text/XML/HXT/Arrow/XPathSimple.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/Arrow/XPathSimple.hs
@@ -0,0 +1,511 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.XPath.GetSimpleXPath
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   XPath selection for simple XPath expressions with list arrows
+   instead of navigatable trees.
+
+   It is recomended, that this module is imported qualified,
+   e.g like @Text.XML.HXT.Arrow.XPathSimple as XS@.
+
+   The arrows defined in this module have the same
+   functionality as the functions in 'Text.XML.HXT.Arrow.XPath'.
+
+   The computation modell in XPath is a navigatable tree,
+   that means a tree wicht can be traveresed in arbitrary directions,
+   not only from the root to the leafs. Sometimes this modell
+   leads to inefficent XPath processing for simple queries, which
+   only need a top down tree traversal.
+
+   When evaluating an XPath expression with these functions, first an attempt is made
+   to map the XPath expression to a pure arrow. If this is possible
+   due to the siplicity of the XPath expressions, the result is computed
+   directly, else the query is processed by the corresponding
+   function in 'Text.XML.HXT.Arrow.XPath'.
+
+   The simple evaluation is possible, when in the XPath expression
+   only the top down axis (self, child, descendant, descendant or self are used,
+   when no builtin functions concerning the position of a node are used,
+   and no comparison of nodes e.g. in node set union is required.
+
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.Arrow.XPathSimple
+where
+
+import Control.Monad
+import Control.Arrow.ListArrows
+
+import Data.Maybe
+
+import Text.ParserCombinators.Parsec
+    ( runParser )
+
+import Text.XML.HXT.Arrow.DOMInterface
+import Text.XML.HXT.Arrow.XmlArrow
+
+import qualified Text.XML.HXT.Arrow.XPath as XP
+    ( getXPathTreesWithNsEnv
+    )
+
+import Text.XML.HXT.Arrow.Edit
+    ( canonicalizeForXPath
+    )
+
+import Text.XML.HXT.XPath.XPathDataTypes
+    ( XPNumber (..)
+    , Expr (..)
+    , Op (..)
+    , XPathNode (..)
+    , LocationPath (..)
+    , Path (..)
+    , XStep (..)
+    , AxisSpec (..)
+    , NodeTest (..)
+    , XPathValue (..)
+    )
+
+import Text.XML.HXT.XPath.XPathParser
+    ( parseXPath
+    , parseNumber
+    )
+
+-- ----------------------------------------
+
+-- |
+-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesInDoc'
+
+getXPathTreesInDoc			:: ArrowXml a => String -> a XmlTree XmlTree
+getXPathTreesInDoc			= getXPathTreesInDocWithNsEnv []
+
+-- |
+-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesInDocWithNsEnv'
+
+getXPathTreesInDocWithNsEnv		:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree
+getXPathTreesInDocWithNsEnv env query	= canonicalizeForXPath
+					  >>>
+					  tryGetXPath env query
+-- |
+-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTrees'
+
+getXPathTrees				:: ArrowXml a => String -> a XmlTree XmlTree
+getXPathTrees				= getXPathTreesWithNsEnv []
+
+-- |
+-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesWithNsEnv'
+
+getXPathTreesWithNsEnv			:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree
+getXPathTreesWithNsEnv			= tryGetXPath
+
+
+tryGetXPath				:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree
+tryGetXPath env query			= ( listA (getXPathTreesWithNsEnvSimple env query)
+					    &&&
+					    listA (   XP.getXPathTreesWithNsEnv env query)
+					  )
+                                          >>>
+					  ifA (arr fst >>> (unlistA >>. take 1) >>> isError)
+					      (arr snd >>> unlistA)
+					      (arr fst >>> unlistA)
+
+-- |
+-- The xpath interpreter for simple xpath expressions.
+--
+-- In case of a too complicated or illegal xpath expression an error
+-- node is returned, else the list of selected XML trees
+
+getXPathTreesWithNsEnvSimple		:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree
+getXPathTreesWithNsEnvSimple env s	= fromLA $ getXP env s
+
+-- ----------------------------------------
+
+getXP			:: NsEnv -> String -> LA XmlTree XmlTree
+getXP env s		= either (err
+				  .
+				  (("Syntax error in XPath expression " ++ show s ++ ": ") ++)
+				  .
+				  show . show
+				 ) (fromMaybe (err ( "XPath expression " ++ show s ++
+						     " too complicated for simple arrow evaluation"
+						   )
+					      ) . compXPath
+				   )
+			  .
+			  runParser parseXPath env ""
+			  $ s
+
+-- ----------------------------------------
+
+type XPArrow b c		= Maybe (LA b c)
+
+mk				:: LA b c -> XPArrow b c
+mk				= Just
+
+unwrap				:: XPArrow b b -> LA b b
+unwrap				= fromJust . toThis
+
+(>>>>)				:: XPArrow b b -> XPArrow b b -> XPArrow b b
+Nothing   >>>> a2		= a2
+a1        >>>> Nothing		= a1
+(Just f1) >>>> (Just f2)	= return $ f1 >>> f2
+
+(&&&&)				:: XPArrow b b -> XPArrow b b -> XPArrow b (b, b)
+Nothing   &&&& a2		= this'' &&&& a2
+a1        &&&& Nothing		= a1     &&&& this''
+(Just f1) &&&& (Just f2)	= return $ f1 &&& f2
+
+(<+>>)				:: XPArrow b b -> XPArrow b b -> XPArrow b b
+Nothing   <+>> _a2		= Nothing
+_a1       <+>> Nothing		= Nothing
+(Just f1) <+>> (Just f2)	= return $ f1 <+> f2
+
+guards'				:: XPArrow b b -> XPArrow b b -> XPArrow b b
+Nothing   `guards'` a2		= a2
+a1        `guards'` Nothing	= a1 `guards'` this''
+(Just f1) `guards'` (Just f2)	= return $ f1 `guards` f2
+
+this'				:: XPArrow b b
+this'				= Nothing
+
+this''				:: XPArrow b b
+this''				= mk this
+
+toThis				:: XPArrow b b -> XPArrow b b
+toThis Nothing			= this''
+toThis a			= a
+
+getChildren'			:: XPArrow XmlTree XmlTree -> XPArrow XmlTree XmlTree
+getChildren' a			= mk getChildren >>>> a
+
+getAttrl'			:: XPArrow XmlTree XmlTree -> XPArrow XmlTree XmlTree
+getAttrl' a			= mk getAttrl >>>> a
+
+multi'				:: XPArrow XmlTree XmlTree -> XPArrow XmlTree XmlTree
+multi' a			= mk $ multi (unwrap a)
+
+deep'				:: XPArrow XmlTree XmlTree -> XPArrow XmlTree XmlTree
+deep' a				= mk $ deep (unwrap a)
+
+xIndex				:: Int -> LA [b] b
+xIndex i
+    | i <= 0			= none
+    | otherwise			= arrL (take 1 . drop (i-1))
+
+xString				:: XPArrow XmlTree XmlTree -> LA XmlTree String
+xString a			= unwrap a >>> xshow (deep isText)
+
+xNumber'			:: XPArrow XmlTree XmlTree -> LA XmlTree XPNumber
+xNumber' a			=  xString a >>> arr toNumber
+
+-- ------------------------------
+
+deadEndStreet			:: Monad m => m a
+deadEndStreet			= fail "XPath expression too complicated for XmlArrows"
+
+compXPath			:: MonadPlus m => Expr -> m (LA XmlTree XmlTree)
+compXPath e			= do
+				  r <- compXP e
+				  return $ unwrap r
+
+compXP				:: MonadPlus m => Expr -> m (XPArrow XmlTree XmlTree)
+compXP (PathExpr Nothing (Just (LocPath Abs lp)))
+				= compLP lp this'
+compXP (FilterExpr (e1:el))	= do
+				  r <- compXP e1
+				  compFP el r
+compXP _			= deadEndStreet
+
+compFP				:: MonadPlus m => [Expr] -> XPArrow XmlTree XmlTree -> m (XPArrow XmlTree XmlTree)
+compFP []      r		= return r
+compFP (e1:es) r		= do
+				  r1 <- compPred [e1] r
+				  compFP es r1
+
+compLP				:: MonadPlus m => [XStep] -> XPArrow XmlTree XmlTree -> m (XPArrow XmlTree XmlTree)
+compLP []     r			= return r
+compLP (x:xs) r			= do
+				  a1 <- compXS x r
+				  as <- compLP xs a1
+				  return as
+
+compXS				:: MonadPlus m => XStep -> XPArrow XmlTree XmlTree -> m (XPArrow XmlTree XmlTree)
+compXS (Step Child nt ps) s	= do
+				  an <- compNTE nt
+				  compPred ps (s >>>> mk getChildren >>>> an)
+
+compXS (Step DescendantOrSelf nt ps) s
+				= do
+				  an <- compNTE nt
+				  compPred ps (s >>>> multi' an)
+
+compXS (Step Descendant nt ps) s
+				= do
+				  an <- compNTE nt
+				  compPred ps (s >>>> mk getChildren >>>> multi' an)
+
+compXS (Step Self nt ps) s
+				= do
+				  an <- compNTE nt
+				  compPred ps (s >>>> an)
+compXS (Step Attribute nt ps) s
+				= do
+				  an <- compNTA nt
+				  compPred ps (s >>>> getAttrl' an)
+
+compXS _ _			= deadEndStreet
+
+compNTE				:: (Monad m) => NodeTest -> m (XPArrow XmlTree XmlTree)
+compNTE (NameTest qn)		= compNameT isElem qn
+compNTE nt			= compNT nt
+
+compNTA				:: (Monad m) => NodeTest -> m (XPArrow XmlTree XmlTree)
+compNTA (NameTest qn)		= compNameT isAttr qn
+compNTA nt			= compNT nt
+
+compNameT			:: Monad m => LA XmlTree XmlTree -> QName -> m (XPArrow XmlTree XmlTree)
+compNameT ist qn
+    | null (namespaceUri qn)	= return $ mk
+				  ( if qualifiedName qn == "*"
+				    then ist
+				    else ist >>> hasName (qualifiedName qn)
+				  )
+    | otherwise			= return $ mk
+				  ( if localPart qn == "*"
+				    then ist >>> hasNamespaceUri (namespaceUri qn)
+				    else ist >>> hasQName qn
+
+				  )
+
+compNT				:: Monad m => NodeTest -> m (XPArrow XmlTree XmlTree)
+compNT (TypeTest XPNode)       	= return this'
+compNT (TypeTest XPCommentNode)	= return $ mk isCmt
+compNT (TypeTest XPPINode)      = return $ mk isPi
+compNT (TypeTest XPTextNode)    = return $ mk isText
+
+compNT _			= deadEndStreet
+
+compPred			:: MonadPlus m => [Expr] -> XPArrow XmlTree XmlTree -> m (XPArrow XmlTree XmlTree)
+compPred []     r		= return r
+compPred (e:es)	r		= do
+				  r1 <- compPred1 e r
+				  compPred es r1
+
+compPred1			:: MonadPlus m => Expr -> XPArrow XmlTree XmlTree -> m (XPArrow XmlTree XmlTree)
+compPred1 e r			= ( do
+				    ix <- compIntExpr e
+				    return . mk $ listA (unwrap r) >>> xIndex ix
+				  )
+				  `mplus`
+				  ( do
+				    a1 <- compRelPathExpr e
+				    return $ r >>>> (a1 `guards'` this')
+				  )
+				  `mplus`
+				  ( do
+				    a1 <- compGenExpr e
+				    return $ r >>>> (a1 `guards'` this')
+				  )
+				  `mplus`
+				  ( do
+				    b1 <- compBoolExpr e
+				    return $ if b1 then r else mk none
+				  )
+
+compRelPathExpr			:: MonadPlus m => Expr -> m (XPArrow XmlTree XmlTree)
+compRelPathExpr (PathExpr Nothing (Just (LocPath Rel lp)))
+				= compLP lp this'
+compRelPathExpr _		= deadEndStreet
+
+compStringExpr			:: MonadPlus m => Expr -> m String
+compStringExpr (LiteralExpr s)	= return s
+compStringExpr _		= deadEndStreet
+
+compNumberExpr			:: MonadPlus m => Expr -> m XPNumber
+compNumberExpr (NumberExpr n)	= return n
+compNumberExpr (FctExpr "number" [f1])
+				= ( do
+				    b <- compBoolExpr f1
+				    return $ if b then (Float 1) else Pos0
+				  )
+				  `mplus`
+				  ( do
+				    s <- compStringExpr f1
+				    return $ toNumber s
+				  )
+compNumberExpr _		= deadEndStreet
+
+compIntExpr			:: MonadPlus m => Expr -> m Int
+compIntExpr e			= ( do
+				    (Float f) <- compNumberExpr e
+				    return (round f)
+				  )
+				  `mplus`
+				  deadEndStreet
+
+
+compBoolExpr			:: MonadPlus m => Expr -> m Bool
+compBoolExpr (FctExpr f [])
+    | f `elem` ["true", "false"]
+				= return $ f == "true"
+compBoolExpr (FctExpr "not" [f1])
+				= do
+				  v1 <- compBoolExpr f1
+				  return $ not v1
+compBoolExpr (LiteralExpr s)	= return $ not (null s)
+compBoolExpr (NumberExpr n)	= return $ nz n
+				  where
+				  nz (Float f) = f /= 0
+				  nz NegInf    = True
+				  nz PosInf    = True
+				  nz _         = False
+compBoolExpr _			= deadEndStreet
+
+compGenExpr			:: MonadPlus m => Expr -> m (XPArrow XmlTree XmlTree)
+compGenExpr (GenExpr op [e1,e2])
+				= compString op e1 e2		-- on arg is a string expr
+				  `mplus`
+				  compNumber op e1 e2		-- one arg is a number expr
+				  `mplus`
+				  compBool   op e1 e2		-- and/or
+				  `mplus`
+				  compPath   op e1 e2		-- nodeset equality
+
+compGenExpr (GenExpr op (e1:el))
+    | op `elem` [And, Or]	= compGenExpr (GenExpr op [e1, GenExpr op el])
+
+compGenExpr _			= deadEndStreet
+
+compString			:: MonadPlus m => Op -> Expr -> Expr -> m (XPArrow XmlTree XmlTree)
+compString op e1 e2
+    | op `elem` [Eq, NEq]	= ( do
+				    s <- compStringExpr  e2
+				    a <- compRelPathExpr e1
+				    return $ mkEq' a s
+				  )
+				  `mplus`
+				  ( do
+				    s <- compStringExpr  e1
+				    a <- compRelPathExpr e2
+				    return $ mkEq' a s
+				  )
+				  where
+				  mkEq' a' s' = mk ( ( xString a'
+							>>>
+							isA ( if op == Eq
+							      then (== s')
+							      else (/= s')
+							    )
+						      )
+						      `guards` this	-- just for type match
+						    )
+compString _ _ _		= deadEndStreet
+
+compNumber			:: MonadPlus m => Op -> Expr -> Expr -> m (XPArrow XmlTree XmlTree)
+compNumber op e1 e2
+    | op `elem` [Eq, NEq, Less, Greater, LessEq, GreaterEq]
+				= ( do
+				    n <- compNumberExpr  e2
+				    a <- compRelPathExpr e1
+				    return $ mkEq' a n
+				  )
+				  `mplus`
+				  ( do
+				    n <- compNumberExpr  e1
+				    a <- compRelPathExpr e2
+				    return $ mkEq' a n
+				  )
+				  where
+				  mkEq' a' n' = mk ( ( xNumber' a'
+							>>>
+							isA (flip ( case op of
+								    Eq        -> (==)
+								    NEq       -> (/=)
+								    Less      -> (<)
+								    Greater   -> (>)
+								    LessEq    -> (<=)
+								    GreaterEq -> (>=)
+								    _         -> error "compNumber: wrong arg"
+								  ) n'
+							    )
+						      )
+						      `guards` this
+						    )
+compNumber _ _ _		= deadEndStreet
+
+compBool			:: MonadPlus m => Op -> Expr -> Expr -> m (XPArrow XmlTree XmlTree)
+compBool And e1 e2		= ( do
+				    b <- compBoolExpr e1
+				    if b
+				       then compGenExpr e2
+				       else return $ mk none
+				  )
+				  `mplus`
+				  ( do
+				    b <- compBoolExpr e2
+				    if b
+				       then compGenExpr e1
+				       else return $ mk none
+				  )
+				  `mplus`
+				  ( do
+				    a1 <- compGenExpr e1
+				    a2 <- compGenExpr e2
+				    return $ a1 `guards'` a2
+				  )
+compBool Or e1 e2		= ( do
+				    b <- compBoolExpr e1
+				    if b
+                                       then return this'
+				       else compGenExpr e2
+				  )
+				  `mplus`
+				  ( do
+				    b <- compBoolExpr e2
+				    if b
+                                       then return this'
+				       else compGenExpr e1
+				  )
+				  `mplus`
+				  ( do
+				    a1 <- compGenExpr e1
+				    a2 <- compGenExpr e2
+				    return $ a1 <+>> a2
+				  )
+compBool _ _ _			= deadEndStreet
+
+compPath			:: MonadPlus m => Op -> Expr -> Expr -> m (XPArrow XmlTree XmlTree)
+compPath op e1 e2
+    | op `elem` [Eq, NEq]	= ( do
+				    a1 <- compRelPathExpr e2
+				    a2 <- compRelPathExpr e1
+				    return $ mk . cmp op $ ( ( listA (xString a1) &&& listA (xString a2))
+							      >>>
+							      eqs
+							    )
+				  )
+				  where
+				  eqs		= arr2L equalNodeSet
+				  cmp Eq  a	= a `guards` this
+				  cmp NEq a	= ifA a none this
+				  cmp _ _	= error "compPath: wrong agruments"
+
+compPath _ _ _			= deadEndStreet
+
+-- ----------------------------------------
+
+toNumber		:: String -> XPNumber
+toNumber s		= let ( XPVNumber v) = parseNumber s in v
+
+equalNodeSet		:: Eq a => [a] -> [a] -> [a]
+equalNodeSet s1 s2	= [ x | x <- s1, y <- s2, x == y]
+
+-- ----------------------------------------
diff --git a/src/Text/XML/HXT/Arrow/XmlNodeSet.hs b/src/Text/XML/HXT/Arrow/XmlNodeSet.hs
deleted file mode 100644
--- a/src/Text/XML/HXT/Arrow/XmlNodeSet.hs
+++ /dev/null
@@ -1,278 +0,0 @@
--- ------------------------------------------------------------
-
-{- |
-   Module     : Text.XML.HXT.Arrow.XmlNodeSet
-   Copyright  : Copyright (C) 2006 Uwe Schmidt
-   License    : MIT
-
-   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
-   Stability  : experimental
-   Portability: portable
-   Version    : $Id: XmlNodeSet.hs,v 1.5 2006/11/12 14:52:59 hxml Exp $
-
-   Arrows for working with XPath and XmlNodeSets.
-
-   Most of the XPath arrows come in two versions,
-   one without dealing with namespaces, element and attribute names
-   in XPath expressions are taken as they ar ignoring any prefix:localname structure.
-
-   The second variant uses a namespace environment for associating the right
-   namespace for the appropriate prefix. an entry for the empty prefix
-   defines the default namespace for the expression.
-
-   The second variant should be used, when in the application namespaces
-   are significant, that means when namespace propagation is done for
-   the documents to be processed.
-
-   NodeSets are sets of \"pointer\" into an XML tree to reference
-   subnodes. These nodesets can be computed by XPath expressions or
-   normal arrows. The nodesets can then be used later for selecting
-   or modifying subtrees of this tree in an efficient way.
-
--}
-
--- ------------------------------------------------------------
-
-module Text.XML.HXT.Arrow.XmlNodeSet
-    ( getXPathTreesInDoc
-    , getXPathTreesInDocWithNsEnv
-    , getXPathTrees
-    , getXPathTreesWithNsEnv
-    , getElemNodeSet
-    , getElemAndAttrNodeSet
-    , getXPathNodeSet
-    , getFromNodeSet
-    , processXPathTrees
-    , processXPathTreesWithNsEnv
-    , processFromNodeSet
-    )
-where
-
-import qualified Text.XML.HXT.XPath as PT
-    ( getXPathWithNsEnv
-    , getXPathSubTreesWithNsEnv
-    , getXPathNodeSetWithNsEnv
-    )
-
-import Control.Arrow.ListArrows
-
-import Text.XML.HXT.Arrow.DOMInterface
-import Text.XML.HXT.Arrow.XmlArrow
-
--- ------------------------------------------------------------
-
--- |
--- Select parts of a whole XML document with root node by a XPath expression.
---
--- The main filter for selecting parts of a document via XPath.
---
--- The string argument must be a XPath expression with an absolute location path,
--- the argument tree must be a complete document tree.
---
--- Before evaluating the xpath query, the document is canonicalized
--- with 'Text.XML.HXT.Arrow.Edit.canonicalizeForXPath'
---
--- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
--- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
--- are convertet to text nodes.
-
-getXPathTreesInDoc			:: ArrowList a => String -> a XmlTree XmlTree
-getXPathTreesInDoc			= getXPathTreesInDocWithNsEnv []
-
--- | Same as 'getXPathTreesInDoc' but with namespace environment for the XPath names
-
-getXPathTreesInDocWithNsEnv		:: ArrowList a => NsEnv -> String -> a XmlTree XmlTree
-getXPathTreesInDocWithNsEnv env query	= arrL (PT.getXPathWithNsEnv env query)
-
--- |
--- Select parts of an arbitrary XML tree by a XPath expression.
---
--- The main filter for selecting parts of an arbitrary XML tree via XPath.
--- The string argument must be a XPath expression with an absolute location path,
--- There are no restrictions on the argument tree.
---
--- No canonicalization is performed before evaluating the query
---
--- Result is a possibly empty list of XmlTrees forming the set of selected XPath values.
--- XPath values other than XmlTrees (numbers, attributes, tagnames, ...)
--- are convertet to text nodes.
-
-getXPathTrees				:: ArrowList a => String -> a XmlTree XmlTree
-getXPathTrees				= getXPathTreesWithNsEnv []
-
--- | Same as 'getXPathTrees' but with namespace environment for the XPath names
-
-getXPathTreesWithNsEnv			:: ArrowList a => NsEnv -> String -> a XmlTree XmlTree
-getXPathTreesWithNsEnv env query	= arrL (PT.getXPathSubTreesWithNsEnv env query)
-
--- | Select a set of nodes via an XPath expression from an arbitray XML tree
---
--- The result is a set of \"pointers\" to nodes. This set can be used to
--- access or modify the values of the subnodes in subsequent calls to 'getFromNodeSet' or 'processFromNodeSet'.
---
--- This function enables for parsing an XPath expressions and traversing the tree for node selection once
--- and reuse this result possibly many times for later selection and modification operations.
-
-getXPathNodeSet				:: ArrowList a => String -> a XmlTree XmlNodeSet
-getXPathNodeSet				= getXPathNodeSetWithNsEnv []
-
--- | Same as 'getXPathNodeSet' but with namespace environment for the XPath names
-
-getXPathNodeSetWithNsEnv		:: ArrowList a => NsEnv -> String -> a XmlTree XmlNodeSet
-getXPathNodeSetWithNsEnv nsEnv query	= arr (PT.getXPathNodeSetWithNsEnv nsEnv query)
-
--- ------------------------------------------------------------
-
-getNodeSet	:: ArrowXml a => a XmlTree QName -> a XmlTree XmlTree -> a XmlTree XmlNodeSet
-getNodeSet af f
-    = ( ( listA ( getChildren
-		  >>>
-		  getNodeSet af f
-		)
-	  >>>
-	  arr filterNodeSet
-	)
-	&&&
-	listA af
-	&&&
-	listA f
-      )
-      >>^ (\ ~(cl, (al, n)) -> XNS (not . null $ n) al cl)
-    where
-    filterNodeSet	:: [XmlNodeSet] -> ChildNodes
-    filterNodeSet
-	= concat . zipWith filterIx [0..]
-
-    filterIx	:: Int -> XmlNodeSet -> ChildNodes
-    filterIx _ix (XNS False [] [])
-	= []
-    filterIx ix ps
-	= [(ix, ps)]
-
--- |
--- compute a node set from a tree, containing all nodes selected by the predicate arrow
---
--- computation of the set of element nodes with name \"a\" is done with
---
--- > getElemNodeSet (hasName "a")
-
-getElemNodeSet		:: ArrowXml a => a XmlTree XmlTree -> a XmlTree XmlNodeSet
-getElemNodeSet f
-    = getNodeSet none f
-
--- |
--- compute a node set from a tree, containing all nodes including attribute nodes
--- elected by the predicate arrow
-
-getElemAndAttrNodeSet	:: ArrowXml a => a XmlTree XmlTree -> a XmlTree XmlNodeSet
-getElemAndAttrNodeSet f
-    = getNodeSet ( getAttrl
-		   >>>
-		   ( f `guards` getAttrName )
-		 ) f
-
--- ------------------------------------------------------------
-
--- |
--- select all subtrees specified by a previously computed node set
---
--- the following law holds:
---
--- > getFromNodeSet $< getElemNodeSet f == multi f
-
-getFromNodeSet		:: ArrowXml a => XmlNodeSet -> a XmlTree XmlTree
-getFromNodeSet (XNS t al cl)
-    = fromLA $
-      ( if t then this else none )
-      <+>
-      ( getAttrl >>> getFromAttrl al )
-      <+>
-      ( getFromChildren (0-1) cl $< listA getChildren )
-    where
-
-    getFromAttrl	:: [QName] -> LA XmlTree XmlTree
-    getFromAttrl l
-	= ( catA . map hasQName $ l)
-	  `guards`
-	  this
-
-    getFromChildren	:: Int -> ChildNodes -> XmlTrees -> LA XmlTree XmlTree
-    getFromChildren _ [] _
-	= none
-
-    getFromChildren i' ((i, sp) : sps) ts
-	= ( arrL (const t') >>> getFromNodeSet sp )
-	  <+>
-	  getFromChildren i sps ts'
-	  where
-	  (t', ts') = splitAt 1 . drop (i-i'-1) $ ts
-
--- ------------------------------------------------------------
-
--- |
--- process all subtrees selected by an XPath expression
---
--- the following law holds:
---
--- > processXPathTrees p xpathExpr == processFromNodeSet p $< getXPathNodeSet xpathExpr
-
-
-processXPathTrees		:: ArrowXml a => a XmlTree XmlTree  -> String -> a XmlTree XmlTree
-processXPathTrees f		= processXPathTreesWithNsEnv f []
-
--- | Same as 'processXPathTrees' but with namespace environment for the XPath names
-
-processXPathTreesWithNsEnv	:: ArrowXml a => a XmlTree XmlTree  -> NsEnv -> String -> a XmlTree XmlTree
-processXPathTreesWithNsEnv f nsEnv query
-    = processFromNodeSet f $< getXPathNodeSetWithNsEnv nsEnv query
-
--- |
--- process all subtrees specified by a previously computed node set in bottom up manner
---
--- the follwoing law holds:
---
--- > processFromNodeSet g $< getElemNodeSet f == processBottomUp (g `when` f)
---
--- when attributes are contained in the node set (see 'getElemAndAttrNodeSet'), these are processed
--- after the children and before the node itself
---
--- the advantage of processFromNodeSet is the separation of the selection of set of nodes to be processed (e.g. modified)
--- from the real proccessing. The selection sometimes can be done once, the processing possibly many times.
-
-processFromNodeSet	:: ArrowXml a => a XmlTree XmlTree  -> XmlNodeSet -> a XmlTree XmlTree
-processFromNodeSet f (XNS t al cl)
-    = ( if null cl
-	then this
-	else replaceChildren ( processC (0-1) cl $< listA getChildren )
-      )
-      >>>
-      ( if null al
-	then this
-	else processAttrl (processA al)
-      )
-      >>>
-      ( if not t
-	then this
-	else f
-      )
-    where
-
-    -- processA		:: ChildNodes -> a XmlTree XmlTree
-    processA l
-	= f `when` ( catA . map hasQName $ l)
-
-    -- processC		:: ChildNodes -> XmlTrees -> a XmlTree XmlTree
-    processC _ [] ts
-	= arrL (const ts)
-
-    processC i' ((i, sp) : sps) ts
-	= arrL (const ts1)
-	  <+>
-	  ( arrL (const ti) >>> processFromNodeSet f sp)
-	  <+>
-	  processC i sps ts21
-	  where
-	  (ts1, ts2) = splitAt (i-i'-1) ts
-	  (ti, ts21) = splitAt 1 ts2
-
--- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DOM/EditFilters.hs b/src/Text/XML/HXT/DOM/EditFilters.hs
--- a/src/Text/XML/HXT/DOM/EditFilters.hs
+++ b/src/Text/XML/HXT/DOM/EditFilters.hs
@@ -216,8 +216,12 @@
     = replaceChildren (collapseXText' $ getChildren n) n
     where
     collapseXText' :: XmlSFilter
-    collapseXText' ((NTree (XText t1) _) : (NTree (XText t2) _):zs)
-        = collapseXText' $ (xtext (t1++t2)) ++ zs
+    collapseXText' ((NTree n1 _) : (NTree n2 _) : zs)
+	| isXTextNode n1 && isXTextNode n2
+            = collapseXText' $ (xtext (t1 ++ t2)) ++ zs
+	      where
+	      t1 = textOfXNode n1
+	      t2 = textOfXNode n2
 
     collapseXText' (x:xs)
         = x : (collapseXText' xs)
@@ -411,8 +415,9 @@
       (s1, s2) = break isEsc s
 
 escapeText		:: (Char -> Bool) -> XmlFilter
-escapeText isEsc (NTree (XText str) _)
-    = escapeString isEsc str
+escapeText isEsc (NTree n _)
+    | isXTextNode n
+	= escapeString isEsc (textOfXNode n)
 
 escapeText isEsc (NTree (XCmt c) _)
     = xcmt (xshow . escapeString isEsc $ c)
diff --git a/src/Text/XML/HXT/DOM/NamespaceFilter.hs b/src/Text/XML/HXT/DOM/NamespaceFilter.hs
--- a/src/Text/XML/HXT/DOM/NamespaceFilter.hs
+++ b/src/Text/XML/HXT/DOM/NamespaceFilter.hs
@@ -78,7 +78,7 @@
 				)
 			     )
 			     . span (/= ':')		-- break the name into a pair ("prefix", ":localPart")
-			     . aName			-- select attribute name
+			     . qualifiedName		-- select attribute name
 			   )
 		  $ n
     nsDecl	= zip (map (drop 1			-- drop the ":", empty local part represents default name space
@@ -101,7 +101,7 @@
 			   )
 		       )
 		       . span (/= ':')			-- break the name into a pair ("prefix", ":localPart")
-		       . aName				-- select attribute name
+		       . qualifiedName			-- select attribute name
 		     )
 	    `guards`
 	    modifyQName (setNamespace attrEnv)
diff --git a/src/Text/XML/HXT/DOM/NamespacePredicates.hs b/src/Text/XML/HXT/DOM/NamespacePredicates.hs
--- a/src/Text/XML/HXT/DOM/NamespacePredicates.hs
+++ b/src/Text/XML/HXT/DOM/NamespacePredicates.hs
@@ -34,26 +34,17 @@
     qn = qualifiedName n	-- using qualifiedName instead of localPart enables recomputing of setNamespace
 
     ns :: String -> String -> QName
-    ns lp ""					-- no ":" found in name
-	= QN { namePrefix   = ""		-- use default namespace uri
-	     , localPart    = lp
-	     , namespaceUri = lookup1 "" nst
-	     }
+    ns lp ""					-- no ":" found in name, use default namespace uri
+	= mkQName "" lp (lookup1 "" nst)
 
-    ns px@(_:_) (':' : lp@(_:_))		-- none empty prefix and none empty local part found
-	= QN { namePrefix   = px
-	     , localPart    = lp
-	     , namespaceUri = lookup1 px nst
-	     }
+    ns px@(_:_) (':' : lp@(_:_))		-- non empty prefix and non empty local part found
+	= mkQName px lp (lookup1 px nst)
 
     ns _ _					-- not a legal qualified name, don't change name
 	= n
 
 xmlnsQN	:: QName
-xmlnsQN	= QN { namePrefix	= ""
-	     , localPart	= a_xmlns
-	     , namespaceUri	= xmlnsNamespace
-	     }
+xmlnsQN	= mkQName "" a_xmlns xmlnsNamespace
 
 -- -----------------------------------------------------------------------------
 --
diff --git a/src/Text/XML/HXT/DOM/QualifiedName.hs b/src/Text/XML/HXT/DOM/QualifiedName.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/DOM/QualifiedName.hs
@@ -0,0 +1,212 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.DOM.QualifiedName
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : stable
+   Portability: portable
+
+   The core data types of the HXT DOM.
+
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.DOM.QualifiedName
+    ( module Text.XML.HXT.DOM.QualifiedName
+    )
+
+where
+import Control.Strategies.DeepSeq
+
+import Data.Char		(toLower)
+import Data.Typeable
+
+-- -----------------------------------------------------------------------------
+--
+-- |
+-- Namespace support for element and attribute names.
+--
+-- A qualified name consists of a name prefix, a local name
+-- and a namespace uri.
+-- All modules, which are not namespace aware, use only the 'localPart' component.
+-- When dealing with namespaces, the document tree must be processed by "propagateNamespaces"
+-- to split names of structure \"prefix:localPart\" and label the name with the apropriate namespace uri
+
+data QName = QN { namePrefix	:: String	-- ^ the name prefix part of a qualified name \"namePrefix:localPart\"
+		, localPart	:: String	-- ^ the local part of a qualified name \"namePrefix:localPart\"
+		, namespaceUri	:: String	-- ^ the associated namespace uri
+		}
+	     deriving (Ord, Show, Read, Typeable)
+
+-- | Two QNames are equal if (1. case) namespaces are both empty and the qualified names
+-- (prefix:localpart) are the same or (2. case) namespaces are set and namespaces and
+-- local parts both are equal
+    
+instance Eq QName where
+    q1 == q2
+	| null ns1 && null ns2
+	    = qualifiedName q1 == qualifiedName q2
+	| otherwise
+	    = localPart q1 == localPart q2
+	      &&
+	      ns1 == ns2
+	where
+	ns1 = namespaceUri q1
+	ns2 = namespaceUri q2
+
+instance DeepSeq QName where
+    deepSeq (QN np lp ns) y	= deepSeq np $ deepSeq lp $ deepSeq ns y
+
+-- |
+-- builds the full name \"prefix:localPart\", if prefix is not null, else the local part is the result
+
+qualifiedName		:: QName -> String
+qualifiedName n
+    | null px
+	= lp
+    | otherwise
+	= px ++ (':' : lp)
+    where
+    px = namePrefix n
+    lp = localPart  n
+
+-- |
+-- builds the \"universal\" name, that is the namespace uri surrounded with \"{\" and \"}\" followed by the local part
+-- (specialisation of 'buildUniversalName')
+
+universalName	:: QName -> String
+universalName	= buildUniversalName (\ ns lp -> '{' : ns ++ '}' : lp)
+
+-- |
+-- builds an \"universal\" uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,
+-- where the subject, predicate and object often are concatenated from namespace uri and local part
+-- (specialisation of 'buildUniversalName')
+
+universalUri	:: QName -> String
+universalUri	= buildUniversalName (++)
+
+-- |
+-- builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else
+-- namespace uri and local part are combined with the combining function given by the first parameter
+
+buildUniversalName	:: (String -> String -> String) -> QName -> String
+buildUniversalName bf n
+    | null ns
+	= lp
+    | otherwise
+	= bf ns lp
+    where
+    ns = namespaceUri n
+    lp = localPart    n
+
+-- |
+-- constructs a complete qualified name with 'namePrefix', 'localPart' and 'namespaceUri'.
+
+mkQName	:: String -> String -> String -> QName
+mkQName p l n
+    = QN { namePrefix	= p
+	 , localPart	= l
+	 , namespaceUri	= n
+	 }
+
+-- |
+-- constructs a simple, namespace unaware name, 'namePrefix' and 'namespaceUri' are set to the empty string.
+
+mkName	:: String -> QName
+mkName s
+    = QN { namePrefix	= ""
+	 , localPart	= s
+	 , namespaceUri	= ""
+	 }
+
+-- |
+-- constructs a simple name, with prefix and localPart but without a namespace uri.
+--
+-- see also 'mkName', 'mkNsName', 'mkSNsName'
+
+mkPrefixLocalPart	:: String -> String -> QName
+mkPrefixLocalPart p l
+    = QN { namePrefix	= p
+	 , localPart	= l
+	 , namespaceUri	= ""
+	 }
+
+-- |
+-- constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.
+--
+-- see also 'mkName', 'mkPrefixLocalPart'
+
+mkNsName	:: String -> String -> QName
+mkNsName n ns
+    = QN { namePrefix	= p
+	 , localPart	= l
+	 , namespaceUri	= ns
+	 }
+      where
+      (x1, x2) = span (/= ':') n
+      (p, l)
+	  | null x2	= ("", x1)
+	  | otherwise	= (x1, tail x2)
+
+
+-- |
+-- constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter
+--
+-- see also 'mkNsName', 'mkPrefixLocalPart'
+
+mkSNsName	:: String -> QName
+mkSNsName n	= mkNsName n ""
+
+-- | Empty QName
+
+nullQName	:: QName
+nullQName	= QN "" "" ""
+
+-- | Equality of QNames: Two QNames are equal, if the local parts are equal
+-- and the namespace URIs are equal.
+-- The comparison works with and without namespace propagation.
+-- If namespaces have been propagated, the name is split into prefix and local part
+-- and the namespace uri is set. In this case the prefix is not significant for equality test.
+-- If namespaces have not been propagated, the local part contains the full name, prefix
+-- and namespace URI are empty. The full name (prefix and local part) is used for comparison.
+
+equalQName	:: QName -> QName -> Bool
+equalQName 	= equalQNameBy (==)
+
+-- | Equivalent QNames are defined as follows: The URIs are normalized before comparison.
+-- Comparison is done with 'equalQNameBy' and 'equivUri'
+
+equivQName	:: QName -> QName -> Bool
+equivQName	= equalQNameBy equivUri
+
+-- | Comparison of normalized namespace URIs using 'normalizeNsUri'
+
+equivUri	:: String -> String -> Bool
+equivUri x y	= normalizeNsUri x == normalizeNsUri y
+
+-- | Sometimes a weaker equality relation than 'equalQName' is appropriate, e.g no case significance in names, ...
+-- a name normalization function can be applied to the strings before comparing. Called by 'equalQName' and
+-- 'equivQName'
+
+equalQNameBy	:: (String -> String -> Bool) -> QName -> QName -> Bool
+equalQNameBy equiv q1 q2
+    = localPart q1 == localPart q2
+      &&
+      (namespaceUri q1 `equiv` namespaceUri q2)
+
+-- |  Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing \"\/\" is ignored
+
+normalizeNsUri	:: String -> String
+normalizeNsUri
+    = map toLower . stripSlash
+    where
+    stripSlash ""	= ""
+    stripSlash s
+	| last s == '/'	= init s
+	| otherwise	= s
+
+-- -----------------------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DOM/TypeDefs.hs b/src/Text/XML/HXT/DOM/TypeDefs.hs
--- a/src/Text/XML/HXT/DOM/TypeDefs.hs
+++ b/src/Text/XML/HXT/DOM/TypeDefs.hs
@@ -1,20 +1,36 @@
--- |
--- The core data types of HDOM.
---
--- Version : $Id: TypeDefs.hs,v 1.13 2006/11/09 20:27:42 hxml Exp $
+-- ------------------------------------------------------------
 
+{- |
+   Module     : Text.XML.HXT.DOM.TypeDefs
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : stable
+   Portability: portable
+
+   The core data types of the HXT DOM.
+
+-}
+
+-- ------------------------------------------------------------
+
 module Text.XML.HXT.DOM.TypeDefs
     ( module Data.AssocList
     , module Text.XML.HXT.DOM.TypeDefs
+    , module Text.XML.HXT.DOM.QualifiedName
     )
 
 where
+
 import Control.Strategies.DeepSeq
+
 import Data.AssocList
-import Data.Char		(toLower)
 import Data.Tree.NTree.TypeDefs
 import Data.Typeable
 
+import Text.XML.HXT.DOM.QualifiedName hiding ( QN )
+
 -- -----------------------------------------------------------------------------
 --
 -- Basic types for xml tree and filters
@@ -110,164 +126,6 @@
 -- used for storing option lists and features of DTD parts
 
 type Attributes	= AssocList String String
-
--- -----------------------------------------------------------------------------
---
--- |
--- Namespace support for element and attribute names.
---
--- A qualified name consists of a name prefix, a local name
--- and a namespace uri.
--- All modules, which are not namespace aware, use only the 'localPart' component.
--- When dealing with namespaces, the document tree must be processed by "propagateNamespaces"
--- to split names of structure \"prefix:localPart\" and label the name with the apropriate namespace uri
-
-data QName = QN { namePrefix	:: String	-- ^ the name prefix part of a qualified name \"namePrefix:localPart\"
-		, localPart	:: String	-- ^ the local part of a qualified name \"namePrefix:localPart\"
-		, namespaceUri	:: String	-- ^ the associated namespace uri
-		}
-	     deriving (Eq, Ord, Show, Read, Typeable)
-
-instance DeepSeq QName where
-    deepSeq (QN np lp ns) y	= deepSeq np $ deepSeq lp $ deepSeq ns y
-
--- |
--- builds the full name \"prefix:localPart\", if prefix is not null, else the local part is the result
-
-qualifiedName		:: QName -> String
-qualifiedName n
-    | null px
-	= lp
-    | otherwise
-	= px ++ (':' : lp)
-    where
-    px = namePrefix n
-    lp = localPart  n
-
--- |
--- builds the \"universal\" name, that is the namespace uri surrounded with \"{\" and \"}\" followed by the local part
--- (specialisation of 'buildUniversalName')
-
-universalName	:: QName -> String
-universalName	= buildUniversalName (\ ns lp -> '{' : (ns ++ ('}' : lp)))
-
--- |
--- builds an \"universal\" uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,
--- where the subject, predicate and object often are concatenated from namespace uri and local part
--- (specialisation of 'buildUniversalName')
-
-universalUri	:: QName -> String
-universalUri	= buildUniversalName (++)
-
--- |
--- builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else
--- namespace uri and local part are combined with the combining function given by the first parameter
-
-buildUniversalName	:: (String -> String -> String) -> QName -> String
-buildUniversalName bf n
-    | null ns
-	= lp
-    | otherwise
-	= bf ns lp
-    where
-    ns = namespaceUri n
-    lp = localPart    n
-
--- |
--- constructs a simple, namespace unaware name, 'namePrefix' and 'namespaceUri' are set to the empty string.
-
-mkName	:: String -> QName
-mkName s
-    = QN { namePrefix	= ""
-	 , localPart	= s
-	 , namespaceUri	= ""
-	 }
-
--- |
--- constructs a simple name, with prefix and localPart but without a namespace uri.
---
--- see also 'mkName', 'mkNsName', 'mkSNsName'
-
-mkPrefixLocalPart	:: String -> String -> QName
-mkPrefixLocalPart p l
-    = QN { namePrefix	= p
-	 , localPart	= l
-	 , namespaceUri	= ""
-	 }
-
--- |
--- constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.
---
--- see also 'mkName', 'mkPrefixLocalPart'
-
-mkNsName	:: String -> String -> QName
-mkNsName n ns
-    = QN { namePrefix	= p
-	 , localPart	= l
-	 , namespaceUri	= ns
-	 }
-      where
-      (x1, x2) = span (/= ':') n
-      (p, l)
-	  | null x2	= ("", x1)
-	  | otherwise	= (x1, tail x2)
-
-
--- |
--- constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter
---
--- see also 'mkNsName', 'mkPrefixLocalPart'
-
-mkSNsName	:: String -> QName
-mkSNsName n	= mkNsName n ""
-
--- | Empty QName
-
-nullQName	:: QName
-nullQName	= QN "" "" ""
-
--- | Equality of QNames: Two QNames are equal, if the local parts are equal
--- and the namespace URIs are equal.
--- The comparison works with and without namespace propagation.
--- If namespaces have been propagated, the name is split into prefix and local part
--- and the namespace uri is set. In this case the prefix is not significant for equality test.
--- If namespaces have not been propagated, the local part contains the full name, prefix
--- and namespace URI are empty. The full name (prefix and local part) is used for comparison.
-
-equalQName	:: QName -> QName -> Bool
-equalQName 	= equalQNameBy (==)
-
--- | Equivalent QNames are defined as follows: The URIs are normalized before comparison.
--- Comparison is done with 'equalQNameBy' and 'equivUri'
-
-equivQName	:: QName -> QName -> Bool
-equivQName	= equalQNameBy equivUri
-
--- | Comparison of normalized namespace URIs using 'normalizeNsUri'
-
-equivUri	:: String -> String -> Bool
-equivUri x y	= normalizeNsUri x == normalizeNsUri y
-
--- | Sometimes a weaker equality relation than 'equalQName' is appropriate, e.g no case significance in names, ...
--- a name normalization function can be applied to the strings before comparing. Called by 'equalQName' and
--- 'equivQName'
-
-equalQNameBy	:: (String -> String -> Bool) -> QName -> QName -> Bool
-equalQNameBy equiv q1 q2
-    = localPart q1 == localPart q2
-      &&
-      (namespaceUri q1 `equiv` namespaceUri q2)
-
--- |  Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing \"\/\" is ignored
-
-normalizeNsUri	:: String -> String
-normalizeNsUri
-    = map toLower . stripSlash
-    where
-    stripSlash ""	= ""
-    stripSlash s
-	| last s == '/'	= init s
-	| otherwise	= s
 
 -- -----------------------------------------------------------------------------
 --
diff --git a/src/Text/XML/HXT/DOM/XmlKeywords.hs b/src/Text/XML/HXT/DOM/XmlKeywords.hs
--- a/src/Text/XML/HXT/DOM/XmlKeywords.hs
+++ b/src/Text/XML/HXT/DOM/XmlKeywords.hs
@@ -20,6 +20,10 @@
 module Text.XML.HXT.DOM.XmlKeywords
 where
 
+import Data.List
+    ( isSuffixOf
+    )
+
 -- ------------------------------------------------------------
 --
 -- string constants for representing DTD keywords and attributes
@@ -60,6 +64,7 @@
  a_output_file,
  a_output_xml,
  a_output_html,
+ a_parse_by_mimetype,
  a_parse_html,
  a_parse_xml,
  a_peref,
@@ -72,6 +77,7 @@
  a_source,
  a_status,
  a_standalone,
+ a_tagsoup,
  a_trace,
  a_type,
  a_use_curl,
@@ -102,7 +108,7 @@
 k_any,				-- DTD keywords
  k_cdata,
  k_empty,
- k_enitity,
+ k_entity,
  k_entities,
  k_id,
  k_idref,
@@ -161,6 +167,7 @@
 a_output_encoding		= "output-encoding"
 a_output_html			= "output-html"
 a_output_xml			= "output-xml"
+a_parse_by_mimetype		= "parse-by-mimetype"
 a_parse_html			= "parse-html"
 a_parse_xml			= "parse-xml"
 a_peref				= k_peref
@@ -173,6 +180,7 @@
 a_source			= "source"
 a_standalone			= "standalone"
 a_status			= "status"
+a_tagsoup			= "tagsoup"
 a_trace				= "trace"
 a_type				= "type"
 a_url				= "url"
@@ -205,7 +213,7 @@
 k_any		= "ANY"
 k_cdata		= "CDATA"
 k_empty		= "EMPTY"
-k_enitity	= "ENTITY"
+k_entity	= "ENTITY"
 k_entities	= "ENTITIES"
 k_id		= "ID"
 k_idref		= "IDREF"
@@ -304,10 +312,10 @@
 -- known namespaces
 
 -- |
--- the predefined namespace uri for xml: \"http:\/\/www.w3.org\/XML\/1998\/namespaces\"
+-- the predefined namespace uri for xml: \"http:\/\/www.w3.org\/XML\/1998\/namespace\"
 
 xmlNamespace	:: String
-xmlNamespace	= "http://www.w3.org/XML/1998/namespaces"
+xmlNamespace	= "http://www.w3.org/XML/1998/namespace"
 
 -- |
 -- the predefined namespace uri for xmlns: \"http:\/\/www.w3.org\/2000\/xmlns\/\"
@@ -341,5 +349,45 @@
 a_validate_include            = "validate-include"
 a_output_changes              = "output-pattern-transformations"
 a_do_not_collect_errors       = "do-not-collect-errors"
+
+-- ------------------------------------------------------------
+
+-- mime types
+--
+-- see RFC \"http:\/\/www.rfc-editor.org\/rfc\/rfc3023.txt\"
+
+application_xhtml,
+ application_xml,
+ application_xml_external_parsed_entity,
+ application_xml_dtd,
+ text_html,
+ text_xml,
+ text_xml_external_parsed_entity	:: String
+
+application_xhtml			= "application/xhtml+xml"
+application_xml				= "application/xml"
+application_xml_external_parsed_entity	= "application/xml-external-parsed-entity"
+application_xml_dtd			= "application/xml-dtd"
+
+text_html				= "text/html"
+text_xml				= "text/xml"
+text_xml_external_parsed_entity		= "text/xml-external-parsed-entity"
+
+isHtmlMimeType	:: String -> Bool
+isHtmlMimeType t
+    = t == text_html
+
+isXmlMimeType	:: String -> Bool
+isXmlMimeType t
+    = ( t `elem` [ application_xhtml
+		, application_xml
+		, application_xml_external_parsed_entity
+		, application_xml_dtd
+		, text_xml
+		, text_xml_external_parsed_entity
+		]
+	||
+	"+xml" `isSuffixOf` t		-- application/mathml+xml
+      )					-- or image/svg+xml
 
 -- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/DOM/XmlOptions.hs b/src/Text/XML/HXT/DOM/XmlOptions.hs
--- a/src/Text/XML/HXT/DOM/XmlOptions.hs
+++ b/src/Text/XML/HXT/DOM/XmlOptions.hs
@@ -35,7 +35,7 @@
 -- can be used for option definition with haskell getopt
 --
 -- defines options: 'a_trace', 'a_proxy', 'a_use_curl', 'a_do_not_use_curl', 'a_options_curl', 'a_encoding',
--- 'a_issue_errors', 'a_do_not_issue_errors', 'a_parse_html', 'a_issue_warnings', 'a_do_not_issue_warnings',
+-- 'a_issue_errors', 'a_do_not_issue_errors', 'a_parse_html', 'a_parse_by_mimetype', 'a_tagsoup' 'a_issue_warnings', 'a_do_not_issue_warnings',
 -- 'a_parse_xml', 'a_validate', 'a_do_not_validate', 'a_canonicalize', 'a_do_not_canonicalize',
 --- 'a_preserve_comment', 'a_do_not_preserve_comment', 'a_check_namespaces', 'a_do_not_check_namespaces',
 -- 'a_remove_whitespace', 'a_do_not_remove_whitespace'
@@ -52,6 +52,8 @@
       , Option ""	[a_issue_errors]		(NoArg	(att a_issue_errors      v_1))	"issue all errorr messages on stderr (default)"
       , Option ""	[a_do_not_issue_errors]		(NoArg	(att a_issue_errors      v_0))	"ignore all error messages"
       , Option "H"	[a_parse_html]			(NoArg	(att a_parse_html        v_1))	"parse input as HTML, try to interprete everything as HTML, no validation"
+      , Option "M"	[a_parse_by_mimetype]		(NoArg  (att a_parse_by_mimetype v_1))	"parse dependent on mime type: text/html as HTML, text/xml and text/xhtml as XML, else no parse"
+      , Option "T"	[a_tagsoup]			(NoArg	(att a_tagsoup           v_1))	"lasy tagsoup parser, for HTML and XML, no DTD, no validation, no PIs, only XHTML entityrefs"
       , Option ""	[a_issue_warnings]		(NoArg	(att a_issue_warnings    v_1))	"issue warnings, when parsing HTML (default)"
       , Option "Q"	[a_do_not_issue_warnings]	(NoArg	(att a_issue_warnings    v_0))	"ignore warnings, when parsing HTML"
       , Option ""	[a_parse_xml]			(NoArg	(att a_parse_html        v_0))	"parse input as XML (default)"
diff --git a/src/Text/XML/HXT/DOM/XmlTreeFilter.hs b/src/Text/XML/HXT/DOM/XmlTreeFilter.hs
--- a/src/Text/XML/HXT/DOM/XmlTreeFilter.hs
+++ b/src/Text/XML/HXT/DOM/XmlTreeFilter.hs
@@ -230,8 +230,9 @@
 isWhiteSpace
     = isOfNode isWS
       where
-      isWS (XText s1) = all isXmlSpaceChar s1
-      isWS _          = False
+      isWS n
+	  = isXTextNode n
+	    && all isXmlSpaceChar (textOfXNode n)
 
 -- ------------------------------------------------------------
 --
@@ -605,7 +606,8 @@
 -- @processBottomUp (modifyText f \`when\` isXText)@
 
 modifyText				:: (String -> String) -> XmlFilter
-modifyText f t@(NTree (XText str) _)	= replaceNode (XText (f str)) t
+modifyText f t@(NTree n _)
+    | isXTextNode n			= replaceNode (XText (f (textOfXNode n))) t
 modifyText _ _				= []
 
 -- |
@@ -667,7 +669,7 @@
       al = getAttrl t
       replace [] = [a]
       replace (a1 : as)
-	  | satisfies (isAttr (aName an)) a1
+	  | satisfies (isAttr (qualifiedName an)) a1
 	      = a : as
 	  | otherwise
 	      = a1 : replace as
diff --git a/src/Text/XML/HXT/DOM/XmlTreeFunctions.hs b/src/Text/XML/HXT/DOM/XmlTreeFunctions.hs
--- a/src/Text/XML/HXT/DOM/XmlTreeFunctions.hs
+++ b/src/Text/XML/HXT/DOM/XmlTreeFunctions.hs
@@ -64,14 +64,14 @@
 isRootNode			= isTagNode t_root
 
 isTagNode			:: String -> XNode -> Bool
-isTagNode n			= isOfTagNode ((== n) . tName)
+isTagNode n			= isOfTagNode ((== n) . qualifiedName)
 
 isOfTagNode			:: (TagName -> Bool) -> XNode -> Bool
 isOfTagNode p (XTag n _)	= p n
 isOfTagNode _ _			= False
 
 isAttrNode			:: String -> XNode -> Bool
-isAttrNode n			= isOfAttrNode ((== n) . aName)
+isAttrNode n			= isOfAttrNode ((== n) . qualifiedName)
 
 isOfAttrNode			:: (AttrName -> Bool) -> XNode -> Bool
 isOfAttrNode p (XAttr n)	= p n
@@ -85,7 +85,7 @@
 isOfTextNode _ _		= False
 
 isPiNode			:: String -> XNode -> Bool
-isPiNode n			= isOfPiNode ((== n) . tName)
+isPiNode n			= isOfPiNode ((== n) . qualifiedName)
 
 isOfPiNode			:: (TagName -> Bool) -> XNode -> Bool
 isOfPiNode p (XPi n _)		= p n
@@ -100,6 +100,12 @@
 isErrorNode _ _  = False
 
 -- -----------------------------------------------------------------------------
+
+textOfXNode			:: XNode -> String
+textOfXNode (XText t)		= t
+textOfXNode _			= ""
+
+-- -----------------------------------------------------------------------------
 --
 -- XmlTree constructors
 
@@ -435,7 +441,7 @@
       where
       showPiAttr	:: XmlTree -> String -> String
       showPiAttr a@(NTree (XAttr an) cs)
-	  | aName an == a_value
+	  | qualifiedName an == a_value
 	      = showBlank . showXmlTrees cs
 	  | otherwise
 	      = showXmlTree a
@@ -776,9 +782,9 @@
 nameOf
     = selName . getNode
       where
-      selName (XTag  n _)	= tName n
-      selName (XAttr n  )	= aName n
-      selName (XPi   n _)	= tName n
+      selName (XTag  n _)	= qualifiedName n
+      selName (XAttr n  )	= qualifiedName n
+      selName (XPi   n _)	= qualifiedName n
       selName _			= ""
 
 -- |
@@ -791,7 +797,7 @@
       where
       selName (XTag  n _)	= localPart n
       selName (XAttr n  )	= localPart n
-      selName (XPi   n _)	= tName n
+      selName (XPi   n _)	= qualifiedName n
       selName _			= ""
 
 -- |
@@ -880,7 +886,7 @@
 toTreel
     = concatMap toTree
       where
-      toTree (NTree (XAttr n) cs) = [(aName n, cs)]
+      toTree (NTree (XAttr n) cs) = [(qualifiedName n, cs)]
       toTree _			  = []
 
 toAttrl		:: XmlTrees -> Attributes
diff --git a/src/Text/XML/HXT/Parser/DTDProcessing.hs b/src/Text/XML/HXT/Parser/DTDProcessing.hs
--- a/src/Text/XML/HXT/Parser/DTDProcessing.hs
+++ b/src/Text/XML/HXT/Parser/DTDProcessing.hs
@@ -180,7 +180,7 @@
 	  = do
 	    sequence_ . map (\ (a, ts) -> setSysParamTree a ts) . toTreel . getAttrl $ t
 	    setSysParam a_standalone ""
-	    ( traceMsg 1 ("processDTD: process parameter enitities")
+	    ( traceMsg 1 ("processDTD: process parameter entities")
 	      .>>
 	      liftMf (modifyChildren addDoctype)
 	      .>>
@@ -548,7 +548,7 @@
 
 
 evalCond :: XmlTree -> DTDStateFilter
-evalCond content (NTree (XText c) _)
+evalCond content (NTree n _)
     | c == k_include
 	= liftF (parseXmlDTDPart "conditional section")
 	  .>>
@@ -558,8 +558,8 @@
           $ content 
     | otherwise
 	= return []
-evalCond _ n'
-    = error ("evalCond: illegal argument: " ++ show n')
+    where
+    c = textOfXNode n
 
 -- ------------------------------------------------------------
 
@@ -698,7 +698,7 @@
 
 processGeneralEntities	:: XmlStateFilter a
 processGeneralEntities
-    = ( traceMsg 1 "processGeneralEntities: collect and substitute general enities"
+    = ( traceMsg 1 "processGeneralEntities: collect and substitute general entities"
 	.>>
 	processEntities
 	.>>
diff --git a/src/Text/XML/HXT/Parser/HtmlParsec.hs b/src/Text/XML/HXT/Parser/HtmlParsec.hs
--- a/src/Text/XML/HXT/Parser/HtmlParsec.hs
+++ b/src/Text/XML/HXT/Parser/HtmlParsec.hs
@@ -1,16 +1,26 @@
--- |
--- HTML Parsec Parser
---
--- Version : $Id: HtmlParsec.hs,v 1.11 2006/12/08 11:48:20 hxml Exp $
---
--- This parser tries to interprete everything as HTML
--- no errors are emitted during parsing. If something looks
--- weired, warning messages are inserted in the document tree
---
--- all filter are pure XmlFilter,
--- errror handling and IO is done in 'Text.XML.HXT.Parser.HtmlParser'
--- or other modules
+-- ------------------------------------------------------------
 
+{- |
+   Module     : Text.XML.HXT.Parser.HtmlParsec
+   Copyright  : Copyright (C) 2005 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : stable
+   Portability: portable
+
+   This parser tries to interprete everything as HTML
+   no errors are emitted during parsing. If something looks
+   weired, warning messages are inserted in the document tree.
+  
+   All filter are pure XmlFilter,
+   errror handling and IO is done in 'Text.XML.HXT.Parser.HtmlParser'
+   or other modules
+
+-}
+
+-- ------------------------------------------------------------
+
 module Text.XML.HXT.Parser.HtmlParsec
     ( substHtmlEntities
     , parseHtmlText
@@ -18,6 +28,7 @@
     , parseHtmlContent
     , isEmptyHtmlTag
     , isInnerHtmlTagOf
+    , closesHtmlTag
     , emptyHtmlTags
     )
 
@@ -472,7 +483,11 @@
 	]
       )
 
-closes :: String -> String -> Bool
+closesHtmlTag
+  , closes :: String -> String -> Bool
+
+closesHtmlTag	= closes
+
 "a"	`closes` "a"					= True
 "li"	`closes` "li"					= True
 "th"	`closes`  t    | t `elem` ["th","td"]		= True
diff --git a/src/Text/XML/HXT/Parser/HtmlParser.hs b/src/Text/XML/HXT/Parser/HtmlParser.hs
--- a/src/Text/XML/HXT/Parser/HtmlParser.hs
+++ b/src/Text/XML/HXT/Parser/HtmlParser.hs
@@ -1,14 +1,24 @@
--- |
--- HTML Parser
---
--- Version : $Id: HtmlParser.hs,v 1.4 2006/11/12 14:53:00 hxml Exp $
---
--- This parser tries to interprete everything as HTML
--- no errors are emitted during parsing. If something looks
--- weired, warning messages are inserted in the document tree
---
--- module contains state filter for easy parsing and error handling
--- real work is done in 'Text.XML.HXT.Parser.HtmlParsec'
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.Parser.HtmlParser
+   Copyright  : Copyright (C) 2005 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : stable
+   Portability: portable
+
+   This parser tries to interprete everything as HTML
+   no errors are emitted during parsing. If something looks
+   weired, warning messages are inserted in the document tree.
+  
+   Module contains state filter for easy parsing and error handling
+   real work is done in 'Text.XML.HXT.Parser.HtmlParsec'
+
+-}
+
+-- ------------------------------------------------------------
 
 module Text.XML.HXT.Parser.HtmlParser
     ( getHtmlDoc
diff --git a/src/Text/XML/HXT/Parser/MainFunctions.hs b/src/Text/XML/HXT/Parser/MainFunctions.hs
--- a/src/Text/XML/HXT/Parser/MainFunctions.hs
+++ b/src/Text/XML/HXT/Parser/MainFunctions.hs
@@ -232,7 +232,7 @@
 	[ hasOption a_parse_html
 		:-> parseHtmlDoc			-- parse everything as HTML
 	, this
-		:-> checkWellformedDoc			-- parse XML and process enitities
+		:-> checkWellformedDoc			-- parse XML and process entities
 	            .>>
                     ( getValidatedDoc			-- validate
 		      `whenM`
diff --git a/src/Text/XML/HXT/Parser/ProtocolHandlerUtil.hs b/src/Text/XML/HXT/Parser/ProtocolHandlerUtil.hs
--- a/src/Text/XML/HXT/Parser/ProtocolHandlerUtil.hs
+++ b/src/Text/XML/HXT/Parser/ProtocolHandlerUtil.hs
@@ -45,7 +45,7 @@
 	    )
       P.<|>
       ( do
-	mimeType <- P.many P.anyChar
+	mimeType <- P.many (P.noneOf ";")
 	return [ (transferMimeType, mimeType) ]
       )
 
diff --git a/src/Text/XML/HXT/Parser/TagSoup.hs b/src/Text/XML/HXT/Parser/TagSoup.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/Parser/TagSoup.hs
@@ -0,0 +1,462 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Text.XML.HXT.Parser.TagSoup
+   Copyright  : Copyright (C) 2005 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : experimental
+   Portability: portable
+
+   lasy HTML and simpe XML parser implemented with tagsoup
+   parsing is done with a very simple monadic top down parser
+
+-}
+
+-- ------------------------------------------------------------
+
+module Text.XML.HXT.Parser.TagSoup
+    ( parseHtmlTagSoup
+    )
+where
+
+-- ------------------------------------------------------------
+
+-- The table contains the id map. All element and attribute names are stored
+-- the first time they are ecountered, and later always this name is used,
+-- not a string built by the parser.
+
+import Text.HTML.TagSoup
+import Text.HTML.TagSoup.Entity
+    ( lookupNumericEntity
+    )
+
+import Text.XML.HXT.DOM.Unicode
+    ( isXmlSpaceChar
+    )
+
+import Text.XML.HXT.DOM.NamespacePredicates
+    ( isWellformedQualifiedName
+    )
+
+import Text.XML.HXT.Parser.XmlEntities
+    ( -- xmlEntities
+    )
+
+import Text.XML.HXT.Parser.XhtmlEntities
+    ( xhtmlEntities
+    )
+
+import Text.XML.HXT.Parser.HtmlParsec
+    ( isEmptyHtmlTag
+    , isInnerHtmlTagOf
+    , closesHtmlTag
+    )
+
+import Text.XML.HXT.Arrow.DOMInterface
+    ( XmlTrees
+    , QName
+    , NsEnv
+    , mkQName
+    , mkName
+    , mkPrefixLocalPart
+    , c_warn
+    , a_xml
+    , a_xmlns
+    , xmlNamespace
+    , xmlnsNamespace
+    )
+
+import Text.XML.HXT.Arrow.XmlNode
+    ( isElem
+    , mkError
+    , mkCmt
+    , mkText
+    , mkElement
+    , mkAttr
+    )
+
+import Data.Maybe
+
+import qualified Data.Map as M
+
+-- ---------------------------------------- 
+
+type Tags	= [Tag]
+
+type NameTable	= M.Map QName QName
+
+type Context	= ([String], NsEnv)
+
+data State	= S !Tags !NameTable		-- the name table must be evaluated striktly, else a stack overflow occurs
+
+newtype Parser a = P { parse :: State -> (a, State)}
+
+instance Monad Parser where
+    return x	= P $ \ ts -> (x, ts)
+    p >>= f	= P $ \ ts -> let
+			      (res, ts') = parse p ts
+                              in
+			      parse (f res) ts'
+
+runParser	:: Parser a -> Tags -> a
+runParser p ts	= fst . parse p $ S ts M.empty
+
+-- ----------------------------------------
+
+cond		:: Parser Bool -> Parser a -> Parser a -> Parser a
+cond c t e	= do
+		  p <- c
+		  if p then t else e
+
+lookAhead	:: (Tag -> Bool) -> Parser Bool
+lookAhead p	= P $ \ s@(S ts _) -> (not (null ts) && p (head ts), s)
+
+-- ----------------------------------------
+-- primitive look ahead tests
+
+isEof		:: Parser Bool
+isEof		= P $ \ s@(S ts _) -> (null ts, s)
+
+isText		:: Parser Bool
+isText		= lookAhead is
+		  where
+		  is (TagText _) = True
+		  is _		 = False
+
+isCmt		:: Parser Bool
+isCmt		= lookAhead is
+		  where
+		  is (TagComment _) = True
+		  is _		    = False
+
+isWarn		:: Parser Bool
+isWarn		= lookAhead is
+		  where
+		  is (TagWarning _) = True
+		  is _		    = False
+
+isPos		:: Parser Bool
+isPos		= lookAhead is
+		  where
+		  is (TagPosition _ _) = True
+		  is _		 = False
+
+isCls		:: Parser Bool
+isCls		= lookAhead is
+		  where
+		  is (TagClose _) = True
+		  is _		  = False
+
+isOpn		:: Parser Bool
+isOpn		= lookAhead is
+		  where
+		  is (TagOpen _ _) = True
+		  is _		   = False
+
+-- ----------------------------------------
+-- primitive symbol parsers
+
+getTag		:: Parser Tag
+getTag		= P $ \ (S (t1:ts1) nt) -> (t1, S ts1 nt)
+
+getSym		:: (Tag -> a) -> Parser a
+getSym f	= do
+		  t <- getTag
+		  return (f t)
+
+getText		:: Parser String
+getText		= getSym sym
+    		  where
+		  sym (TagText t)	= t
+		  sym _			= undefined
+
+getCmt		:: Parser String
+getCmt		= getSym sym
+		  where
+		  sym (TagComment c)	= c
+	  	  sym _			= undefined
+
+getWarn		:: Parser String
+getWarn		= getSym sym
+	  	  where
+		  sym (TagWarning w)	= w
+		  sym _			= undefined
+
+getPos		:: Parser (Int, Int)
+getPos		= getSym sym
+		  where
+		  sym (TagPosition l c)	= (l, c)
+		  sym _			= undefined
+
+getCls		:: Parser String
+getCls		= getSym sym
+		  where
+		  sym (TagClose n)	= n
+		  sym _			= undefined
+
+getOpn		:: Parser (String, [(String,String)])
+getOpn		= getSym sym
+		  where
+		  sym (TagOpen n al)	= (n, al)
+		  sym _			= undefined
+
+-- ----------------------------------------
+-- pushback parsers for inserting missing tags
+
+pushBack	:: Tag -> Parser ()
+pushBack t	= P $ \ (S ts nt) -> ((), S (t:ts) nt)
+
+insCls		:: String -> Parser ()
+insCls n	= pushBack (TagClose n)
+
+insOpn		:: String -> [(String, String)] -> Parser ()
+insOpn n al	= pushBack (TagOpen n al)
+
+-- ----------------------------------------
+
+insertQName	:: QName -> Parser QName
+insertQName n	= P $ \ (S ts nt) -> let
+				     (n', nt') = insert n nt
+				     in
+				     (n', S ts nt')
+		  where
+		  insert s nt
+		      | isJust r	= (fromJust r, nt)
+		      | otherwise	= (s, M.insert s s nt)
+		      where
+		      r = M.lookup s nt
+
+mkQN		:: Bool -> Bool -> NsEnv -> String -> Parser QName
+mkQN withNamespaces isAttr env s
+    | withNamespaces
+	= insertQName qn1
+    | otherwise
+	= insertQName qn0
+    where
+    qn1
+	| isAttr && isSimpleName	= mkName s
+	| isSimpleName			= mkQName "" s (nsUri "")
+	| isWellformedQualifiedName s	= mkQName px lp (nsUri px)
+	| otherwise			= mkName s
+    qn0
+	| isSimpleName			= mkName s
+	| isWellformedQualifiedName s	= mkPrefixLocalPart px lp
+	| otherwise			= mkName s
+
+    nsUri x		= fromMaybe "" . lookup x $ env
+    isSimpleName	= all (/= ':') s
+    (px, (_ : lp))	= span(/= ':') s
+
+extendNsEnv	:: Bool -> [(String, String)] -> NsEnv -> NsEnv
+extendNsEnv withNamespaces al1 env
+    | withNamespaces
+	= concatMap (uncurry addNs) al1 ++ env
+    | otherwise
+	= env
+    where
+    addNs n v
+	| px == a_xmlns
+	  &&
+	  (null lp || (not . null . tail $ lp))
+	    = [(drop 1 lp, v)]
+	| otherwise
+	    = []
+	where
+	(px, lp) = span (/= ':') n
+
+-- ----------------------------------------
+
+-- own entity lookup to prevent problems with &amp; and tagsoup hack for IE
+
+lookupEntity	:: Bool -> Bool -> String -> [Tag]
+lookupEntity withWarnings _asHtml e0@('#':e)
+    = case lookupNumericEntity e of
+      Just c  -> [ TagText [c] ]
+      Nothing -> ( TagText $ "&" ++ e0 ++ ";") :
+		 if withWarnings
+		 then [TagWarning $ "illegal char reference: &" ++ e ++ ";"]
+		 else []
+
+lookupEntity withWarnings asHtml e
+    = case (lookup e entities) of
+      Just x  -> [ TagText [toEnum x]]
+      Nothing -> (TagText $ "&" ++ e ++ ";") :
+		 if withWarnings
+		 then [TagWarning $ "Unknown entity reference: &" ++ e ++ ";"]
+		 else []
+    where
+    entities
+	| asHtml    = xhtmlEntities
+	| otherwise = xhtmlEntities -- xmlEntities (TODO: xhtml is xml and html)
+
+-- ----------------------------------------
+-- the main parser
+
+parseHtmlTagSoup	:: Bool -> Bool -> Bool -> Bool -> Bool -> String -> String -> XmlTrees
+parseHtmlTagSoup withNamespaces withWarnings withComment removeWhiteSpace asHtml doc
+    = ( docRootElem
+	. runParser (buildCont initContext)
+	. ( if asHtml
+	    then canonicalizeTags
+	    else id
+	  )
+	. parseTagsOptions (options { optTagWarning   = withWarnings
+				    , optLookupEntity = lookupEntity withWarnings asHtml
+				    }
+			   )
+      )
+    where
+    -- This is essential for lasy parsing:
+    -- the call of "take 1" stops parsing, when the first element is detected
+    -- no check on end of input sequence is required to build this (0- or 1-element list)
+    -- so eof is never checked unneccessarily
+
+    docRootElem
+	= take 1 . filter isElem
+
+    initContext		= ( []
+			  , [ (a_xml,   xmlNamespace)
+			    , (a_xmlns, xmlnsNamespace)
+			    ]
+			  )
+
+    wrap		= (:[])
+
+    warn
+	| withWarnings	= wrap . mkError c_warn . show . (doc ++) . (" " ++)
+	| otherwise	= const []
+    cmt
+	| withComment	= wrap . mkCmt
+	| otherwise	= const []
+    txt
+	| removeWhiteSpace
+			= \ t ->
+			  if all isXmlSpaceChar t
+			  then []
+			  else wrap . mkText $ t
+	| otherwise	= wrap . mkText
+
+    isEmptyElem
+	| asHtml	= isEmptyHtmlTag
+	| otherwise	= const False
+
+    isInnerElem
+	| asHtml	= isInnerHtmlTagOf
+	| otherwise	= const (const False)
+
+    closesElem
+	| asHtml	= \ ns n1 ->
+			  not (null ns)
+			  &&
+			  n1 `closesHtmlTag` (head ns)
+	| otherwise	= const (const False)
+
+    buildCont	:: Context -> Parser XmlTrees
+    buildCont ns
+	= cond isText ( do
+			t <- getText
+			rl <- buildCont ns
+			return (txt t ++ rl)
+		      )
+	  ( cond isOpn ( do
+			 (n,al) <- getOpn
+			 openTag ns n al
+		       )
+	    ( cond isCls ( do
+			   n <- getCls
+			   closeTag ns n
+			 )
+	      ( cond isCmt ( do
+			     c <- getCmt
+			     rl <- buildCont ns
+			     return (cmt c ++ rl)
+			   )
+		( cond isWarn ( do
+				w <- getWarn
+				rl <- buildCont ns
+				return (warn w ++ rl)
+			      )
+		  ( cond isPos ( do
+				 getPos
+				 buildCont ns
+			       )
+		    ( cond isEof ( do
+				   isEof
+				   closeAll ns
+				 )
+		      ( return (warn "parse error in tagsoup tree construction")
+		      )
+		    )
+		  )
+		)
+	      )
+	    )
+	  )
+	where
+	closeTag		:: Context -> String -> Parser XmlTrees
+	closeTag ((n':_), _) n1
+	    | n' == n1		= return []			-- a normal closing tag
+								-- all other cases try to repair wrong html
+	closeTag ns'@((n':_), _) n1				-- n1 closes n implicitly
+	    | n' `isInnerElem` n1				-- e.g. <td>...</tr>
+				= do
+				  insCls n1			-- pushback </n1>
+				  insCls n'			-- insert a </n'>
+				  buildCont ns'			-- try again
+	closeTag ns' n1
+	    | isEmptyElem n1	= buildCont ns'			-- ignore a redundant closing tag for empty element
+	closeTag ns'@((n':ns1'), _) n1				-- insert a missing closing tag
+	    | n1 `elem` ns1'	= do
+				  insCls n1
+				  insCls n'
+				  rl <- buildCont ns'
+				  return ( warn ("closing tag " ++ show n' ++
+						 " expected, but " ++ show n1 ++ " found")
+					   ++ rl
+					 )
+	closeTag ns' n1						-- ignore a wrong closing tag
+				= do
+				  rl <- buildCont ns'
+				  return ( warn ("no opening tag for closing tag " ++ show n1)
+					   ++ rl
+					 )
+
+	openTag			:: Context -> String -> [(String, String)] -> Parser XmlTrees
+	openTag cx'@(ns',env') n1 al1
+	    | isPiDT n1		= buildCont cx'
+	    | isEmptyElem n1
+				= do
+				  qn <- mkElemQN nenv n1
+				  al <- mkAttrs al1
+				  rl <- buildCont cx'
+				  return (mkElement qn al [] : rl)
+	    | closesElem ns' n1	= do
+				  insOpn n1 al1
+				  insCls (head ns')
+				  buildCont cx'
+	    | otherwise		= do
+				  qn <- mkElemQN nenv n1
+				  al <- mkAttrs al1
+				  cs <- buildCont ((n1 : ns'), nenv)
+				  rl <- buildCont cx'
+				  return (mkElement qn al cs : rl)
+	    where
+	    nenv		= extendNsEnv withNamespaces al1 env'
+	    mkElemQN		= mkQN withNamespaces False
+	    mkAttrQN		= mkQN withNamespaces True
+	    isPiDT ('?':_)	= True
+	    isPiDT ('!':_)	= True
+	    isPiDT _		= False
+	    mkAttrs		= mapM (uncurry mkA)
+	    mkA an av		= do
+				  qan <- mkAttrQN nenv an
+				  return (mkAttr qan (wrap . mkText $ av))
+
+	closeAll		:: ([String], NsEnv) -> Parser XmlTrees
+	closeAll (ns',_)	= return (concatMap wrn ns')
+				  where
+				  wrn = warn . ("insert missing closing tag " ++) . show
+
+-- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Parser/XmlDTDParser.hs b/src/Text/XML/HXT/Parser/XmlDTDParser.hs
--- a/src/Text/XML/HXT/Parser/XmlDTDParser.hs
+++ b/src/Text/XML/HXT/Parser/XmlDTDParser.hs
@@ -341,7 +341,7 @@
 		  , k_idrefs
 		  , k_idref
 		  , k_id
-		  , k_enitity
+		  , k_entity
 		  , k_entities
 		  , k_nmtokens
 		  , k_nmtoken
@@ -641,8 +641,9 @@
 
 collectText	:: XmlTree -> String
 
-collectText (NTree (XText s) _)
-    = s
+collectText (NTree n _)
+    | isXTextNode n
+	= textOfXNode n
 
 collectText (NTree (XDTD PEREF al) cl)
     = prefixPe ++ concatMap collectText cl ++ suffixPe
diff --git a/src/Text/XML/HXT/Parser/XmlParsec.hs b/src/Text/XML/HXT/Parser/XmlParsec.hs
--- a/src/Text/XML/HXT/Parser/XmlParsec.hs
+++ b/src/Text/XML/HXT/Parser/XmlParsec.hs
@@ -548,8 +548,12 @@
 --
 
 removeEncodingSpec	:: XmlTree -> XmlTrees
-removeEncodingSpec (NTree (XText s) _cs)
-    = either (xerr . (++ "\n") . show) xtext . parse parser "remove encoding spec" $ s
+removeEncodingSpec (NTree n _cs)
+    | isXTextNode n
+	= ( either (xerr . (++ "\n") . show) xtext
+	    . parse parser "remove encoding spec"
+	    . textOfXNode
+	  ) n
     where
     parser :: Parser String
     parser = do
diff --git a/src/Text/XML/HXT/RelaxNG/BasicArrows.hs b/src/Text/XML/HXT/RelaxNG/BasicArrows.hs
--- a/src/Text/XML/HXT/RelaxNG/BasicArrows.hs
+++ b/src/Text/XML/HXT/RelaxNG/BasicArrows.hs
@@ -196,7 +196,7 @@
 -- ------------------------------------------------------------
 
 mkRngElement		:: ArrowXml a => String -> a n XmlTree -> a n XmlTree -> a n XmlTree
-mkRngElement n		= mkElement (QN "" n relaxNamespace)
+mkRngElement n		= mkElement (mkQName "" n relaxNamespace)
 
 mkRngChoice		:: ArrowXml a => a n XmlTree -> a n XmlTree -> a n XmlTree
 mkRngChoice		= mkRngElement "choice"
@@ -240,7 +240,7 @@
 -- ------------------------------------------------------------
 
 setRngName		:: ArrowXml a => String -> a XmlTree XmlTree
-setRngName n		= setElemName (QN "" n relaxNamespace)
+setRngName n		= setElemName (mkQName "" n relaxNamespace)
 
 setRngNameDiv		:: ArrowXml a => a XmlTree XmlTree
 setRngNameDiv		= setRngName "div"
diff --git a/src/Text/XML/HXT/RelaxNG/DataTypeLibMysql.hs b/src/Text/XML/HXT/RelaxNG/DataTypeLibMysql.hs
--- a/src/Text/XML/HXT/RelaxNG/DataTypeLibMysql.hs
+++ b/src/Text/XML/HXT/RelaxNG/DataTypeLibMysql.hs
@@ -115,13 +115,14 @@
                 
 datatypeAllowsMysql :: DatatypeAllows
 datatypeAllowsMysql d params value _
-    | isJust ndt
-	= (uncurry (numberValid d) . fromJust $ ndt) params value
-    | isJust sdt
-	= (uncurry (stringValid d) . fromJust $ sdt) params value
-    | otherwise
-	= Just $ errorMsgDataTypeNotAllowed d params value mysqlNS
+    = performCheck check value
     where
+    check
+	| isJust ndt	= checkNum (fromJust ndt)
+	| isJust sdt	= checkStr (fromJust sdt)
+	| otherwise	= failure $ errorMsgDataTypeNotAllowed mysqlNS d params
+    checkNum r	= uncurry (numberValid d) r params
+    checkStr r	= uncurry (stringValid d) r params
     ndt = lookup d $
 	  [ ("SIGNED-TINYINT", ((-128), 127))
 	  , ("UNSIGNED-TINYINT", (0, 255))
@@ -149,91 +150,20 @@
 	  , ("LONGBLOB", (0, 4294967296))
 	  ]
 
-{-
-datatypeAllowsMysql :: DatatypeAllows
-
-datatypeAllowsMysql d@"SIGNED-TINYINT" params value _ 
-    = checkNumeric d value (-128) 127 params
-
-datatypeAllowsMysql d@"UNSIGNED-TINYINT" params value _ 
-    = checkNumeric d value 0 255 params
-
-datatypeAllowsMysql d@"SIGNED-SMALLINT" params value _ 
-    = checkNumeric d value (-32768) 32767 params
-
-datatypeAllowsMysql d@"UNSIGNED-SMALLINT" params value _ 
-    = checkNumeric d value 0 65535 params
-
-datatypeAllowsMysql d@"SIGNED-MEDIUMINT" params value _ 
-    = checkNumeric d value (-8388608) 8388607 params
-
-datatypeAllowsMysql d@"UNSIGNED-MEDIUMINT" params value _ 
-    = checkNumeric d value 0 16777215 params
-
-datatypeAllowsMysql d@"SIGNED-INT" params value _ 
-    = checkNumeric d value (-2147483648) 2147483647 params
-
-datatypeAllowsMysql d@"UNSIGNED-INT" params value _ 
-    = checkNumeric d value 0 4294967295 params
-
-datatypeAllowsMysql d@"SIGNED-BIGINT" params value _ 
-    = checkNumeric d value (-9223372036854775808) 9223372036854775807 params
-
-datatypeAllowsMysql d@"UNSIGNED-BIGINT" params value _ 
-    = checkNumeric d value 0 18446744073709551615 params
-
-
-datatypeAllowsMysql d@"CHAR" params value _ 
-    = checkString d value 0 255 params
-
-datatypeAllowsMysql d@"VARCHAR" params value _ 
-    = checkString d value 0 65535 params
-
-datatypeAllowsMysql d@"BINARY" params value _ 
-    = checkString d value 0 255 params
-    
-datatypeAllowsMysql d@"VARBINARY" params value _ 
-    = checkString d value 0 65535 params
-
-datatypeAllowsMysql d@"TINYTEXT" params value _ 
-    = checkString d value 0 256 params -- 2^8
-
-datatypeAllowsMysql d@"TINYBLOB" params value _ 
-    = checkString d value 0 256 params -- 2^8
-    
-datatypeAllowsMysql d@"TEXT" params value _ 
-    = checkString d value 0 65536 params -- 2^16
-
-datatypeAllowsMysql d@"BLOB" params value _ 
-    = checkString d value 0 65536 params -- 2^16
-
-datatypeAllowsMysql d@"MEDIUMTEXT" params value _ 
-    = checkString d value 0 16777216 params -- 2^24
-
-datatypeAllowsMysql d@"MEDIUMBLOB" params value _ 
-    = checkString d value 0 16777216 params -- 2^24
-
-datatypeAllowsMysql d@"LONGTEXT" params value _ 
-    = checkString d value 0 4294967296 params -- 2^32
-
-datatypeAllowsMysql d@"LONGBLOB" params value _ 
-    = checkString d value 0 4294967296 params -- 2^32
-
-
-datatypeAllowsMysql t p v _
-    = Just $ errorMsgDataTypeNotAllowed t p v mysqlNS
--}
+-- ------------------------------------------------------------
 
 -- | Tests whether a XML instance value matches a value-pattern.
-datatypeEqualMysql :: DatatypeEqual
-datatypeEqualMysql d s1 _ s2 _ 
-    | elem d stringTypes  = if (s1 == s2)
-			    then Nothing
-			    else Just $ errorMsgEqual d s1 s2
 
-    | elem d numericTypes = if (normalizeNumber s1 == normalizeNumber s2)
-                            then Nothing
-			    else Just $ errorMsgEqual d s1 s2
-
-    | otherwise           = Just $ errorMsgDataTypeNotAllowed2 d s1 s2 mysqlNS
+datatypeEqualMysql :: DatatypeEqual
+datatypeEqualMysql d s1 _ s2 _
+    = performCheck check (s1, s2)
+      where
+      cmp nf	= arr (\ (x1, x2) -> (nf x1, nf x2))
+		  >>>
+		  assert (uncurry (==)) (uncurry $ errorMsgEqual d)
+      check
+	  | d `elem` stringTypes	= cmp id
+	  | d `elem` numericTypes	= cmp normalizeNumber
+	  | otherwise			= failure $ const (errorMsgDataTypeNotAllowed0 mysqlNS d)
 
+-- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/RelaxNG/DataTypeLibUtils.hs b/src/Text/XML/HXT/RelaxNG/DataTypeLibUtils.hs
--- a/src/Text/XML/HXT/RelaxNG/DataTypeLibUtils.hs
+++ b/src/Text/XML/HXT/RelaxNG/DataTypeLibUtils.hs
@@ -7,6 +7,8 @@
   , errorMsgDataTypeNotAllowed0
   , errorMsgDataTypeNotAllowed2
   , errorMsgDataLibQName
+  , errorMsgParam
+
   , rng_length
   , rng_maxLength
   , rng_minLength
@@ -15,18 +17,32 @@
   , rng_maxInclusive
   , rng_minInclusive
 
+  , module Control.Arrow
   , module Text.XML.HXT.DOM.Util
   , module Text.XML.HXT.RelaxNG.Utils
   , module Text.XML.HXT.RelaxNG.DataTypes  
 
-  , alwaysOK
-  , alwaysErr
-  , orErr
-  , andCheck
-  , withVal
+  , FunctionTable
 
+  , stringValidFT	-- generalized checkString
+  , fctTableString	-- minLength, maxLenght, length
+  , fctTableList	-- minLength, maxLenght, length
+
   , stringValid		-- checkString
   , numberValid		-- checkNumeric
+
+  , numParamValid
+
+  , CheckA		-- Check datatype
+  , CheckString		-- CheckA String String
+  , CheckInteger	-- CheckA Integer Integer
+
+  , performCheck	-- run a CheckA
+  , ok			-- always true
+  , failure		-- create an error meesage
+  , assert		-- create a primitive check from a predicate
+  , assertMaybe		-- create a primitive check from a maybe
+  , checkWith		-- convert value before checking
   )
 
 where
@@ -36,9 +52,97 @@
 import Text.XML.HXT.RelaxNG.DataTypes
 import Text.XML.HXT.RelaxNG.Utils
 
+import Control.Arrow
+
+import Data.Either
 import Data.Maybe
-  ( fromJust )
 
+-- ------------------------------------------------------------
+
+newtype CheckA a b	= C { runCheck :: a -> Either String b }
+
+instance Arrow CheckA where
+    arr f	= C ( Right . f )		-- unit: no check, always o.k., just a conversion
+
+    f1 >>> f2	= C $				-- logical and: f1 and f2 must hold
+		  \ x -> case runCheck f1 x of
+			 Right y	-> runCheck f2 y
+			 Left  e	-> Left e
+
+    first f1	= C $				-- check 1. component of a pair
+		  \ ~(x1, x2) -> case runCheck f1 x1 of
+				 Right y1	-> Right (y1, x2)
+				 Left  e	-> Left  e
+
+    second f2	= C $				-- check 2. component of a pair
+		  \ ~(x1, x2) -> case runCheck f2 x2 of
+				 Right y2	-> Right (x1, y2)
+				 Left  e	-> Left  e
+
+
+
+instance ArrowZero CheckA where
+    zeroArrow	= C $ const (Left "")		-- always false: zero
+
+instance ArrowPlus CheckA where
+    f1 <+> f2	= C $				-- logical or
+		  \ x -> case runCheck f1 x of
+			 Right y1	-> Right y1
+			 Left  e1	-> case runCheck f2 x of
+					   Right y2	-> Right y2
+					   Left  e2	-> Left ( if null e1
+								  then e2
+								  else
+								  if null e2
+								  then e1
+								  else e1 ++ " or " ++ e2
+								)
+
+type CheckString	= CheckA String String
+type CheckInteger	= CheckA Integer Integer
+
+-- | run a check and deliver Just an error message or Nothing
+
+performCheck	:: CheckA a b -> a -> Maybe String
+performCheck c	= either Just (const Nothing) . runCheck c
+
+-- | always failure
+
+failure		:: (a -> String) -> CheckA a b
+failure	msg	= C (Left . msg)
+
+-- | every thing is fine
+
+ok		:: CheckA a a
+ok		= arr id
+
+-- | perform a simple check with a predicate p,
+--   when the predicate holds, assert acts as identity,
+--   else an error message is generated
+
+assert	:: (a -> Bool) -> (a -> String) -> CheckA a a
+assert p msg	= C $ \ x -> if p x then Right x else Left (msg x)
+
+-- | perform a simple check with a Maybe function, Nothing indicates error
+
+assertMaybe	:: (a -> Maybe b) -> (a -> String) -> CheckA a b
+assertMaybe f msg
+    = C $ \ x -> case f x of
+                 Nothing	-> Left (msg x)
+		 Just y		-> Right y
+
+-- | perform a check, but convert the value before checking
+
+checkWith	:: (a -> b) -> CheckA b c -> CheckA a a
+checkWith f c	= C $
+		  \ x -> case runCheck c (f x) of
+			 Right _	-> Right x
+			 Left  e	-> Left  e
+
+-- ------------------------------------------------------------
+
+-- RelaxNG attribute names
+
 rng_length, rng_maxLength, rng_minLength
  ,rng_maxExclusive, rng_minExclusive, rng_maxInclusive, rng_minInclusive :: String
 
@@ -56,7 +160,6 @@
 -- | Function table type
 
 type FunctionTable	= [(String, String -> String -> Bool)]
-type Check a		= a -> Maybe String
 
 -- | Function table for numeric tests,
 -- XML document value is first operand, schema value second
@@ -78,6 +181,16 @@
       , (rng_minLength, (numParamValid (>=)))
       ]
 
+-- | Function table for list tests,
+-- XML document value is first operand, schema value second
+
+fctTableList :: FunctionTable
+fctTableList
+    = [ (rng_length,    (listParamValid (==)))
+      , (rng_maxLength, (listParamValid (<=)))
+      , (rng_minLength, (listParamValid (>=)))
+      ]
+
 {- | 
 tests whether a string value matches a numeric param
 
@@ -90,42 +203,31 @@
 > <data type="CHAR"> <param name="minLength">foo</param> </data>
 
 -}
+
 numParamValid :: (Integer -> Integer -> Bool) -> String -> String -> Bool
 numParamValid fct a b
   = isNumber b
     &&
     ( toInteger (length a) `fct` (read b) )
 
--- ------------------------------------------------------------
-
--- | Unit for checks
-alwaysOK	:: Check a
-alwaysOK _	= Nothing
-
--- | Zero for checks: Create an error message for an illegal value
+{- | 
+tests whether a list value matches a length constraint
 
-alwaysErr	:: (a -> String) -> Check a
-alwaysErr msg	= Just . msg
+valid example:
 
--- | Perform check and generate error message on failure
+> <data type="IDREFS"> <param name="maxLength">5</param> </data>
 
-orErr	:: (a -> Bool) -> (a -> String) -> Check a
-orErr p msg s
-    | p s	= Nothing
-    | otherwise	= Just $ msg s
+invalid example:
 
--- | Combine two checks
+> <data type="IDREFS"> <param name="minLength">foo</param> </data>
 
-andCheck	:: Check a -> Check a -> Check a
-andCheck c1 c2 s
-    = res (c1 s)
-    where
-    res Nothing	= c2 s
-    res r1	= r1
+-}
 
-withVal	:: Check a -> (b -> a) -> Check b
-withVal c1 f v
-    = c1 (f v)
+listParamValid :: (Integer -> Integer -> Bool) -> String -> String -> Bool
+listParamValid fct a b
+  = isNumber b
+    &&
+    ( toInteger (length . words $ a) `fct` (read b) )
 
 -- ------------------------------------------------------------
 -- new check functions
@@ -150,32 +252,42 @@
    
 -}
 
-stringValid :: DatatypeName -> Integer -> Integer -> ParamList -> Check String
-stringValid datatype lowerBound upperBound params
-    = boundsOK `orErr` boundsErr
-      `andCheck`
+stringValid 	:: DatatypeName -> Integer -> Integer -> ParamList -> CheckString
+stringValid	= stringValidFT fctTableString
+
+stringValidFT :: FunctionTable -> DatatypeName -> Integer -> Integer -> ParamList -> CheckString
+stringValidFT ft datatype lowerBound upperBound params
+    = assert boundsOK boundsErr
+      >>>
       paramsStringValid params
     where
     boundsOK v
-	= (toInteger (length v) >= lowerBound)
+	= ( (lowerBound == 0)
+	    ||
+	    (toInteger (length v) >= lowerBound)
+	  )
 	  &&
-	  ((upperBound == (-1)) || (toInteger (length v) <= upperBound))
+	  ( (upperBound == (-1))
+	    ||
+	    (toInteger (length v) <= upperBound)
+	  )
+
     boundsErr v
 	= "Length of " ++ v
           ++ " (" ++ (show $ length v) ++ " chars) out of range: "
           ++ show lowerBound ++ " .. " ++ show upperBound
           ++ " for datatype " ++ datatype
 
-paramStringValid :: (LocalName, String) -> (Check String)
-paramStringValid (pn, pv)
-    = paramOK `orErr` errorMsgParam pn pv
-    where
-    paramOK v  = paramFct pn v pv
-    paramFct n = fromJust $ lookup n fctTableString
+    paramStringValid :: (LocalName, String) -> CheckString
+    paramStringValid (pn, pv)
+	= assert paramOK (errorMsgParam pn pv)
+	  where
+	  paramOK v  = paramFct pn v pv
+	  paramFct n = fromMaybe (const . const $ True) $ lookup n ft
 
-paramsStringValid :: ParamList -> (Check String)
-paramsStringValid
-    = foldr andCheck alwaysOK . map paramStringValid
+    paramsStringValid :: ParamList -> CheckString
+    paramsStringValid
+	= foldr (>>>) ok . map paramStringValid
 
 -- ------------------------------------------------------------
 
@@ -200,36 +312,34 @@
    
 -}
 
-numberValid :: DatatypeName -> Integer -> Integer -> ParamList -> Check String
+numberValid :: DatatypeName -> Integer -> Integer -> ParamList -> CheckString
 numberValid datatype lowerBound upperBound params
-    = (isNumber `orErr` numErr)
-      `andCheck`
-      ( ( (inRange `orErr` rangeErr)
-	  `andCheck`
-	  paramsNumValid params
-	)
-	`withVal` read
-      )
+    = assert isNumber numErr
+      >>>
+      checkWith read ( assert inRange rangeErr
+		       >>>
+		       paramsNumValid params
+		     )
     where
     inRange	:: Integer -> Bool
-    inRange x
-	= x >= lowerBound
-	  &&
-	  x <= upperBound
-    rangeErr v
-	= "Value = " ++ show v ++ " out of range: "
-          ++ show lowerBound ++ " .. " ++ show upperBound
-          ++ " for datatype " ++ datatype
+    inRange x	= x >= lowerBound
+		  &&
+		  x <= upperBound
+
+    rangeErr v	= ( "Value = " ++ show v ++ " out of range: "
+		    ++ show lowerBound ++ " .. " ++ show upperBound
+		    ++ " for datatype " ++ datatype
+		  )
     numErr v
 	= "Value = " ++ v ++ " is not a number"
 
-paramsNumValid	:: ParamList -> Check Integer
+paramsNumValid	:: ParamList -> CheckInteger
 paramsNumValid
-    = foldr andCheck alwaysOK . map paramNumValid
+    = foldr (>>>) ok . map paramNumValid
 
-paramNumValid	:: (LocalName, String) -> Check Integer
+paramNumValid	:: (LocalName, String) -> CheckInteger
 paramNumValid (pn, pv)
-    = paramOK `orErr` (errorMsgParam pn pv . show)
+    = assert paramOK (errorMsgParam pn pv . show)
     where
     paramOK  v = isNumber pv
 		 &&
@@ -266,20 +376,20 @@
 	" with value = " ++ show s1 ++
 	" expected, but value = " ++ show s2 ++ " found" 
       )
-errorMsgDataTypeNotAllowed :: String -> [(String, String)] -> String -> String -> String
-errorMsgDataTypeNotAllowed t p v l
+errorMsgDataTypeNotAllowed :: String -> String -> [(String, String)] -> String -> String
+errorMsgDataTypeNotAllowed l t p v
     = ( "Datatype " ++ show t ++ " with parameter(s) " ++
         formatStringListPairs p ++ " and value = " ++ show v ++
         " not allowed for DatatypeLibrary " ++ show l
       )
 
 errorMsgDataTypeNotAllowed0 :: String -> String -> String
-errorMsgDataTypeNotAllowed0 t l
+errorMsgDataTypeNotAllowed0 l t
     = ( "Datatype " ++ show t ++
         " not allowed for DatatypeLibrary " ++ show l
       )
 errorMsgDataTypeNotAllowed2 :: String -> String -> String -> String -> String
-errorMsgDataTypeNotAllowed2 t v1 v2 l
+errorMsgDataTypeNotAllowed2 l t v1 v2
     = ( "Datatype " ++ show t ++
 	" with values = " ++ show v1 ++
 	" and " ++ show v2 ++ 
@@ -287,5 +397,7 @@
       )
 
 errorMsgDataLibQName :: String -> String -> String -> String
-errorMsgDataLibQName v n l
+errorMsgDataLibQName l n v
     = show v ++ " is not a valid " ++ n ++ " for DatatypeLibrary " ++ l
+
+-- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/RelaxNG/DataTypeLibraries.hs b/src/Text/XML/HXT/RelaxNG/DataTypeLibraries.hs
--- a/src/Text/XML/HXT/RelaxNG/DataTypeLibraries.hs
+++ b/src/Text/XML/HXT/RelaxNG/DataTypeLibraries.hs
@@ -24,7 +24,6 @@
 import Data.Maybe
     ( fromJust )
 
-    
 -- ------------------------------------------------------------
     
 
@@ -96,7 +95,7 @@
 relaxDatatypeLib 	:: DatatypeLibrary
 relaxDatatypeLib	= (relaxNamespace, DTC datatypeAllowsRelax datatypeEqualRelax relaxDatatypes)
 
--- | if there is no datatype uri, the build in datatype library is used
+-- | if there is no datatype uri, the built in datatype library is used
 relaxDatatypeLib'	:: DatatypeLibrary
 relaxDatatypeLib'	= ("",             DTC datatypeAllowsRelax datatypeEqualRelax relaxDatatypes)
 
@@ -112,7 +111,7 @@
     = maybe notAllowed' allowed . lookup d $ relaxDatatypeTable
     where
     notAllowed'
-	= Just $ errorMsgDataTypeNotAllowed d p v relaxNamespace
+	= Just $ errorMsgDataTypeNotAllowed relaxNamespace d p v
     allowed _
 	= Nothing
 
@@ -125,7 +124,7 @@
     = maybe notAllowed' checkValues . lookup d $ relaxDatatypeTable
       where
       notAllowed'
-	  = Just $ errorMsgDataTypeNotAllowed2 d s1 s2 relaxNamespace
+	  = Just $ errorMsgDataTypeNotAllowed2 relaxNamespace d s1 s2
       checkValues predicate
 	  = if predicate s1 s2
 	    then Nothing
diff --git a/src/Text/XML/HXT/RelaxNG/Simplification.hs b/src/Text/XML/HXT/RelaxNG/Simplification.hs
--- a/src/Text/XML/HXT/RelaxNG/Simplification.hs
+++ b/src/Text/XML/HXT/RelaxNG/Simplification.hs
@@ -1,8 +1,21 @@
--- |
--- The modul creates the simplified form of a Relax NG schema.
--- See also chapter 4 of the Relax NG specification.
+-- ------------------------------------------------------------
 
+{- |
+   Module     : Text.XML.HXT.RelaxNG.Simplification
+   Copyright  : Copyright (C) 2008 Torben Kuseler, Uwe Schmidt
+   License    : MIT
 
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : stable
+   Portability: portable
+
+   The modul creates the simplified form of a Relax NG schema.
+   See also chapter 4 of the Relax NG specification.
+
+-}
+
+-- ------------------------------------------------------------
+
 module Text.XML.HXT.RelaxNG.Simplification
   ( createSimpleForm
   , getErrors
@@ -26,7 +39,6 @@
     ( removeWhiteSpace
     )
 
-
 import qualified Text.XML.HXT.Arrow.XmlNode as XN
     ( mkAttr
     , mkText
@@ -44,6 +56,7 @@
 import Data.Maybe
 import Data.Char
 import Data.List
+
 import System.Directory
   ( doesFileExist )
 
@@ -238,13 +251,16 @@
 	createAttrL
 	    = setBaseUri &&& constA (map createAttr env) >>> arr2L (:)
 	    where
+
 	    createAttr :: (String, String) -> XmlTree
 	    createAttr (pre, uri)
-		= if null pre					 -- default namespace
-		  then XN.mkAttr (QN "" "RelaxContextDefault" "") [XN.mkText uri]
-		  else XN.mkAttr (QN "" (contextAttributes++pre) "") [XN.mkText uri]
+		= XN.mkAttr (mkName nm) [XN.mkText uri]
+		where
+		nm  | null pre	= "RelaxContextDefault"
+		    | otherwise	= contextAttributes ++ pre
+
 	    setBaseUri :: IOSArrow String XmlTree
-	    setBaseUri = mkAttr (QN "" contextBaseAttr "") (txt $< this)
+	    setBaseUri = mkAttr (mkName contextBaseAttr) (txt $< this)
 
 	replaceQNames :: [(String, String)] -> String -> IOSArrow XmlTree XmlTree                        
 	replaceQNames e name
@@ -1156,7 +1172,7 @@
 
     createPatternElem :: (ArrowXml a) => String -> String -> String -> XmlTrees -> a n XmlTree  
     createPatternElem pattern name combine trees
-	= mkRngElement pattern (mkAttr (QN "" "name" "") (txt name)) 
+	= mkRngElement pattern (mkAttr (mkName "name") (txt name)) 
 	  ( ( mkRngElement combine none 
               (arrL (const trees) >>> getChildren)
             )
@@ -1353,9 +1369,9 @@
 
     createAttr :: NewName -> OldName -> IOSArrow XmlTree XmlTree
     createAttr name oldname
-      = mkAttr (QN "" "name" "") (txt name) 
+      = mkAttr (mkName "name") (txt name) 
         <+>
-        mkAttr (QN "" defineOrigName "") (txt $ "created for element " ++ oldname)
+        mkAttr (mkName defineOrigName) (txt $ "created for element " ++ oldname)
        
   getExpandableDefines :: (ArrowXml a) => a XmlTree Env 
   getExpandableDefines 
@@ -2025,19 +2041,19 @@
 
 representatives		:: NameClass -> [QName]
 representatives AnyName
-    = [QN "" illegalLocalName illegalUri]
+    = [mkQName "" illegalLocalName illegalUri]
 
 representatives (AnyNameExcept nc)
-    = (QN "" illegalLocalName illegalUri) : (representatives nc)
+    = (mkQName "" illegalLocalName illegalUri) : (representatives nc)
 
 representatives (NsName ns)
-    = [QN "" illegalLocalName ns]
+    = [mkQName "" illegalLocalName ns]
 
 representatives (NsNameExcept ns nc)
-    = (QN "" illegalLocalName ns) : (representatives nc)
+    = (mkQName "" illegalLocalName ns) : (representatives nc)
 
 representatives (Name ns ln)
-    = [QN "" ln ns]
+    = [mkQName "" ln ns]
 
 representatives (NameClassChoice nc1 nc2)
     = (representatives nc1) ++ (representatives nc2)
@@ -2191,7 +2207,7 @@
           `when`
           (hasRngName a_relaxSimplificationChanges)
       )
-      (mkAttr (QN "" a_relaxSimplificationChanges "") (txt str))
+      (mkAttr (mkName a_relaxSimplificationChanges) (txt str))
 
 
 getChangesAttr :: IOSArrow XmlTree String
diff --git a/src/Text/XML/HXT/RelaxNG/Utils.hs b/src/Text/XML/HXT/RelaxNG/Utils.hs
--- a/src/Text/XML/HXT/RelaxNG/Utils.hs
+++ b/src/Text/XML/HXT/RelaxNG/Utils.hs
@@ -1,6 +1,20 @@
--- |
--- Some helper functions
+-- ------------------------------------------------------------
 
+{- |
+   Module     : Text.XML.HXT.RelaxNG.Utils
+   Copyright  : Copyright (C) 2008 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : stable
+   Portability: portable
+
+   Helper functions for RelaxNG validation
+
+-}
+
+-- ------------------------------------------------------------
+
 module Text.XML.HXT.RelaxNG.Utils
     ( isRelaxAnyURI
     , compareURI
@@ -14,13 +28,11 @@
     , formatStringListQuot
     , formatStringListPairs
     , formatStringListArr
-    , qn2String
     )
 where
 
-import Text.XML.HXT.Arrow.DOMInterface
-
 import Text.ParserCombinators.Parsec
+
 import Text.XML.HXT.Parser.XmlParser
     ( skipS0
     , nmtoken
@@ -79,8 +91,13 @@
 
 checkByParsing	:: Parser String -> String -> Bool
 checkByParsing p s
-    = either (const False) (const True) (parse p "" s)
-                  
+    = either (const False) (const True) (parse p' "" s)
+      where
+      p' = do
+	   r <- p
+	   eof
+	   return r
+
 -- | Tests whether a string matches a number [-](0-9)*
 isNumber :: String -> Bool
 isNumber
@@ -93,7 +110,6 @@
 	  m <- option "" (string "-")
 	  n <- many1 digit
 	  skipS0
-	  eof
 	  return $ m ++ n
 
 isNmtoken	:: String -> Bool
@@ -142,11 +158,4 @@
     = reverse $ drop (length spacer) $ reverse $ 
       foldr (\e -> ((if e /= "" then sf e ++ spacer else "") ++)) "" l
 
-
--- | Formats a qualified name, e.g. \"{namespace}localName\"
-
-qn2String :: QName -> String
-qn2String (QN _ lp ns)
-    = if null ns
-      then lp
-      else "{" ++ ns ++ "}" ++ lp
+-- ----------------------------------------
diff --git a/src/Text/XML/HXT/RelaxNG/Validation.hs b/src/Text/XML/HXT/RelaxNG/Validation.hs
--- a/src/Text/XML/HXT/RelaxNG/Validation.hs
+++ b/src/Text/XML/HXT/RelaxNG/Validation.hs
@@ -1,8 +1,22 @@
--- |
--- Validation of a XML document with respect to a valid Relax NG schema in simple form.
--- Copied and modified from \"An algorithm for RELAX NG validation\" by James Clark
--- (<http://www.thaiopensource.com/relaxng/derivative.html>).
+-- ------------------------------------------------------------
 
+{- |
+   Module     : Text.XML.HXT.RelaxNG.Validation
+   Copyright  : Copyright (C) 2008 Torben Kuseler, Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
+   Stability  : stable
+   Portability: portable
+
+   Validation of a XML document with respect to a valid Relax NG schema in simple form.
+   Copied and modified from \"An algorithm for RELAX NG validation\" by James Clark
+   (<http://www.thaiopensource.com/relaxng/derivative.html>).
+
+-}
+
+-- ------------------------------------------------------------
+
 module Text.XML.HXT.RelaxNG.Validation
     ( validateWithRelaxAndHandleErrors
     , validateDocWithRelax
@@ -36,24 +50,24 @@
 import Text.XML.HXT.RelaxNG.PatternToString
 import Text.XML.HXT.RelaxNG.DataTypeLibraries
 import Text.XML.HXT.RelaxNG.Utils
-    ( qn2String
-    , formatStringListQuot
+    ( formatStringListQuot
     , compareURI
     )
 
 import qualified Text.XML.HXT.Arrow.XmlNode as XN
-    ( getText
-    )
 
-import Text.XML.HXT.DOM.Unicode ( isXmlSpaceChar )
-
-import Data.Tree.NTree.TypeDefs	( NTree (..) )
+import Text.XML.HXT.DOM.Unicode
+    ( isXmlSpaceChar
+    )
 
-import Data.Char
 import Data.Maybe
+    ( fromJust
+    )
+
 {-
 import qualified Debug.Trace as T
 -}
+
 -- ------------------------------------------------------------
 
 validateWithRelaxAndHandleErrors	:: IOSArrow XmlTree XmlTree -> IOSArrow XmlTree XmlTree
@@ -198,13 +212,13 @@
 -- ------------------------------------------------------------
 --
 -- | tests whether a 'NameClass' contains a particular 'QName'
+
 contains :: NameClass -> QName -> Bool
 contains AnyName _			= True
-contains (AnyNameExcept nc) n		= not (contains nc n)
-contains (NsName ns1) (QN _ _ ns2)	= ns1 == ns2
-contains (NsNameExcept ns1 nc) qn@(QN _ _ ns2)
-					= ns1 == ns2 && not (contains nc qn)
-contains (Name ns1 ln1) (QN _ ln2 ns2)	= (ns1 == ns2) && (ln1 == ln2)
+contains (AnyNameExcept nc)    n	= not (contains nc n)
+contains (NsName ns1)          qn	= ns1 == namespaceUri qn
+contains (NsNameExcept ns1 nc) qn	= ns1 == namespaceUri qn && not (contains nc qn)
+contains (Name ns1 ln1)        qn	= (ns1 == namespaceUri qn) && (ln1 == localPart qn)
 contains (NameClassChoice nc1 nc2) n 	= (contains nc1 n) || (contains nc2 n)
 contains (NCError _) _ 			= False
 
@@ -235,22 +249,19 @@
 
 childDeriv :: Context -> Pattern -> XmlTree -> Pattern
 
-childDeriv cx p (NTree (XText s) _)
-    = textDeriv cx p s
-
-childDeriv _ p (NTree (XTag qn atts) children)
-    = let
-      cx = ("",[])
-      p1 = startTagOpenDeriv p qn
-      p2 = attsDeriv cx p1 atts
-      p3 = startTagCloseDeriv p2
-      p4 = childrenDeriv cx p3 children
-      in
-      endTagDeriv p4
-
-childDeriv _ _ _
-    = notAllowed "Call to childDeriv with wrong arguments"
-
+childDeriv cx p t
+    | XN.isText t	= textDeriv cx p . fromJust . XN.getText $ t
+    | XN.isElem t	= endTagDeriv p4
+    | otherwise		= notAllowed "Call to childDeriv with wrong arguments"
+    where
+    children	=            XN.getChildren $ t
+    qn		= fromJust . XN.getElemName $ t 
+    atts	= fromJust . XN.getAttrl    $ t
+    cx1		= ("",[])
+    p1		= startTagOpenDeriv p qn
+    p2		= attsDeriv cx1 p1 atts
+    p3		= startTagCloseDeriv p2
+    p4		= childrenDeriv cx1 p3 children
 
 -- ------------------------------------------------------------
 --  
@@ -353,13 +364,13 @@
 startTagOpenDeriv (Choice p1 p2) qn
     = choice (startTagOpenDeriv p1 qn) (startTagOpenDeriv p2 qn)
 
-startTagOpenDeriv (Element nc p) qn@(QN _ local uri)
+startTagOpenDeriv (Element nc p) qn
     | contains nc qn
 	= after p Empty
     | otherwise
 	= notAllowed $
 	  "Element with name " ++ nameClassToString nc ++ 
-	    " expected, but {" ++ uri ++ "}" ++ local ++ " found"
+	    " expected, but " ++ universalName qn ++ " found"
 
 startTagOpenDeriv (Interleave p1 p2) qn
     = choice
@@ -385,10 +396,8 @@
 startTagOpenDeriv n@(NotAllowed _) _
     = n
 
-startTagOpenDeriv p (QN _ local uri)
-    = notAllowed ( show p ++ " expected, but Element {" ++
-		   uri ++ "}" ++ local ++ " found"
-		 )
+startTagOpenDeriv p qn
+    = notAllowed ( show p ++ " expected, but Element " ++ universalName qn ++ " found" )
 
 -- ------------------------------------------------------------
 
@@ -414,11 +423,11 @@
 
 attsDeriv _ p []
     = p
-attsDeriv cx p (attribute@(NTree (XAttr _) _):xs)
-    = attsDeriv cx (attDeriv cx p attribute) xs
-
-attsDeriv _ _ _
-    = notAllowed "Call to attsDeriv with wrong arguments"
+attsDeriv cx p (t : ts)
+    | XN.isAttr t
+	= attsDeriv cx (attDeriv cx p t) ts
+    | otherwise
+	= notAllowed "Call to attsDeriv with wrong arguments"
 
 attDeriv :: Context -> Pattern -> XmlTree -> Pattern
 
@@ -443,21 +452,28 @@
       (attDeriv cx p att)
       (choice (OneOrMore p) Empty)
 
-attDeriv cx (Attribute nc p) (NTree (XAttr qn) av)
-    | not (contains nc qn)
+attDeriv cx (Attribute nc p) att
+    | isa
+      &&
+      not (contains nc qn)
 	= notAllowed1 $
 	  "Attribute with name " ++ nameClassToString nc
-          ++ " expected, but " ++ qn2String qn ++ " found"
-    | ( ( nullable p
+          ++ " expected, but " ++ universalName qn ++ " found"
+    | isa
+      &&
+      ( ( nullable p
 	  &&
 	  whitespace val
 	)
 	|| nullable p'
       )
 	= Empty
-    | otherwise
+    | isa
 	= err' p'
     where
+    isa =            XN.isAttr      $ att
+    qn  = fromJust . XN.getAttrName $ att
+    av  =            XN.getChildren $ att
     val = showXts av
     p'  = textDeriv cx p val
 
@@ -524,17 +540,19 @@
     = p
 
 childrenDeriv cx p []
-    = childrenDeriv cx p etxt
-    where
-    etxt = [(NTree (XText "") [])]
+    = childrenDeriv cx p [XN.mkText ""]
 
-childrenDeriv cx p [tt@(NTree (XText s) _)]
-    | whitespace s
+childrenDeriv cx p [tt]
+    | ist
+      &&
+      whitespace s
 	= choice p p1
-    | otherwise
+    | ist
 	= p1
     where
-    p1 = childDeriv cx p tt
+    ist =            XN.isText    tt
+    s   = fromJust . XN.getText $ tt
+    p1  = childDeriv cx p tt
 
 childrenDeriv cx p children
     = stripChildrenDeriv cx p children    
diff --git a/src/Text/XML/HXT/RelaxNG/XmlSchema/DataTypeLibW3C.hs b/src/Text/XML/HXT/RelaxNG/XmlSchema/DataTypeLibW3C.hs
--- a/src/Text/XML/HXT/RelaxNG/XmlSchema/DataTypeLibW3C.hs
+++ b/src/Text/XML/HXT/RelaxNG/XmlSchema/DataTypeLibW3C.hs
@@ -19,13 +19,36 @@
 module Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C
   ( w3cNS
   , w3cDatatypeLib
+
+  , xsd_string			-- data type names
+  , xsd_normalizedString
+  , xsd_token
+  , xsd_language
+  , xsd_NMTOKEN
+  , xsd_NMTOKENS
+  , xsd_Name
   , xsd_NCName
+  , xsd_ID
+  , xsd_IDREF
+  , xsd_IDREFS
+  , xsd_ENTITY
+  , xsd_ENTITIES
   , xsd_anyURI
   , xsd_QName
-  , xsd_string
-  , xsd_length
+  , xsd_NOTATION
+  , xsd_hexBinary
+  , xsd_base64Binary
+  , xsd_decimal
+
+  , xsd_length			-- facet names
   , xsd_maxLength
   , xsd_minLength
+  , xsd_maxExclusive
+  , xsd_minExclusive
+  , xsd_maxInclusive
+  , xsd_minInclusive
+  , xsd_totalDigits
+  , xsd_fractionDigits
   , xsd_pattern
   , xsd_enumeration
   )
@@ -42,56 +65,119 @@
   )
 
 import Text.XML.HXT.RelaxNG.XmlSchema.Regex
-    ( ) -- match )
+    ( Regex
+    , match
+    )
 import Text.XML.HXT.RelaxNG.XmlSchema.RegexParser
-    ( ) -- parseRegex )
+    ( parseRegex )
 
 import Data.Maybe
+import Data.Ratio
   
 -- ------------------------------------------------------------
 
 -- | Namespace of the W3C XML schema datatype library
+
 w3cNS	:: String
 w3cNS	= "http://www.w3.org/2001/XMLSchema-datatypes"
 
 
-xsd_anyURI
- , xsd_QName
- , xsd_string
+xsd_string
  , xsd_normalizedString
  , xsd_token
+ , xsd_language
  , xsd_NMTOKEN
+ , xsd_NMTOKENS
  , xsd_Name
  , xsd_NCName
  , xsd_ID
  , xsd_IDREF
- , xsd_ENTITY :: String
+ , xsd_IDREFS
+ , xsd_ENTITY
+ , xsd_ENTITIES
+ , xsd_anyURI
+ , xsd_QName
+ , xsd_NOTATION
+ , xsd_hexBinary
+ , xsd_base64Binary
+ , xsd_decimal
+ , xsd_integer
+ , xsd_nonPositiveInteger
+ , xsd_negativeInteger
+ , xsd_nonNegativeInteger
+ , xsd_positiveInteger
+ , xsd_long
+ , xsd_int
+ , xsd_short
+ , xsd_byte
+ , xsd_unsignedLong
+ , xsd_unsignedInt
+ , xsd_unsignedShort
+ , xsd_unsignedByte :: String
 
-xsd_anyURI		= "anyURI"
-xsd_QName		= "QName"
 xsd_string		= "string"
 xsd_normalizedString	= "normalizedString"
 xsd_token		= "token"
+xsd_language		= "language"
 xsd_NMTOKEN		= "NMTOKEN"
+xsd_NMTOKENS		= "NMTOKENS"
 xsd_Name		= "Name"
 xsd_NCName		= "NCName"
 xsd_ID			= "ID"
 xsd_IDREF		= "IDREF"
+xsd_IDREFS		= "IDREFS"
 xsd_ENTITY		= "ENTITY"
+xsd_ENTITIES		= "ENTITIES"
+xsd_anyURI		= "anyURI"
+xsd_QName		= "QName"
+xsd_NOTATION		= "NOTATION"
+xsd_hexBinary		= "hexBinary"
+xsd_base64Binary	= "base64Binary"
+xsd_decimal		= "decimal"
+xsd_integer		= "integer"
+xsd_nonPositiveInteger	= "nonPositiveInteger"
+xsd_negativeInteger	= "negativeInteger"
+xsd_nonNegativeInteger	= "nonNegativeInteger"
+xsd_positiveInteger	= "positiveInteger"
+xsd_long		= "long"
+xsd_int			= "int"
+xsd_short		= "short"
+xsd_byte		= "byte"
+xsd_unsignedLong	= "unsignedLong"
+xsd_unsignedInt		= "unsignedInt"
+xsd_unsignedShort	= "unsignedShort"
+xsd_unsignedByte	= "unsignedByte"
 
+
 xsd_length
  , xsd_maxLength
  , xsd_minLength
+ , xsd_maxExclusive
+ , xsd_minExclusive
+ , xsd_maxInclusive
+ , xsd_minInclusive
+ , xsd_totalDigits
+ , xsd_fractionDigits
  , xsd_pattern
  , xsd_enumeration :: String
 
-xsd_length	= rng_length
-xsd_maxLength	= rng_maxLength
-xsd_minLength	= rng_minLength
-xsd_pattern	= "pattern"
-xsd_enumeration	= "enumeration"
+xsd_length		= rng_length
+xsd_maxLength		= rng_maxLength
+xsd_minLength		= rng_minLength
 
+xsd_maxExclusive	= rng_maxExclusive
+xsd_minExclusive	= rng_minExclusive
+xsd_maxInclusive	= rng_maxInclusive
+xsd_minInclusive	= rng_minInclusive
 
+xsd_totalDigits		= "totalDigits"
+xsd_fractionDigits	= "fractionDigits"
+
+xsd_pattern		= "pattern"
+xsd_enumeration		= "enumeration"
+
+-- ----------------------------------------
+
 -- | The main entry point to the W3C XML schema datatype library.
 --
 -- The 'DTC' constructor exports the list of supported datatypes and params.
@@ -103,98 +189,426 @@
 
 -- | All supported datatypes of the library
 w3cDatatypes :: AllowedDatatypes
-w3cDatatypes = [ (xsd_anyURI,	stringParams)
-               , (xsd_QName,	stringParams)
-               , (xsd_string,	stringParams)
-	       , (xsd_normalizedString, stringParams)
-               , (xsd_token,	stringParams)
-               , (xsd_NMTOKEN,	stringParams)
-	       , (xsd_Name,	stringParams)
-	       , (xsd_NCName,	stringParams)
-	       , (xsd_ID,	stringParams)
-	       , (xsd_IDREF,	stringParams)
-	       , (xsd_ENTITY,	stringParams)
+w3cDatatypes = [ (xsd_string,			stringParams)
+	       , (xsd_normalizedString, 	stringParams)
+               , (xsd_token,			stringParams)
+	       , (xsd_language,			stringParams)
+               , (xsd_NMTOKEN,			stringParams)
+               , (xsd_NMTOKENS,			listParams  )
+	       , (xsd_Name,			stringParams)
+	       , (xsd_NCName,			stringParams)
+	       , (xsd_ID,			stringParams)
+	       , (xsd_IDREF,			stringParams)
+	       , (xsd_IDREFS,			listParams  )
+	       , (xsd_ENTITY,			stringParams)
+	       , (xsd_ENTITIES,			listParams  )
+               , (xsd_anyURI,			stringParams)
+               , (xsd_QName,			stringParams)
+               , (xsd_NOTATION,			stringParams)
+	       , (xsd_hexBinary,		stringParams)
+	       , (xsd_base64Binary,		stringParams)
+	       , (xsd_decimal,			decimalParams)
+	       , (xsd_integer,			integerParams)
+	       , (xsd_nonPositiveInteger,	integerParams)
+	       , (xsd_negativeInteger,		integerParams)
+	       , (xsd_nonNegativeInteger,	integerParams)
+	       , (xsd_positiveInteger,		integerParams)
+	       , (xsd_long,			integerParams)
+	       , (xsd_int,			integerParams)
+	       , (xsd_short,			integerParams)
+	       , (xsd_byte,			integerParams)
+	       , (xsd_unsignedLong,		integerParams)
+	       , (xsd_unsignedInt,		integerParams)
+	       , (xsd_unsignedShort,		integerParams)
+	       , (xsd_unsignedByte,		integerParams)
                ]
 
+-- ----------------------------------------
+
 -- | List of allowed params for the string datatypes
-stringParams :: AllowedParams
-stringParams = [ xsd_length
-	       , xsd_maxLength
-	       , xsd_minLength
-	       ]
+stringParams	:: AllowedParams
+stringParams	= xsd_pattern : map fst fctTableString
 
+-- ----------------------------------------
+
+patternValid	:: ParamList -> CheckString
+patternValid params
+    = foldr (>>>) ok . map paramPatternValid $ params
+      where
+      paramPatternValid (pn, pv)
+	  | pn == xsd_pattern   = assert (patParamValid pv) (errorMsgParam pn pv)
+	  | otherwise		= ok
+
+patParamValid :: String -> String -> Bool
+patParamValid regex a
+    = case parseRegex regex of
+      (Left _  )	-> False
+      (Right ex)	-> isNothing . match ex $ a
+
+-- ----------------------------------------
+
+-- | List of allowed params for the decimal datatypes
+
+decimalParams	:: AllowedParams
+decimalParams	= xsd_pattern : map fst fctTableDecimal
+
+fctTableDecimal	:: [(String, String -> Rational -> Bool)]
+fctTableDecimal
+    = [ (xsd_maxExclusive,   cvd (>))
+      , (xsd_minExclusive,   cvd (<))
+      , (xsd_maxInclusive,   cvd (>=))
+      , (xsd_minInclusive,   cvd (<=))
+      , (xsd_totalDigits,    cvi (\ l v ->    totalDigits v == l))
+      , (xsd_fractionDigits, cvi (\ l v -> fractionDigits v == l))
+      ]
+    where
+    cvd		:: (Rational -> Rational -> Bool) -> (String -> Rational -> Bool)
+    cvd	op	= \ x y -> isDecimal x && readDecimal x `op` y
+
+    cvi		:: (Int -> Rational -> Bool) -> (String -> Rational -> Bool)
+    cvi	op	= \ x y -> isNumber x && read x `op` y
+
+decimalValid	:: ParamList -> CheckA Rational Rational
+decimalValid params
+    = foldr (>>>) ok . map paramDecimalValid $ params
+    where
+    paramDecimalValid (pn, pv)
+	= assert
+	  ((fromMaybe (const . const $ True) . lookup pn $ fctTableDecimal) pv)
+	  (errorMsgParam pn pv . showDecimal)
+
+-- ----------------------------------------
+
+-- | List of allowed params for the decimal and integer datatypes
+
+integerParams	:: AllowedParams
+integerParams	= xsd_pattern : map fst fctTableInteger
+
+fctTableInteger	:: [(String, String -> Integer -> Bool)]
+fctTableInteger
+    = [ (xsd_maxExclusive,   cvi (>))
+      , (xsd_minExclusive,   cvi (<))
+      , (xsd_maxInclusive,   cvi (>=))
+      , (xsd_minInclusive,   cvi (<=))
+      , (xsd_totalDigits,    cvi (\ l v -> totalD v == toInteger l))
+      ]
+    where
+    cvi		:: (Integer -> Integer -> Bool) -> (String -> Integer -> Bool)
+    cvi	op	= \ x y -> isNumber x && read x `op` y
+
+    totalD i
+	| i < 0	    = totalD (0-i)
+	| otherwise = toInteger . length . show $ i
+
+integerValid	:: DatatypeName -> ParamList -> CheckA Integer Integer
+integerValid datatype params 
+    = assertInRange
+      >>>
+      (foldr (>>>) ok . map paramIntegerValid $ params)
+    where
+    assertInRange 	:: CheckA Integer Integer
+    assertInRange
+	= assert
+	  (fromMaybe (const True) . lookup datatype $ integerRangeTable)
+	  (\ v -> ( "Datatype " ++ show datatype ++
+		    " with value = " ++ show v ++
+		    " not in integer value range"
+		  )
+	  )
+    paramIntegerValid (pn, pv)
+	= assert
+	  ((fromMaybe (const . const $ True) . lookup pn $ fctTableInteger) pv)
+	  (errorMsgParam pn pv . show)
+
+integerRangeTable	:: [(String, Integer -> Bool)]
+integerRangeTable	= [ (xsd_integer,		const True)
+			  , (xsd_nonPositiveInteger,	(<=0)	)
+			  , (xsd_negativeInteger,	( <0)	)
+			  , (xsd_nonNegativeInteger,	(>=0)	)
+			  , (xsd_positiveInteger,	( >0)	)
+			  , (xsd_long,			inR 9223372036854775808)
+			  , (xsd_int,			inR 2147483648)
+			  , (xsd_short,			inR 32768)
+			  , (xsd_byte,			inR 128)
+			  , (xsd_unsignedLong,		inP 18446744073709551616)
+			  , (xsd_unsignedInt,		inP 4294967296)
+			  , (xsd_unsignedShort,		inP 65536)
+			  , (xsd_unsignedByte,		inP 256)
+			  ]
+                          where
+			  inR b i	= (0 - b) <= i && i < b
+			  inP b i	= 0 <= i       && i < b
+
+-- ----------------------------------------
+
+-- | List of allowed params for the list datatypes
+
+listParams	:: AllowedParams
+listParams	= xsd_pattern : map fst fctTableList
+
+listValid	:: DatatypeName -> ParamList -> CheckString
+listValid d	= stringValidFT fctTableList d 0 (-1)
+
+-- ----------------------------------------
+
+isNameList	:: (String -> Bool) -> String -> Bool
+isNameList p w
+    = not (null ts) && all p ts
+      where
+      ts = words w
+
+-- ----------------------------------------
+
+rex		:: String -> Regex
+rex		= either undefined id . parseRegex
+
+isRex		:: Regex -> String -> Bool
+isRex ex	= isNothing . match ex
+
+-- ----------------------------------------
+
+rexLanguage
+  , rexHexBinary
+  , rexBase64Binary
+  , rexDecimal
+  , rexInteger	:: Regex
+
+rexLanguage	= rex "[A-Za-z]{1,8}(-[A-Za-z]{1,8})*"
+rexHexBinary	= rex "([A-Fa-f0-9]{2})*"
+rexBase64Binary	= rex $
+		  "(" ++ b64 ++ "{4})*((" ++ b64 ++ "{2}==)|(" ++ b64 ++ "{3}=)|)"
+		  where
+		  b64     = "[A-Za-z0-9+/]"
+rexDecimal	= rex "(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))"
+rexInteger	= rex "(\\+|-)?[0-9]+"
+
+isLanguage
+  , isHexBinary
+  , isBase64Binary
+  , isDecimal
+  , isInteger	:: String -> Bool
+
+isLanguage	= isRex rexLanguage
+isHexBinary	= isRex rexHexBinary
+isBase64Binary	= isRex rexBase64Binary
+isDecimal	= isRex rexDecimal
+isInteger	= isRex rexInteger
+
+-- ----------------------------------------
+
+normBase64	:: String -> String
+normBase64	= filter isB64
+		  where
+		  isB64 c = ( 'A' <= c && c <= 'Z')
+			    ||
+			    ( 'a' <= c && c <= 'z')
+			    ||
+			    ( '0' <= c && c <= '9')
+			    ||
+			    c == '+'
+			    ||
+			    c == '/'
+			    ||
+			    c == '='
+
+-- ----------------------------------------
+
+readDecimal
+  , readDecimal'	:: String -> Rational
+
+readDecimal ('+':s)	= readDecimal' s
+readDecimal ('-':s)	= negate (readDecimal' s)
+readDecimal      s	= readDecimal' s
+
+readDecimal' s
+    | f == 0	= (n % 1)
+    | otherwise	= (n % 1) + (f % (10 ^ (toInteger (length fs))))
+    where
+    (ns, fs') = span (/= '.') s
+    fs = drop 1 fs'
+
+    f :: Integer
+    f | null fs		= 0
+      | otherwise	= read fs
+    n :: Integer
+    n | null ns		= 0
+      | otherwise	= read ns
+
+totalDigits
+  , totalDigits'
+  , fractionDigits	:: Rational -> Int
+
+totalDigits r
+    | r == 0			= 0
+    | r < 0			= totalDigits' . negate  $ r
+    | otherwise			= totalDigits'           $ r
+
+totalDigits' r
+    | denominator r == 1	= length . show . numerator  $ r
+    | r < (1%1)			= (\ x -> x-1) . totalDigits' . (+ (1%1))    $ r
+    | otherwise			= totalDigits' . (* (10 % 1)) $ r
+
+fractionDigits r
+    | denominator r == 1	= 0
+    | otherwise			= (+1) . fractionDigits . (* (10 % 1)) $ r
+
+showDecimal
+  , showDecimal'		:: Rational -> String
+
+showDecimal d
+    | d < 0	= ('-':) . showDecimal' . negate    $ d
+    | d < 1	= drop 1 . showDecimal' . (+ (1%1)) $ d
+    | otherwise	=          showDecimal'             $ d
+
+showDecimal' d
+    | denominator d == 1    	= show . numerator $ d
+    | otherwise			= times10 0        $ d
+    where
+    times10 i' d'
+	| denominator d' == 1	= let
+				  (x, y) = splitAt i' . reverse . show . numerator $ d'
+				  in
+				  reverse y ++ "." ++ reverse x
+	| otherwise		= times10 (i' + 1) (d' * (10 % 1))
+				  
+-- ----------------------------------------
+
 -- | Tests whether a XML instance value matches a data-pattern.
 -- (see also: 'stringValid')
 
 datatypeAllowsW3C :: DatatypeAllows
 datatypeAllowsW3C d params value _
-    | d == xsd_string
-	= validString value
+    = performCheck check value
+    where
+    validString normFct
+	= validPattern
+	  >>>
+	  arr normFct
+	  >>>
+	  validLength
 
-    | d == xsd_normalizedString
-	= validString (normalizeBlanks value)
+    validNormString
+	= validString normalizeWhitespace
 
-    | d == xsd_token
-	= validString value1
+    validPattern
+	= patternValid params
 
-    | d == xsd_NMTOKEN
-	= isNmtoken `andValidString` value1
+    validLength
+	= stringValid d 0 (-1) params
 
-    | d == xsd_Name
-	= isName `andValidString` value1
+    validList
+	= validPattern
+	  >>>
+	  arr normalizeWhitespace
+	  >>>
+	  validListLength
 
-    | d `elem` [ xsd_NCName
-	       , xsd_ID
-	       , xsd_IDREF
-	       , xsd_ENTITY
-	       ]
-        = isNCName
-	  `andValidString` value1
+    validListLength
+	= listValid d params
 
-    | d == xsd_anyURI
-	= isURIReference
-	  `andValidString` value2
+    validName isN
+	= assertW3C isN
 
-    | d == xsd_QName
-	=  isWellformedQualifiedName
-	  `andValidString` value1
+    validNCName
+	= validNormString >>> validName isNCName
 
-    | otherwise
-	= alwaysErr notAllowed' value
+    validQName
+	= validNormString >>> validName isWellformedQualifiedName
 
-    where
-    value1 = normalizeWhitespace value
-    value2 = escapeURI           value1
+    validDecimal
+	= arr normalizeWhitespace
+	  >>>
+	  assertW3C isDecimal
+	  >>>
+	  checkWith readDecimal (decimalValid params)
 
-    andValidString p = (p `orErr` notValid) `andCheck` validString
-    validString      = stringValid d 0 (-1) params
-    notValid v'      = errorMsgDataLibQName v' d w3cNS
-    notAllowed' v'   = errorMsgDataTypeNotAllowed d params v' w3cNS
+    validInteger inRange
+	= validPattern
+	  >>>
+	  arr normalizeWhitespace
+	  >>>
+	  assertW3C isInteger
+	  >>>
+	  checkWith read (integerValid inRange params)
 
+    check	:: CheckString
+    check	= fromMaybe notFound . lookup d $ checks
+
+    notFound	= failure $ errorMsgDataTypeNotAllowed w3cNS d params
+
+    checks	:: [(String, CheckA String String)]
+    checks	= [ (xsd_string,		validString id)
+		  , (xsd_normalizedString,	validString normalizeBlanks)
+		  , (xsd_token,			validNormString)
+		  , (xsd_language,		validNormString >>> assertW3C isLanguage)
+		  , (xsd_NMTOKEN,		validNormString >>> validName isNmtoken)
+		  , (xsd_NMTOKENS,		validList       >>> validName (isNameList isNmtoken))
+		  , (xsd_Name,			validNormString >>> validName isName)
+		  , (xsd_NCName,		validNCName)
+		  , (xsd_ID,			validNCName)
+		  , (xsd_IDREF,			validNCName)
+		  , (xsd_IDREFS,		validList       >>> validName (isNameList isNCName))
+		  , (xsd_ENTITY,		validNCName)
+		  , (xsd_ENTITIES,		validList       >>> validName (isNameList isNCName))
+		  , (xsd_anyURI,		validName isURIReference >>> validString escapeURI)
+		  , (xsd_QName,			validQName)
+		  , (xsd_NOTATION,		validQName)
+		  , (xsd_hexBinary,		validString id         >>> assertW3C isHexBinary)
+		  , (xsd_base64Binary,		validString normBase64 >>> assertW3C isBase64Binary)
+		  , (xsd_decimal,		validPattern >>> validDecimal)
+		  , (xsd_integer,		validInteger xsd_integer)
+		  , (xsd_nonPositiveInteger,	validInteger xsd_nonPositiveInteger)
+		  , (xsd_negativeInteger,	validInteger xsd_negativeInteger)
+		  , (xsd_nonNegativeInteger,	validInteger xsd_nonNegativeInteger)
+		  , (xsd_positiveInteger,	validInteger xsd_positiveInteger)
+		  , (xsd_long,			validInteger xsd_long)
+		  , (xsd_int,			validInteger xsd_int)
+		  , (xsd_short,			validInteger xsd_short)
+		  , (xsd_byte,			validInteger xsd_byte)
+		  , (xsd_unsignedLong,		validInteger xsd_unsignedLong)
+		  , (xsd_unsignedInt,		validInteger xsd_unsignedInt)
+		  , (xsd_unsignedShort,		validInteger xsd_unsignedShort)
+		  , (xsd_unsignedByte,		validInteger xsd_unsignedByte)
+		  ]
+    assertW3C p	= assert p errW3C
+    errW3C	= errorMsgDataLibQName w3cNS d
+
+-- ----------------------------------------
+
 -- | Tests whether a XML instance value matches a value-pattern.
+
 datatypeEqualW3C :: DatatypeEqual
 datatypeEqualW3C d s1 _ s2 _
-    | isJust nf
-	= check (fromJust nf)
-    | otherwise
-	= Just $ errorMsgDataTypeNotAllowed0 d w3cNS
+    = performCheck check (s1, s2)
     where
-    check f
-	| s1' == s2' = Nothing
-	| otherwise  = Just $ errorMsgEqual d s1' s2'
-	where
-	s1' = f s1
-	s2' = f s2
-    nf = lookup d norm
+    check	:: CheckA (String, String) (String, String)
+    check	= maybe notFound found . lookup d $ norm
+
+    notFound	= failure $ const (errorMsgDataTypeNotAllowed0 w3cNS d)
+
+    found nf	= arr (\ (x1, x2) -> (nf x1, nf x2))			-- normalize both values
+		  >>>
+		  assert (uncurry (==)) (uncurry $ errorMsgEqual d)	-- and check on (==)
+
     norm = [ (xsd_string,		id			)
 	   , (xsd_normalizedString,	normalizeBlanks		)
 	   , (xsd_token,		normalizeWhitespace	)
+	   , (xsd_language,		normalizeWhitespace	)
 	   , (xsd_NMTOKEN,		normalizeWhitespace	)
+	   , (xsd_NMTOKENS,		normalizeWhitespace	)
 	   , (xsd_Name,			normalizeWhitespace	)
 	   , (xsd_NCName,		normalizeWhitespace	)
 	   , (xsd_ID,			normalizeWhitespace	)
 	   , (xsd_IDREF,		normalizeWhitespace	)
+	   , (xsd_IDREFS,		normalizeWhitespace	)
 	   , (xsd_ENTITY,		normalizeWhitespace	)
+	   , (xsd_ENTITIES,		normalizeWhitespace	)
 	   , (xsd_anyURI,		escapeURI . normalizeWhitespace	)
 	   , (xsd_QName,		normalizeWhitespace	)
+	   , (xsd_NOTATION,		normalizeWhitespace	)
+	   , (xsd_hexBinary,		id			)
+	   , (xsd_base64Binary,		normBase64		)
+	   , (xsd_decimal,		show . readDecimal . normalizeWhitespace	)
 	   ]
+
+-- ----------------------------------------
diff --git a/src/Text/XML/HXT/RelaxNG/XmlSchema/Regex.hs b/src/Text/XML/HXT/RelaxNG/XmlSchema/Regex.hs
--- a/src/Text/XML/HXT/RelaxNG/XmlSchema/Regex.hs
+++ b/src/Text/XML/HXT/RelaxNG/XmlSchema/Regex.hs
@@ -271,7 +271,7 @@
     | nullable e1	= mkAlt (mkSeq (delta e1 c) e2) (delta e2 c)
     | otherwise		= mkSeq (delta e1 c) e2
 delta (Rep i e)   c	= mkSeq (delta e c) (mkRep (i-1) e)
-delta (Rng i j e) c	= mkSeq (delta e c) (mkRng (i-1) (j-1) e)
+delta (Rng i j e) c	= mkSeq (delta e c) (mkRng ((i-1) `max` 0) (j-1) e)
 delta (Dif e1 e2) c	= mkDif (delta e1 c) (delta e2 c)
 
 -- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Validator/AttributeValueValidation.hs b/src/Text/XML/HXT/Validator/AttributeValueValidation.hs
--- a/src/Text/XML/HXT/Validator/AttributeValueValidation.hs
+++ b/src/Text/XML/HXT/Validator/AttributeValueValidation.hs
@@ -79,7 +79,7 @@
 checkValue typ dtdPart attrValue attrDecl
 	| typ == k_cdata	= none
 	| typ == k_enumeration	= checkValueEnumeration attrDecl attrValue
-	| typ == k_enitity	= checkValueEntity dtdPart attrDecl attrValue
+	| typ == k_entity	= checkValueEntity dtdPart attrDecl attrValue
 	| typ == k_entities	= checkValueEntities dtdPart attrDecl attrValue
 	| typ == k_id		= checkValueId attrDecl attrValue
 	| typ == k_idref	= checkValueIdref attrDecl attrValue
diff --git a/src/Text/XML/HXT/Validator/DTDValidation.hs b/src/Text/XML/HXT/Validator/DTDValidation.hs
--- a/src/Text/XML/HXT/Validator/DTDValidation.hs
+++ b/src/Text/XML/HXT/Validator/DTDValidation.hs
@@ -78,8 +78,9 @@
 getXTextValues
   = concatMap showT
   where
-    showT (NTree (XText t) _) = [t]
-    showT _                   = []
+    showT (NTree n _)
+	| isXTextNode n = [textOfXNode n]
+    showT _             = []
 
 
 -- ------------------------------------------------------------
diff --git a/src/Text/XML/HXT/Validator/DocTransformation.hs b/src/Text/XML/HXT/Validator/DocTransformation.hs
--- a/src/Text/XML/HXT/Validator/DocTransformation.hs
+++ b/src/Text/XML/HXT/Validator/DocTransformation.hs
@@ -84,7 +84,7 @@
 traverseTree transEnv n@(NTree (XTag name _) cs)
     = replaceChildren (concatMap (traverseTree transEnv) cs) (head (transFct n))
       where
-      transFct = case (lookup (tName name) transEnv) of
+      transFct = case (lookup (qualifiedName name) transEnv) of
           Nothing -> this   -- element not in DTD, can't be transformed
 	  Just f  -> f
 
diff --git a/src/Text/XML/HXT/Validator/DocValidation.hs b/src/Text/XML/HXT/Validator/DocValidation.hs
--- a/src/Text/XML/HXT/Validator/DocValidation.hs
+++ b/src/Text/XML/HXT/Validator/DocValidation.hs
@@ -75,8 +75,8 @@
       where
       valFct :: XmlFilter
       valFct
-          = case (lookup (tName name) valiEnv) of
-	    Nothing -> err ("Element " ++ show (tName name) ++ " not declared in DTD.")
+          = case (lookup (qualifiedName name) valiEnv) of
+	    Nothing -> err ("Element " ++ show (qualifiedName name) ++ " not declared in DTD.")
 	    Just f  -> f
 
 traverseTree _ _ = []
@@ -198,7 +198,7 @@
       contentValidationPcdata n@(NTree (XTag name _) cs)
           = if msg == ""
             then []
-            else err ("The content of element "++ show (tName name) ++
+            else err ("The content of element "++ show (qualifiedName name) ++
 	              " must match (#PCDATA). "++ msg) n
 	    where
 	    re = re_rep (re_sym k_pcdata)
@@ -213,7 +213,7 @@
       contentValidationEmpty n@(NTree (XTag name _) cs)
           = if msg == ""
             then []
-            else err ("The content of element " ++ show (tName name) ++
+            else err ("The content of element " ++ show (qualifiedName name) ++
 	              " must match EMPTY. " ++ msg) n
 	    where
 	    re = re_unit
@@ -228,7 +228,7 @@
       contentValidationAny n@(NTree (XTag name _) cs)
           = if msg == ""
             then []
-            else err ("The content of element " ++ show (tName name) ++
+            else err ("The content of element " ++ show (qualifiedName name) ++
 	              " must match ANY. " ++ msg) n
 	    where
 	    re = re_rep (re_dot)
@@ -243,7 +243,7 @@
       contentValidationChildren cm n@(NTree (XTag name _) cs)
           = if msg == ""
             then []
-            else err ("The content of element " ++ show (tName name) ++
+            else err ("The content of element " ++ show (qualifiedName name) ++
 	              " must match " ++ printRE re ++ ". " ++ msg) n
 	    where
 	    re = createRE (head cm)
@@ -258,7 +258,7 @@
       contentValidationMixed cm n@(NTree (XTag name _) cs)
           = if msg == ""
             then []
-            else err ("The content of element "++ show (tName name) ++
+            else err ("The content of element "++ show (qualifiedName name) ++
 	              " must match " ++ printRE re ++ ". " ++ msg) n
 	    where
 	    re = re_rep (re_alt (re_sym k_pcdata) (createRE (head cm)))
@@ -400,7 +400,7 @@
           = if satisfies (hasAttr attName) n
 	    then checkRequired xs n
 	    else err ("Attribute " ++ show attName ++ " must be declared for element type " ++
-	             show (tName name) ++ ".") n
+	             show (qualifiedName name) ++ ".") n
 	         ++
 		 checkRequired xs n
 	    where
@@ -441,7 +441,7 @@
           = if satisfies (hasAttr attName) n
 	    then if attValue == fixedValue
 	         then checkFixed xs n
-	         else err ("Attribute " ++ show attName ++ " of element " ++ show (tName name) ++
+	         else err ("Attribute " ++ show attName ++ " of element " ++ show (qualifiedName name) ++
 		           " with value " ++ show attValue ++ " must have a value of " ++
 			   show fixedValue ++ ".") n
 	              ++
@@ -494,7 +494,7 @@
 	    else searchForDeclaredAtt name xs att
 
       searchForDeclaredAtt name [] (NTree (XAttr attrName) _)
-          = err ("Attribute " ++ show (aName attrName) ++ " of element " ++ show name ++ " is not declared in DTD.")
+          = err ("Attribute " ++ show (qualifiedName attrName) ++ " of element " ++ show name ++ " is not declared in DTD.")
 
       searchForDeclaredAtt _ nd a
           = error ("searchForDeclaredAtt: illegeal paramter:\n" ++ show nd ++ show a)
diff --git a/src/Text/XML/HXT/Validator/IdValidation.hs b/src/Text/XML/HXT/Validator/IdValidation.hs
--- a/src/Text/XML/HXT/Validator/IdValidation.hs
+++ b/src/Text/XML/HXT/Validator/IdValidation.hs
@@ -82,7 +82,7 @@
       where
       idFct :: XmlFilter
       idFct
-          = case (lookup (tName name) idEnv) of
+          = case (lookup (qualifiedName name) idEnv) of
 	    Nothing -> none
 	    Just f  -> f
 
@@ -102,7 +102,7 @@
 
 getIdValue :: XmlTrees -> XmlTree -> String
 getIdValue (x@(NTree (XDTD ATTLIST al) _):xs) n@(NTree (XTag name _al') _)
-    = if (tName name) == elemName
+    = if (qualifiedName name) == elemName
       then attrValue
       else getIdValue xs n
       where
@@ -188,7 +188,7 @@
 		       else let valueList = words attrValue
 		            in if null valueList
 		               then err ("Attribute " ++ show attrName ++
-					 " of Element " ++ show (tName name) ++
+					 " of Element " ++ show (qualifiedName name) ++
 					 " must have at least one name.") n
 		               else concatMap (checkValueDeclared n) (words attrValue)
 	          else []
@@ -237,13 +237,13 @@
       checkForUniqueId (x@(NTree (XTag name _) _):xs) used
           = if attrValue `elem` used
 	    then err ("Attribute value " ++ show attrValue ++ " of type ID for element " ++
-	              show (tName name) ++ " must be unique within the document.") x
+	              show (qualifiedName name) ++ " must be unique within the document.") x
 		 ++
 		 checkForUniqueId xs used
 
 	    else checkForUniqueId xs (attrValue : used)
 	    where
-	    attrValue = getIdValue (isAttlistOfElement (tName name) $$ idAttrTypes) x
+	    attrValue = getIdValue (isAttlistOfElement (qualifiedName name) $$ idAttrTypes) x
 
       checkForUniqueId _ _ = []
 
diff --git a/src/Text/XML/HXT/Validator/XmlRE.hs b/src/Text/XML/HXT/Validator/XmlRE.hs
--- a/src/Text/XML/HXT/Validator/XmlRE.hs
+++ b/src/Text/XML/HXT/Validator/XmlRE.hs
@@ -91,11 +91,11 @@
 
     where
     expectedNode :: XmlTree -> String -> Bool
-    expectedNode (NTree (XTag n _) _) sym = (tName n) == sym
+    expectedNode (NTree (XTag n _) _) sym = (qualifiedName n) == sym
     expectedNode _ _			  = False
 
     elemName :: XmlTree -> String
-    elemName (NTree (XTag n _) _)	= "element "++ show (tName n)
+    elemName (NTree (XTag n _) _)	= "element "++ show (qualifiedName n)
     elemName _				= "character data"
 
     allowed :: XmlTree -> Bool
diff --git a/src/Text/XML/HXT/XPath/XPathDataTypes.hs b/src/Text/XML/HXT/XPath/XPathDataTypes.hs
--- a/src/Text/XML/HXT/XPath/XPathDataTypes.hs
+++ b/src/Text/XML/HXT/XPath/XPathDataTypes.hs
@@ -65,7 +65,7 @@
     where
     show NaN           = "NaN"
     show NegInf        = "-Infinity"
-    show Neg0          = "0"
+    show Neg0          = "-0"
     show Pos0          = "0"
     show (Float f)     = show f
     show PosInf        = "Infinity"
diff --git a/src/Text/XML/HXT/XPath/XPathEval.hs b/src/Text/XML/HXT/XPath/XPathEval.hs
--- a/src/Text/XML/HXT/XPath/XPathEval.hs
+++ b/src/Text/XML/HXT/XPath/XPathEval.hs
@@ -80,7 +80,7 @@
 -- are interpreted with respect to the given namespace environment
 
 getXPathWithNsEnv	:: NsEnv -> String -> XmlFilter
-getXPathWithNsEnv	= getXPathValues xPValue2XmlTrees xPathErr canonicalizeForXPath
+getXPathWithNsEnv env s	= canonicalizeForXPath .> getXPathValues xPValue2XmlTrees xPathErr env s
 
 -- |
 -- Select parts of an XML tree by a XPath expression.
@@ -101,8 +101,8 @@
 -- | Same as 'getXPathSubTrees' but with namespace aware XPath expression
 
 getXPathSubTreesWithNsEnv	:: NsEnv -> String -> XmlFilter
-getXPathSubTreesWithNsEnv nsEnv xpStr t
-    = getXPathValues xPValue2XmlTrees xPathErr this nsEnv xpStr $ addRoot t
+getXPathSubTreesWithNsEnv nsEnv xpStr
+    = getXPathValues xPValue2XmlTrees xPathErr nsEnv xpStr
 
 -- | compute the node set of an XPath query
 
@@ -112,13 +112,13 @@
 -- | compute the node set of a namespace aware XPath query
 
 getXPathNodeSetWithNsEnv	:: NsEnv -> String -> XmlTree -> XmlNodeSet
-getXPathNodeSetWithNsEnv nsEnv xpStr t
-    = getXPathValues xPValue2NodeSet (const (const emptyNodeSet)) this nsEnv xpStr $ addRoot t
+getXPathNodeSetWithNsEnv nsEnv xpStr
+    = getXPathValues xPValue2NodeSet (const (const emptyNodeSet)) nsEnv xpStr
 
 -- | parse xpath, evaluate xpath expr and prepare results
 
-getXPathValues	:: (XPathValue -> a) -> (String -> String -> a) -> XmlFilter -> NsEnv -> String -> XmlTree -> a
-getXPathValues cvRes cvErr canonicalize nsEnv xpStr t
+getXPathValues	:: (XPathValue -> a) -> (String -> String -> a) -> NsEnv -> String -> XmlTree -> a
+getXPathValues cvRes cvErr nsEnv xpStr t
     = case (runParser parseXPath nsEnv "" xpStr) of
       Left parseError
 	  -> cvErr xpStr (show parseError)
@@ -128,16 +128,19 @@
     evalXP xpe
 	= cvRes xpRes
 	where
-	idAttr	= (("", "idAttr"), idAttributesToXPathValue . getIdAttributes $ t)
-	navTD	= (ntree . head . canonicalize) t
+	t'      = head . addRoot $ t			-- we need a root node for starting xpath eval
+	idAttr	= ( ("", "idAttr")			-- id attributes from DTD (if there)
+		  , idAttributesToXPathValue . getIdAttributes $ t'
+		  )
+	navTD	= ntree t'
 	xpRes	= evalExpr (idAttr:(getVarTab varEnv),[]) (1, 1, navTD) xpe (XPVNode [navTD])
 
-addRoot	:: XmlTree -> XmlTree
+addRoot	:: XmlFilter
 addRoot t
     | null . isRoot $ t
-	= head . rootTag [] [this] $ t
+	= rootTag [] [this] $ t
     | otherwise
-	= t
+	= this t
 
 xPathErr	:: String -> String -> [XmlTree]
 xPathErr xpStr parseError
@@ -426,12 +429,22 @@
 
 
 evalAttrNodeTest :: NodeTest -> NavXmlTree -> NavXmlTrees
-evalAttrNodeTest (NameTest (QN _pre local uri)) ns@(NT (NTree (XAttr (QN _pre1 local1 uri1)) _) _ _ _)
-    = if ( ( uri == uri1               && local == local1) || 
-           ((uri == "" || uri == uri1) && local == "*") 
-         ) then [ns] else [] 
+evalAttrNodeTest (NameTest qn) ns@(NT (NTree (XAttr qn1) _) _ _ _)
+    = if ( ( uri == uri1               && lp == lp1)
+	   || 
+           ((uri == "" || uri == uri1) && lp == "*") 
+         )
+      then [ns]
+      else []
+      where
+      uri  = namespaceUri qn
+      uri1 = namespaceUri qn1
+      lp   = localPart    qn
+      lp1  = localPart    qn1
+
 evalAttrNodeTest (TypeTest XPNode) ns@(NT (NTree (XAttr _) _) _ _ _)
     = [ns]
+
 evalAttrNodeTest _ _
     = []
 
@@ -624,3 +637,5 @@
       isXDTD
       .>
       deep (isIdAttrType)
+
+-- ----------------------------------------
diff --git a/src/Text/XML/HXT/XPath/XPathFct.hs b/src/Text/XML/HXT/XPath/XPathFct.hs
--- a/src/Text/XML/HXT/XPath/XPathFct.hs
+++ b/src/Text/XML/HXT/XPath/XPathFct.hs
@@ -31,19 +31,31 @@
 import Text.XML.HXT.XPath.XPathArithmetic
       ( xPathAdd )
 
-import Text.XML.HXT.Arrow.ReadDocument (readDocument)
-import Text.XML.HXT.Arrow.XmlIOStateArrow (runX)
+import qualified Text.XML.HXT.Arrow.XmlNode as XN
+import           Text.XML.HXT.Arrow.ReadDocument (readDocument)
+import           Text.XML.HXT.Arrow.XmlIOStateArrow (runX)
 
 import Text.XML.HXT.DOM.XmlTree
       hiding (mkNode)
 
-import System.IO.Unsafe (unsafePerformIO)
-import Data.Maybe
-      ( fromJust )      
+import System.IO.Unsafe
+    ( unsafePerformIO
+    )
 
 import Data.Char
+    ( isAscii
+    , isUpper
+    , isLower
+    , isDigit
+    , ord
+    )
 import Data.List
-    ( sortBy )
+    ( sortBy
+    )
+import Data.Maybe
+      ( fromJust
+      , fromMaybe
+      )      
 
 -- -----------------------------------------------------------------------------
 
@@ -199,7 +211,7 @@
 
 -- Tim Walkenhorst:
 --   - Attributes are identified by their QName (they do not have previous siblings)
---   - Elemts are identified by their relative position (# of previous siblings)
+--   - Elements are identified by their relative position (# of previous siblings)
 
 data IdPathStep = IdRoot String | IdPos Int | IdAttr QName deriving (Show, Eq, Ord)
 
@@ -207,12 +219,14 @@
 nodeID Nothing = []
 nodeID (Just t@(NT (NTree (XAttr qn) _)  _ _ _)) = IdAttr qn : nodeID (upNT t)
 nodeID (Just t@(NT node _ prev _))               
-   | isRootNode $ getNode node = return $ IdRoot (getText $ getValue "rootId" node) 
-   | otherwise       = IdPos (length prev) : nodeID (upNT t)
-   where getText ((NTree (XText t') _):_) = t'
-         getText _         = ""
-   
-
+   | isRootNode $ getNode node
+       = return $ IdRoot (getText $ getValue "rootId" node) 
+   | otherwise
+       = IdPos (length prev) : nodeID (upNT t)
+   where
+   getText	:: XmlTrees -> String
+   getText (x:_) = fromMaybe "" (XN.getText x)
+   getText _	 = ""
 
 -- |
 -- Calculates the position of a node in a tree (in document order)
diff --git a/src/Text/XML/HXT/XSLT/Common.hs b/src/Text/XML/HXT/XSLT/Common.hs
--- a/src/Text/XML/HXT/XSLT/Common.hs
+++ b/src/Text/XML/HXT/XSLT/Common.hs
@@ -51,7 +51,6 @@
     , setAttribute               -- XmlNode n => QName -> String -> n -> n
 
     -- Namespace functions
-    , mkQName                    -- String (prefix) -> String (local) -> String (uri) -> QName
     , ExName(ExName)             -- String (local) -> String (uri) -> ExName
     , mkExName                   -- QName -> ExName
     , exLocal		         -- ExName -> String
@@ -103,9 +102,10 @@
 import Text.XML.HXT.DOM.TypeDefs
     ( XmlTree
     , XNode(XTag, XAttr)
-    , QName(QN, namePrefix, localPart, namespaceUri)
+    , QName(namePrefix, localPart, namespaceUri)
     , equivQName
     , mkName
+    , mkQName
     )
 
 import Text.XML.HXT.DOM.FormatXmlTree
@@ -205,13 +205,20 @@
 -- Xml Functions
 
 collectTextnodes :: [XmlTree] -> String
-collectTextnodes = concat . mapMaybe getText
+collectTextnodes
+    = concat . mapMaybe getText
 
 isElemType :: XmlNode n => QName -> n -> Bool
-isElemType qn node = isElem node && equivQName qn (fromJust $ getElemName node)
+isElemType qn node
+    = isElem node
+      &&
+      equivQName qn (fromJust $ getElemName node)
 
 isAttrType :: XmlNode n => QName -> n -> Bool
-isAttrType qname node = isAttr node && equivQName qname (fromJust $ getAttrName node)
+isAttrType qname node
+    = isAttr node
+      &&
+      equivQName qname (fromJust $ getAttrName node)
 
 tryFetchAttribute :: XmlNode n => n -> QName -> Maybe String
 tryFetchAttribute node qn
@@ -252,10 +259,8 @@
 --------------------------- 
 -- Namespace Functions
 
-mkQName :: String -> String -> String -> QName
-mkQName p l u = QN {namePrefix=p, localPart=l, namespaceUri=u}
-
 -- Expanded name, is unique can therefore be used as a key (unlike QName)
+
 data ExName = ExName String String
   deriving (Show, Eq, Ord)
 
@@ -267,36 +272,39 @@
 exUri   (ExName _ u) = u
 
 parseExName :: UriMapping -> String -> ExName
-parseExName uris str =
-
-    if noPrefix 
-    then ExName str ""
-
-    else ExName loc $ lookupPrefix uris prefix
-
-  where
+parseExName uris str
+    | noPrefix	= ExName str ""
+    | otherwise	= ExName loc $ lookupPrefix uris prefix
+    where
     noPrefix       = null loc 
     loc            = drop 1 loc'                
     (prefix, loc') = span (/= ':') str
 
 -- Mapping from namespace-Prefixes to namespace-URIs
+
 type UriMapping = Map String String
 
 getUriMap :: XmlNode n => n -> UriMapping
-getUriMap = uriMappingsFromNsAttrs . filter isNsAttr . maybe err id . getAttrl
-  where err = error "Internal error: getUriMap on none-element node"
+getUriMap
+    = uriMappingsFromNsAttrs . filter isNsAttr . maybe err id . getAttrl
+      where
+      err = error "Internal error: getUriMap on none-element node"
 
 setUriMap :: XmlNode n => UriMapping -> n -> n
-setUriMap nsMap node = setElemAttrl (mergeAttrl (maybe [] id $ getAttrl node) $ uriMap2Attrs nsMap) node
+setUriMap nsMap node
+    = setElemAttrl (mergeAttrl (maybe [] id $ getAttrl node) $ uriMap2Attrs nsMap) node
 
 uriMap2Attrs :: UriMapping -> [XmlTree]
-uriMap2Attrs  = map joinNsAttr . Map.toAscList
+uriMap2Attrs
+    = map joinNsAttr . Map.toAscList
 
 lookupPrefix :: UriMapping -> String -> String
-lookupPrefix uris prefix = fromJustErr ("No namespace-Uri bound to prefix: "++prefix) $ Map.lookup prefix uris
+lookupPrefix uris prefix
+    = fromJustErr ("No namespace-Uri bound to prefix: "++prefix) $ Map.lookup prefix uris
 
 expandNSDecls :: XmlTree -> XmlTree
-expandNSDecls = mapTreeCtx (expandNSElem) $ Map.fromAscList [("xml", xmlNamespace), ("xmlns", xmlnsNamespace)]
+expandNSDecls
+    = mapTreeCtx (expandNSElem) $ Map.fromAscList [("xml", xmlNamespace), ("xmlns", xmlnsNamespace)]
 
 expandNSElem :: UriMapping -> XNode -> (UriMapping, XNode)
 expandNSElem umap node
@@ -309,16 +317,20 @@
     (nsAttrs, attrs) = partition isNsAttr $ fromJust $ getAttrl node
 
 uriMappingsFromNsAttrs :: [XmlTree] -> UriMapping
-uriMappingsFromNsAttrs = Map.fromList . map splitNsAttr
+uriMappingsFromNsAttrs
+    = Map.fromList . map splitNsAttr
 
 isNsAttr :: XmlTree -> Bool
-isNsAttr = maybe False ((==) xmlnsNamespace . namespaceUri) . getAttrName
+isNsAttr
+    = maybe False ((==) xmlnsNamespace . namespaceUri) . getAttrName
 
 splitNsAttr :: XmlTree -> (String, String)
-splitNsAttr node = (localPart $ fromJust $ getAttrName node, collectTextnodes $ getChildren node)
+splitNsAttr node
+    = (localPart $ fromJust $ getAttrName node, collectTextnodes $ getChildren node)
 
 joinNsAttr :: (String, String) -> XmlTree
-joinNsAttr (prefix, uri) = mkAttr (mkQName "xmlns" prefix xmlnsNamespace) [mkText uri]
+joinNsAttr (prefix, uri)
+    = mkAttr (mkQName "xmlns" prefix xmlnsNamespace) [mkText uri]
 
 -------------------------
 -- additions to XPATH:
diff --git a/src/hxt-package.conf b/src/hxt-package.conf
deleted file mode 100644
--- a/src/hxt-package.conf
+++ /dev/null
@@ -1,149 +0,0 @@
--- arch-tag: Haskell XML Toolbox main description file
-name: hxt
-version: %VERSION%
-license: OtherLicense
-license-file: LICENCE
-maintainer: Uwe Schmidt <uwe@fh-wedel.de>
-stability: stable
-category: XML
-synopsis: A collection of tools for processing XML with Haskell. 
-description:  The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but introduces a more general approach for processing XML with Haskell. The Haskell XML Toolbox uses a generic data model for representing XML documents, including the DTD subset and the document subset, in Haskell. It contains a validating XML parser, a HTML parser, namespace support, an XPath expression evaluator, an XSLT library, a RelaxNG schema validator and funtions for serialization and deserialization of user defined data. The libraray make extensive use of the arrow approach for processing XML.
-homepage: http://www.fh-wedel.de/~si/HXmlToolbox/index.html
-copyright: Copyright (c) 2005 Uwe Schmidt
-tested-with: ghc-6.8
-exposed: True
-exposed-modules:
-  Control.Arrow.ArrowIf,
-  Control.Arrow.ArrowIO,
-  Control.Arrow.ArrowList,
-  Control.Arrow.ArrowState,
-  Control.Arrow.ArrowStrict,
-  Control.Arrow.ArrowTree,
-  Control.Arrow.IOListArrow,
-  Control.Arrow.IOStateListArrow,
-  Control.Arrow.ListArrow,
-  Control.Arrow.ListArrows,
-  Control.Arrow.StateListArrow,
-  Control.Monad.MonadStateIO,
-  Control.Strategies.DeepSeq,
-  Data.AssocList,
-  Data.Char.UTF8,
-  Data.NavTree,
-  Data.Tree.Class,
-  Data.Tree.NTree.Filter,
-  Data.Tree.NTree.TypeDefs,
-  System.PipeOpen,
-  Text.XML.HXT.Arrow,
-  Text.XML.HXT.Arrow.DocumentInput,
-  Text.XML.HXT.Arrow.DocumentOutput,
-  Text.XML.HXT.Arrow.DOMInterface,
-  Text.XML.HXT.Arrow.DTDProcessing,
-  Text.XML.HXT.Arrow.Edit,
-  Text.XML.HXT.Arrow.GeneralEntitySubstitution,
-  Text.XML.HXT.Arrow.Namespace,
-  Text.XML.HXT.Arrow.ParserInterface
-  Text.XML.HXT.Arrow.Pickle,
-  Text.XML.HXT.Arrow.Pickle.DTD,
-  Text.XML.HXT.Arrow.Pickle.Schema,
-  Text.XML.HXT.Arrow.Pickle.Xml,
-  Text.XML.HXT.Arrow.ProcessDocument,
-  Text.XML.HXT.Arrow.ReadDocument,
-  Text.XML.HXT.Arrow.WriteDocument,
-  Text.XML.HXT.Arrow.XmlArrow,
-  Text.XML.HXT.Arrow.XmlIOStateArrow,
-  Text.XML.HXT.Arrow.XmlNode,
-  Text.XML.HXT.Arrow.XmlNodeSet,
-  Text.XML.HXT.DOM,
-  Text.XML.HXT.DOM.EditFilters,
-  Text.XML.HXT.DOM.FormatXmlTree,
-  Text.XML.HXT.DOM.IsoLatinTables,
-  Text.XML.HXT.DOM.Namespace,
-  Text.XML.HXT.DOM.NamespaceFilter,
-  Text.XML.HXT.DOM.NamespacePredicates,
-  Text.XML.HXT.DOM.TypeDefs,
-  Text.XML.HXT.DOM.Unicode,
-  Text.XML.HXT.DOM.UTF8Decoding,
-  Text.XML.HXT.DOM.Util,
-  Text.XML.HXT.DOM.XmlKeywords,
-  Text.XML.HXT.DOM.XmlOptions,
-  Text.XML.HXT.DOM.XmlState,
-  Text.XML.HXT.DOM.XmlTree,
-  Text.XML.HXT.DOM.XmlTreeFilter,
-  Text.XML.HXT.DOM.XmlTreeFunctions,
-  Text.XML.HXT.DOM.XmlTreeTypes,
-  Text.XML.HXT.IO.GetFILE,
-  Text.XML.HXT.IO.GetHTTPCurl,
-  Text.XML.HXT.IO.GetHTTPNative,
-  Text.XML.HXT.Parser,
-  Text.XML.HXT.Parser.DefaultURI,
-  Text.XML.HXT.Parser.DTDProcessing,
-  Text.XML.HXT.Parser.HtmlParsec,
-  Text.XML.HXT.Parser.HtmlParser,
-  Text.XML.HXT.Parser.MainFunctions,
-  Text.XML.HXT.Parser.ProtocolHandler,
-  Text.XML.HXT.Parser.ProtocolHandlerFile,
-  Text.XML.HXT.Parser.ProtocolHandlerHttpCurl,
-  Text.XML.HXT.Parser.ProtocolHandlerHttpNative,
-  Text.XML.HXT.Parser.ProtocolHandlerHttpNativeOrCurl,
-  Text.XML.HXT.Parser.ProtocolHandlerUtil,
-  Text.XML.HXT.Parser.XhtmlEntities,
-  Text.XML.HXT.Parser.XmlEntities,
-  Text.XML.HXT.Parser.XmlCharParser,
-  Text.XML.HXT.Parser.XmlDTDParser,
-  Text.XML.HXT.Parser.XmlDTDTokenParser,
-  Text.XML.HXT.Parser.XmlInput,
-  Text.XML.HXT.Parser.XmlOutput,
-  Text.XML.HXT.Parser.XmlParsec,
-  Text.XML.HXT.Parser.XmlParser,
-  Text.XML.HXT.Parser.XmlTokenParser,
-  Text.XML.HXT.Validator.AttributeValueValidation,
-  Text.XML.HXT.Validator.DocTransformation,
-  Text.XML.HXT.Validator.DocValidation,
-  Text.XML.HXT.Validator.DTDValidation,
-  Text.XML.HXT.Validator.IdValidation,
-  Text.XML.HXT.Validator.RE,
-  Text.XML.HXT.Validator.Validation,
-  Text.XML.HXT.Validator.ValidationFilter,
-  Text.XML.HXT.Validator.XmlRE,
-  Text.XML.HXT.XPath,
-  Text.XML.HXT.XPath.NavTree,
-  Text.XML.HXT.XPath.XPathArithmetic,
-  Text.XML.HXT.XPath.XPathDataTypes,
-  Text.XML.HXT.XPath.XPathEval,
-  Text.XML.HXT.XPath.XPathFct,
-  Text.XML.HXT.XPath.XPathKeywords,
-  Text.XML.HXT.XPath.XPathParser,
-  Text.XML.HXT.XPath.XPathToNodeSet,
-  Text.XML.HXT.XPath.XPathToString,
-  Text.XML.HXT.XSLT.Application,
-  Text.XML.HXT.XSLT.Common,
-  Text.XML.HXT.XSLT.Compilation,
-  Text.XML.HXT.XSLT.CompiledStylesheet,
-  Text.XML.HXT.XSLT.Names,
-  Text.XML.HXT.XSLT.XsltArrows,
-  Text.XML.HXT.RelaxNG,
-  Text.XML.HXT.RelaxNG.BasicArrows,
-  Text.XML.HXT.RelaxNG.CreatePattern,
-  Text.XML.HXT.RelaxNG.DataTypeLibMysql,
-  Text.XML.HXT.RelaxNG.DataTypeLibraries,
-  Text.XML.HXT.RelaxNG.DataTypeLibUtils,
-  Text.XML.HXT.RelaxNG.DataTypes,
-  Text.XML.HXT.RelaxNG.PatternFunctions,
-  Text.XML.HXT.RelaxNG.PatternToString,
-  Text.XML.HXT.RelaxNG.SchemaGrammar,
-  Text.XML.HXT.RelaxNG.Schema,
-  Text.XML.HXT.RelaxNG.Simplification,
-  Text.XML.HXT.RelaxNG.Utils,
-  Text.XML.HXT.RelaxNG.Validation,
-  Text.XML.HXT.RelaxNG.Validator,
-  Text.XML.HXT.RelaxNG.Unicode.Blocks,
-  Text.XML.HXT.RelaxNG.Unicode.CharProps,
-  Text.XML.HXT.RelaxNG.XmlSchema.DataTypeLibW3C,
-  Text.XML.HXT.RelaxNG.XmlSchema.Regex,
-  Text.XML.HXT.RelaxNG.XmlSchema.RegexParser
-hs-source-dirs: .
-ghc-options: -Wall -O2 -fglasgow-exts
-import-dirs: /usr/local/lib/hxt/imports
-library-dirs: /usr/local/lib/hxt
-hs-libraries: HShxt
-depends: base, haskell98, parsec, HTTP, HUnit, network, containers, directory, process
diff --git a/src/hxt-package.hs b/src/hxt-package.hs
--- a/src/hxt-package.hs
+++ b/src/hxt-package.hs
@@ -59,7 +59,7 @@
       , "import-dirs: " ++ dir ++ "/imports"
       , "library-dirs: " ++ dir
       , "hs-libraries: HShxt"
-      , "depends: base, haskell98, parsec, HTTP, HUnit, network, containers, directory, process"
+      , "depends: base, haskell98, parsec, HTTP, HUnit, network, containers, directory, process, tagsoup"
       ]
 
 part4b :: [String]
@@ -67,7 +67,7 @@
     = [ " hs-source-dirs: src"
       , " ghc-options: -Wall -fglasgow-exts"
       , ""
-      , " build-depends: base, haskell98, parsec, HTTP, HUnit, network"
+      , " build-depends: base, haskell98, parsec, HTTP, HUnit, network, tagsoup"
       , " if flag(splitBase)"
       , "   build-depends: base >= 3, containers, directory, process"
       , " else"
